CS343 - Concurrent and Parallel Programming

https://student.cs.uwaterloo.ca/~cs343/

Book: file:///Users/stevengong/My%20Drive/Waterloo/4A/CS343/notes.pdf Notes: https://student.cs.uwaterloo.ca/~cs343/F25/notes.pdf

Summary / cheat sheet: Concurrency Problems

Language used throughout the course: uC++

Course outline (from the notes):

An introduction to concurrent programming, with an emphasis on language constructs. Major topics include: exceptions, coroutines, atomic operations, critical sections, mutual exclusion, semaphores, high-level concurrency, deadlock, interprocess communication, process structuring on shared memory architectures.

Concepts

Chapter 1: Advanced Control Flow (Review)

Chapter 2: Nonlocal Transfer

Chapter 3: Coroutine

Chapter 4: More Exceptions

Chapter 5: Concurrency

Chapter 6: Locks

Chapter 7: Concurrent Errors

Chapter 8: Indirect Communication (Monitors)

Chapter 9: Direct Communication (Tasks)

Chapter 10: Optimization

Chapter 11: Other Approaches

Foundational Concepts