Teaching Concurrency: Theory in Practice

Teaching courses that rely on sound mathematical principles is nowadays a challenging task at many universities. On the one hand there is an increased demand for educating students in these areas, on the other hand there are more and more students being accepted with less adequate skills in mathematics. We report here on our experiences in teaching concurrency theory over the last twenty years or so to students ranging from mathsphobic bachelor students to sophisticated doctoral students. The contents of the courses, the material on which they are based and the pedagogical philosophy underlying them are described, as well as some of the lessons that we have learned over the years.

[1]  Mogens Nielsen,et al.  TAPSOFT '95: Theory and Practice of Software Development , 1995, Lecture Notes in Computer Science.

[2]  G. Boulton‐Lewis Teaching for quality learning at university , 2008 .

[3]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[4]  Wang Yi,et al.  Real-Time Behaviour of Asynchronous Agents , 1990, CONCUR.

[5]  Robert M. Keller,et al.  Formal verification of parallel programs , 1976, CACM.

[6]  Steve A. Schneider,et al.  Concurrent and Real-time Systems: The CSP Approach , 1999 .

[7]  Joseph Sifakis,et al.  Tools and Applications II: The IF Toolset , 2004 .

[8]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[9]  Luca Aceto,et al.  Reactive Systems: Figures and tables , 2007 .

[10]  Christos H. Papadimitriou,et al.  Mythematics: storytelling in the teaching of computer science and mathematics , 2003, ITiCSE '03.

[11]  Allen B. Downey,et al.  The Little Book of Semaphores , 2009 .

[12]  Luca Aceto,et al.  Reactive Systems: Frontmatter , 2007 .

[13]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[14]  David A. Patterson 20th century vs. 21st century C&C: the SPUR manifesto , 2005, CACM.

[15]  Stephan Merz,et al.  Model Checking , 2000 .

[16]  Kim G. Larsen,et al.  A Tutorial on Uppaal , 2004, SFM.

[17]  Rance Cleaveland,et al.  The NCSU Concurrency Workbench , 1996, CAV.

[18]  D. J. Walker,et al.  Automated analysis of mutual exclusion algorithms using CCS , 1989, Formal Aspects of Computing.

[19]  H. Arbeláez,et al.  Korth cm. International business : environment and management. Prentice hall, inc, englewood cliffs, 1985, 2a ed , 1985 .

[20]  Petr Hájek,et al.  Mathematical Foundations of Computer Science 1995 , 1995, Lecture Notes in Computer Science.

[21]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[22]  Steven G. Krantz,et al.  How to Teach Mathematics , 1993 .

[23]  Wan Fokkink,et al.  Introduction to Process Algebra , 1999, Texts in Theoretical Computer Science. An EATCS Series.

[24]  Robin Milner,et al.  Algebraic laws for nondeterminism and concurrency , 1985, JACM.

[25]  Vaughan R. Pratt Anatomy of the Pentium Bug , 1995, TAPSOFT.

[26]  J. C. M. Baeten,et al.  Process Algebra: Bibliography , 1990 .

[27]  Wang Yi,et al.  CCS + Time = An Interleaving Model for Real Time Systems , 1991, ICALP.

[28]  Bernhard Steffen,et al.  Characteristic Formulae for Processes with Divergence , 1994, Inf. Comput..

[29]  Keith A. Bartlett,et al.  A note on reliable full-duplex transmission over half-duplex links , 1969, Commun. ACM.

[30]  Kim Guldstrand Larsen,et al.  From Timed Automata to Logic - and Back , 1995 .

[31]  Paul Crubillé,et al.  Construction and Analysis of Transition Systems with MEC , 1995, AMAST Series in Computing.

[32]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[33]  Jean-Pierre Jouannaud,et al.  TAPSOFT'93: Theory and Practice of Software Development , 1993, Lecture Notes in Computer Science.

[34]  Rajeev Alur,et al.  Fast timing-based algorithms , 1996, Distributed Computing.

[35]  Amir Pnueli,et al.  On the Development of Reactive Systems , 1989, Logics and Models of Concurrent Systems.

[36]  Insup Lee,et al.  CONCUR '95: Concurrency Theory , 1995, Lecture Notes in Computer Science.

[37]  H. Andersen An Introduction to Binary Decision Diagrams , 1997 .

[38]  David Park,et al.  Concurrency and Automata on Infinite Sequences , 1981, Theoretical Computer Science.

[39]  Luca Aceto,et al.  Reactive Systems: Modelling, Specification and Verification , 2007 .

[40]  Wolfgang Thomas,et al.  On the Ehrenfeucht-Fraïssé Game in Theoretical Computer Science , 1993, TAPSOFT.

[41]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[42]  Marco Bernardo,et al.  Formal methods for the design of real-time systems : International School on Formal Methods for the Design of Computer, Communication and Software Systems, SFM-RT 2004, Bertinoro, Italy, September 13-18, 2004 : Revised lectures , 2004 .

[43]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[44]  Yi Wang A calculus of real time systems , 1991 .

[45]  Colin Stirling,et al.  Modal and Temporal Properties of Processes , 2001, Texts in Computer Science.

[46]  Matthew Hennessy,et al.  Algebraic theory of processes , 1988, MIT Press series in the foundations of computing.

[47]  Rance Cleaveland,et al.  The concurrency workbench: a semantics-based tool for the verification of concurrent systems , 1993, TOPL.

[48]  Caj Cor Hurkens Spreading gossip efficiently , 2000 .

[49]  Jeff Magee,et al.  Concurrency - state models and Java programs , 2006 .

[50]  Kim G. Larsen,et al.  Proof Systems for Satisfiability in Hennessy-Milner Logic with Recursion , 1990, Theor. Comput. Sci..

[51]  Eric Mazur,et al.  Peer Instruction: A User's Manual , 1996 .

[52]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[53]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[54]  Colin Stirling,et al.  Local model checking games (extended abstract) , 1995 .