We normally have two classes per week, one on Monday and one on Friday, both at 15:15–17:00. See below for a more precise schedule, where there is no lecture on dates corresponding to cells with greyed out text or no text. See the official schedule on TimeEdit for information about the rooms.

Lecture slides

We will try to make the slides/lecture notes available online on this page the day before each class. A new version of the slides may be uploaded after class according to what has actually been presented. We encourage you to take notes independent of the slides material available before class.

If you want to get an idea of the material covered in the course ahead of time, the lectures slides from previous course instances are available here

Class # Date Topic Slides Reading material1, 2
0 2 September 2019 Promela bootcamp notes Note: Promela is not part of the official course requirements, but students are highly encouraged to attend this tutorial. A webinterface for Spin is available here.
1 2 September 2019 Introduction to concurrent programming info slides Ben-Ari 1, 2.1-2.3. Slides and example code from the previous course1
2 6 September 2019 Races, locks, and semaphores slides Ben-Ari 2.4-2.7, 2.12, 6.1-6.5, 6.9. Old slides and example code
3 9 September 2019 Synchronization problems with semaphores slides Ben-Ari 6.5-6.9. Old slides and example code
4 12 September 2018 Models of concurrency & synchronization algorithms slides Ben-Ari 3.1-3.9, Herlihy & Shavit 2.3-2.4, 7.1-7.2. Old slides, example code and quiz
5 13 September 2018 Monitors slides examples Ben-Ari 7.1-7.3, 7.5
13 September 2018 Tutorial on Java concurrency (by Nir Piterman) slides code
16 September 2018 Concurrency in weak memory models (by Andreas Lööw) slides
6 16 September 2018 Introduction to functional programming in Erlang slides Hébert Starting out-Errors and exceptions. Old slides
7 20 September 2019 Message-passing concurrency in Erlang slides examples Hébert Hitchiker’s guide to concurrency-Clients and servers. The Promela tutorial on message passing is avilable here
23 September 2019 Erlang Tutorial (by Sandro Stucki) Tutorial code can be found here
8 27 September 2019 Synchronization problems with message passing slides examples
9 30 September 2019 Parallelizing computations slides examples Herlihy & Shavit 16.1, 16.4
10 4 October 2019 Parallel linked lists slides examples Herlihy & Shavit 9. Slides and example code for these and other chapters of the course book are available on the book’s website.1
11 7 October 2019 Lock free programming slides examples Herlihy & Shavit 10.1, 10.2, 10.5, 10.6, 18.1, 18.2
14 October 2019 Formal reasoning examples and proofs, exam prep. proof-tutorial
12 18 October 2019 Models and languages of concurrent computation slides slides-linda Ben-Ari 8, 9
13 21 October 2019 Verification of concurrent programs. Recap of main topics of the course (quiz) slides Ben-Ari 4. For a good explanation of LTL, see Section 3.2 of the book “Logic in Computer Science” by Huth and Ryan, link

1 The lecture slides from the previous course instance (VT19) are reading material to supplement the current lectures, regardless of whether they were presented during class.

2 The lecture slides and code examples accompanying the course book The Art of Multiprocessor Programming by M. Herlihy & N. Shavit are available on the book’s official website.

Lecture material from previous editions

If you want to get an idea of the material covered in the course ahead of time, here are the lecture notes used in previous editions of the course.