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.
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.
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.