YSC4231: Parallel, Concurrent and Distributed Programming
  • 1. Course Syllabus
  • 2. Software Prerequisites
  • 3. FAQ on Learning and Plagiarism
  • 1. Week 01: Introduction
  • 2. Week 02: Scala Primer
  • 3. Week 03: Mutual Exclusion
  • 4. Week 04: Concurrent Objects
  • 5. Week 05: Wait-Free Implementations and Consensus
  • 6. Week 06: Spin Locks and Contention
  • 7. Week 06: Monitors and Blocking Synchronisation
  • 8. Midterm Project
  • 9. Week 07: Concurrent Lists and Fine-Grained Locking
  • 10. Week 08: Concurrent Queues
  • 11. Week 09: Concurrent Stacks and Skiplists
  • 12. Week 09: Data Race Detection in Practice
  • 13. Week 10: Asynchronous Computations and Futures
  • 14. Week 11: Data-Parallel Collections
  • 15. Week 12: Actors and Message-Passing Concurrency
  • 16. Week 13: Distributed Consensus, BFT; Wrap-Up
YSC4231: Parallel, Concurrent and Distributed Programming
  • Docs »
  • Parallel, Concurrent and Distributed Programming (Autumn 2021)

Parallel, Concurrent and Distributed Programming (Autumn 2021)¶

  • 1. Course Syllabus
  • 2. Software Prerequisites
  • 3. FAQ on Learning and Plagiarism
  • Instructor: Ilya Sergey
  • Lectures: Fridays, 2:30pm-5:30pm
  • Location: Stephen Riady Centre, Global Learning Room
  • Office hours: Wednesdays, 5:15pm-6:30pm, #RC3-01-03E (Cendana)
  • Peer Tutor: Mark Weilong Yuen
  • Tutoring Sessions: Tuesdays, 6:30pm-8:00pm, Classroom 22 (RC3-02-03)

Lectures¶

  • 1. Week 01: Introduction
  • 2. Week 02: Scala Primer
  • 3. Week 03: Mutual Exclusion
  • 4. Week 04: Concurrent Objects
  • 5. Week 05: Wait-Free Implementations and Consensus
  • 6. Week 06: Spin Locks and Contention
  • 7. Week 06: Monitors and Blocking Synchronisation
  • 8. Midterm Project
  • 9. Week 07: Concurrent Lists and Fine-Grained Locking
  • 10. Week 08: Concurrent Queues
  • 11. Week 09: Concurrent Stacks and Skiplists
  • 12. Week 09: Data Race Detection in Practice
  • 13. Week 10: Asynchronous Computations and Futures
  • 14. Week 11: Data-Parallel Collections
  • 15. Week 12: Actors and Message-Passing Concurrency
  • 16. Week 13: Distributed Consensus, BFT; Wrap-Up

Lecture materials will be posted gradually as we progress through the course.

Supplementary Materials¶

  • GitHub Organisation
  • Code from the Lectures (email me you GitHub name to get access)

Textbooks¶

  1. The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit
  2. Learning Concurrent Programming in Scala by Aleksandar Prokopec
  3. Introduction to Reliable and Secure Distributed Programming by Christian Cachin et al.
Next

© Copyright 2021, Ilya Sergey

Built with Sphinx using a theme provided by Read the Docs.