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.
Class # | Date | Topic | Slides | References |
---|---|---|---|---|
1 | 3 September 2018 | Introduction to concurrent programming | slides examples | Ben-Ari 1, 2.1-2.3 |
2 | 3 September 2018 | Races, locks, and semaphores | slides examples | Ben-Ari 2.4-2.7, 2.12, 6.1-6.5, 6.9 |
3 | 7 September 2018 | Models of concurrency & synchronization algorithms | slides examples quiz | Ben-Ari 3.1-3.9, Herlihy & Shavit 2.3-2.4, 7.1-7.2 |
4 | 10 September 2018 | Synchronization problems with semaphores | slides examples | Ben-Ari 6.5-6.9. The code from the second half of the lecture can be found here |
5 | 13 September 2018 | Monitors | slides examples quiz | Ben-Ari 7.1-7.3, 7.5 |
6 | 14 September 2018 | Introduction to functional programming in Erlang | slides | Hébert Starting out-Errors and exceptions |
7 | 17 September 2018 | Message-passing concurrency in Erlang | slides examples | Hébert Hitchiker’s guide to concurrency-Clients and servers |
8 | 21 September 2018 | Synchronization problems with message passing | slides examples quiz | |
9 | 24 September 2018 | Parallelizing computations | slides examples | Herlihy & Shavit 16.1, 16.4 |
10 | 28 September 2018 | Parallel linked lists | slides examples | Herlihy & Shavit 9 |
11 | 1 October 2018 | Lock free programming | slides examples quiz | Herlihy & Shavit 10.1, 10.2, 10.5, 10.6, 18.1, 18.2 |
12 | 5 October 2018 | Models and languages of concurrent computation | slides slides-linda promela-tutorial-message-passing | Ben-Ari 8, 9 |
13 | 8 October 2018 | Verification of concurrent programs. Recap of main topics of the course | slides quiz proof-tutorial | 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 |
14 | 15 October 2018 | Further examples and proofs | ||
15 | 19 October 2018 | Further examples and proofs | updated-proof-tutorial | We did the exams from October and December 2017. These are posted on the exam page together with solutions. The attached updated proof tutorial includes a proof sketch for the critical section program from the October 2017 exam. |
If you want to get an idea of the material covered in the course before, here are the lecture notes used in previous editions of the course.