Parallel, Concurrent and Distributed Programming (Autumn 2023)
Instructor: Ilya Sergey
Lectures: Thursdays, 9am-12pm
Location: Yale-NUS College, Y-CR1
Peer Tutor: Phong Le
Peer tutoring sessions: Mondays, 7-9pm, CR20 (Cendana)
Lectures
- 1. Week 01: Introduction
- 2. Week 02: Scala Primer
- 3. Week 03: Mutual Exclusion
- 4. Week 05: Spin Locks and Contention
- 5. Week 05: Monitors and Blocking Synchronisation
- 6. Week 06: Concurrent Objects
- 7. Midterm Project
- 8. Week 07: Concurrent Lists and Stacks
- 9. Week 08: Concurrent Queues
- 10. Week 08: Skiplists
- 11. Week 08: Data Race Detection in Practice
- 12. Week 09: Asynchronous Computations and Futures
- 13. Week 11: Data-Parallel Collections
- 14. Week 12: Actors and Message-Passing Concurrency
- 15. Week 13: Distributed Consensus, BFT; Wrap-Up
Lecture materials will be posted gradually as we progress through the course.
Supplementary Materials
Code from the Lectures (email me you GitHub name to get access)
Textbooks
The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit
Learning Concurrent Programming in Scala by Aleksandar Prokopec
Introduction to Reliable and Secure Distributed Programming by Christian Cachin et al.