YSC3248: Parallel, Concurrent and Distributed Programming
  • 1. Course Syllabus
  • 2. Software Prerequisites
  • 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 and Stacks
  • 11. Week 09: Skiplists
  • 12. Week 09: Data Race Detection in Practice
  • 13. Week 10: Futures and Asynchronous Computations
  • 14. Week 11: Data-Parallel Collections
  • 15. Week 12: Actors and Message-Passing Concurrency
  • 16. Week 13: Distributed Consensus and BFT; Wrap-Up
YSC3248: Parallel, Concurrent and Distributed Programming
  • Docs »
  • Parallel, Concurrent and Distributed Programming (Autumn 2020)

Parallel, Concurrent and Distributed Programming (Autumn 2020)¶

  • 1. Course Syllabus
  • 2. Software Prerequisites
  • Lectures: Thursdays, 1:00-4:00pm (Zoom link available on Canvas)
  • Office hours: Tuesdays, 10:30-12:00pm, #RC3-01-03E (Cendana)
  • Peer Tutor: Bryan Tan
  • Tutoring Sessions: Wednesdays, 7:00-9:00pm, CR18 (Cendana)

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 and Stacks
  • 11. Week 09: Skiplists
  • 12. Week 09: Data Race Detection in Practice
  • 13. Week 10: Futures and Asynchronous Computations
  • 14. Week 11: Data-Parallel Collections
  • 15. Week 12: Actors and Message-Passing Concurrency
  • 16. Week 13: Distributed Consensus and BFT; Wrap-Up

Supplementary Materials¶

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

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 2020, Ilya Sergey

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