Teaching Concurrency: Theory in Practice

  • Luca Aceto
  • Anna Ingolfsdottir
  • Kim G. Larsen
  • Jiří Srba
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5846)


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.


Model Check Exercise Session Equivalence Check Label Transition System Binary Decision Diagram 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aceto, L., Ingólfsdóttir, A., Larsen, K.G., Srba, J.: Reactive Systems: Modelling, Specification and Verification. Cambridge University Press, Cambridge (2007)zbMATHGoogle Scholar
  2. 2.
    Alur, R., Dill, D.L.: A theory of timed automata. Theoretical Comput. Sci. 126(2), 183–235 (1994); Fundamental StudyzbMATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Alur, R., Taubenfeld, G.: Fast timing-based algorithms. Distributed Computing 10(1), 1–10 (1996)CrossRefMathSciNetGoogle Scholar
  4. 4.
    Andersen, H.R.: An introduction to binary decision diagrams (1998), Version of October 1997 with minor revisions April 1998, p. 36,
  5. 5.
    Arnold, A., Bégay, D., Crubillé, P.: Construction and Analysis of Transition Systems Using MEC. AMAST Series in Computing, vol. 3. World Scientific, Singapore (1994)Google Scholar
  6. 6.
    Baeten, J.C., Weijland, P.: Process Algebra. Cambridge Tracts in Theoretical Computer Science, vol. 18. Cambridge University Press, Cambridge (1990)Google Scholar
  7. 7.
    Bartlett, K., Scantlebury, R., Wilkinson, P.: A note on reliable full–duplex transmission over half–duplex links. Commun. ACM 12, 260–261 (1969)CrossRefGoogle Scholar
  8. 8.
    Behrmann, G., David, A., Larsen, K.G.: A tutorial on uppaal. In: Bernardo, M., Corradini, F. (eds.) SFM-RT 2004. LNCS, vol. 3185, pp. 200–236. Springer, Heidelberg (2004)Google Scholar
  9. 9.
    Biggs, J.: Teaching for quality learning at University. Open University Press, Stony Stratford (1999)Google Scholar
  10. 10.
    Bryant, R.E.: Symbolic boolean manipulation with ordered binary-decision diagrams. ACM Comput. Surv. 24(3), 293–318 (1992)CrossRefGoogle Scholar
  11. 11.
    Clarke, E., Emerson, E.: Design and synthesis of synchronization skeletons using branching time temporal logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, pp. 52–71. Springer, Heidelberg (1982)CrossRefGoogle Scholar
  12. 12.
    Clarke, E., Gruemberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)Google Scholar
  13. 13.
    Cleaveland, R., Parrow, J., Steffen, B.: The concurrency workbench: A semantics-based tool for the verification of concurrent systems. ACM Trans. Prog. Lang. Syst. 15(1), 36–72 (1993)CrossRefGoogle Scholar
  14. 14.
    Cleaveland, R., Sims, S.: The NCSU Concurrency Workbench. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 394–397. Springer, Heidelberg (1996)Google Scholar
  15. 15.
    Downey, A.B.: The Little Book of Semaphores, 2nd edn. Green Tea Press (2008),
  16. 16.
    Fokkink, W.: Introduction to Process Algebra. Texts in Theoretical Computer Science. An EATCS Series. Springer, Berlin (2000)zbMATHGoogle Scholar
  17. 17.
    Hamberg, R., Vaandrager, F.: Using model checkers in an introductory course on operating systems. Operating Systems Review 42(6), 101–111 (2008)CrossRefGoogle Scholar
  18. 18.
    Harel, D., Pnueli, A.: On the development of reactive systems. In: Logics and models of concurrent systems (La Colle-sur-Loup, 1984). NATO Adv. Sci. Inst. Ser. F Comput. Systems Sci., vol. 13, pp. 477–498. Springer, Berlin (1985)Google Scholar
  19. 19.
    Hennessy, M.: Algebraic Theory of Processes. MIT Press, Cambridge (1988)zbMATHGoogle Scholar
  20. 20.
    Hennessy, M., Milner, R.: Algebraic laws for nondeterminism and concurrency. J. ACM 32(1), 137–161 (1985)zbMATHMathSciNetGoogle Scholar
  21. 21.
    Hoare, C.: Communicating Sequential Processes. Prentice-Hall International, Englewood Cliffs (1985)zbMATHGoogle Scholar
  22. 22.
    Hurkens, C.: Spreading gossip efficiently. Nieuw Archief voor Wiskunde 5/1(2), 208–210 (2000)MathSciNetGoogle Scholar
  23. 23.
    Ingolfsdottir, A., Godskesen, J.C., Zeeberg, M.: Fra Hennessy-Milner logik til CCS-processer. Master’s thesis, Department of Computer Science, Aalborg University (1987) (in Danish)Google Scholar
  24. 24.
    Keller, R.: Formal verification of parallel programs. Commun. ACM 19(7), 371–384 (1976)zbMATHCrossRefGoogle Scholar
  25. 25.
    Krantz, S.G.: How to Teach Mathematics (a personal pespective). American Mathematical Society, Providence (1993)Google Scholar
  26. 26.
    Laroussinie, F., Larsen, K.G., Weise, C.: From timed automata to logic - and back. In: Hájek, P., Wiedermann, J. (eds.) MFCS 1995. LNCS, vol. 969, pp. 529–539. Springer, Heidelberg (1995)Google Scholar
  27. 27.
    Larsen, K.G.: Proof systems for satisfiability in Hennessy–Milner logic with recursion. Theoretical Comput. Sci. 72(2–3), 265–288 (1990)zbMATHCrossRefGoogle Scholar
  28. 28.
    Lions, J.L.: ARIANE 5 flight 501 failure: Report by the inquiry board (July 1996),
  29. 29.
    Magee, J., Kramer, J.: Concurrency: State Models and Java Programs. John Wiley, Chichester (1999)zbMATHGoogle Scholar
  30. 30.
    Mazur, E.: Peer Instruction: A User’s Manual. Series in Educational Innovation. Prentice-Hall International, Upper Saddle River (1997)Google Scholar
  31. 31.
    Milner, R.: Communication and Concurrency. Prentice-Hall International, Englewood Cliffs (1989)zbMATHGoogle Scholar
  32. 32.
    Papadimitriou, C.H.: Mythematics: storytelling in the teaching of computer science and mathematics. In: Dagdilelis, V., Satratzemi, M., Finkel, D., Boyle, R.D., Evangelidis, G. (eds.) Proceedings of the 8th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, ITiCSE 2003, Thessaloniki, Greece, June 30–July 2, p. 1. ACM, New York (2003)Google Scholar
  33. 33.
    Park, D.: Concurrency and automata on infinite sequences. In: Deussen, P. (ed.) GI-TCS 1981. LNCS, vol. 104, pp. 167–183. Springer, Heidelberg (1981)CrossRefGoogle Scholar
  34. 34.
    Patterson, D.A.: 20\(^{\mbox{th}}\) century vs. 21\(^{\mbox{st}}\) century C&C: The SPUR manifesto. Commun. ACM 48(3), 15–16 (2005)CrossRefGoogle Scholar
  35. 35.
    Pnueli, A.: The temporal logic of programs. In: Proceedings \(\it 18^{th}\) Annual Symposium on Foundations of Computer Science, pp. 46–57. IEEE, Los Alamitos (1977)Google Scholar
  36. 36.
    Pratt, V.R.: Anatomy of the Pentium bug. In: Mosses, P.D., Schwartzbach, M.I., Nielsen, M. (eds.) CAAP 1995, FASE 1995, and TAPSOFT 1995. LNCS, vol. 915, pp. 97–107. Springer, Heidelberg (1995)Google Scholar
  37. 37.
    Roscoe, B.: The Theory and Practice of Concurrency. Prentice-Hall International, Englewood Cliffs (1999)Google Scholar
  38. 38.
    Schneider, S.: Concurrent and Real-time Systems: The CSP Approach. John Wiley, Chichester (1999)Google Scholar
  39. 39.
    Steffen, B., Ingolfsdottir, A.: Characteristic formulae for processes with divergence. Information and Computation 110(1), 149–163 (1994)zbMATHCrossRefMathSciNetGoogle Scholar
  40. 40.
    Stirling, C.: Local model checking games. In: Lee, I., Smolka, S.A. (eds.) CONCUR 1995. LNCS, vol. 962, pp. 1–11. Springer, Heidelberg (1995)Google Scholar
  41. 41.
    Stirling, C.: Modal and Temporal Properties of Processes. Springer, Heidelberg (2001)Google Scholar
  42. 42.
    Tarski, A.: A lattice-theoretical fixpoint theorem and its applications. Pacific Journal of Mathematics 5, 285–309 (1955)zbMATHMathSciNetGoogle Scholar
  43. 43.
    Thomas, W.: On the Ehrenfeucht-Fraïssé game in theoretical computer science (extended abstract). In: Gaudel, M.-C., Jouannaud, J.-P. (eds.) CAAP 1993, FASE 1993, and TAPSOFT 1993. LNCS, vol. 668, pp. 559–568. Springer, Heidelberg (1993)Google Scholar
  44. 44.
    Walker, D.: Automated analysis of mutual exclusion algorithms using CCS. Journal of Formal Aspects of Computing Science 1, 273–292 (1989)CrossRefGoogle Scholar
  45. 45.
    Yi, W.: Real-time behaviour of asynchronous agents. In: Baeten, J.C.M., Klop, J.W. (eds.) CONCUR 1990. LNCS, vol. 458, pp. 502–520. Springer, Heidelberg (1990)Google Scholar
  46. 46.
    Yi, W.: A Calculus of Real Time Systems. PhD thesis, Chalmers University of Technology, Göteborg, Sweden (1991)Google Scholar
  47. 47.
    Yi, W.: CCS + time = an interleaving model for real time systems. In: Leach Albert, J., Monien, B., Rodríguez-Artalejo, M. (eds.) ICALP 1991. LNCS, vol. 510, pp. 217–228. Springer, Heidelberg (1991)Google Scholar
  48. 48.
    Yoshigahara, N.: Rush Hour, Traffic Jam Puzzle, by (accessed on July 10th, 2009)

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Luca Aceto
    • 1
  • Anna Ingolfsdottir
    • 1
  • Kim G. Larsen
    • 2
  • Jiří Srba
    • 2
  1. 1.School of Computer ScienceReykjavik UniversityReykjavikIceland
  2. 2.Department of Computer ScienceAalborg UniversityAalborg ØDenmark

Personalised recommendations