Concurrent Programming (2023 fall)

Undergraduate course, Queen's University Belfast, School of Electronics, Electrical Engineering and Computer Science, 2023

Concurrent Programming

This undergraduate course introduces the principles and practice of concurrent programming, focusing on multi-threaded and distributed systems. Students will learn how to design, implement, and reason about concurrent programs using modern programming languages and tools.

Course Objectives

  • Understand the challenges of concurrency and parallelism.
  • Learn synchronization techniques and concurrent data structures.
  • Explore models such as threads, message passing, and actors.

Topics

  1. Introduction to Concurrency
  2. Threads and Processes
  3. Synchronization Primitives
  4. Deadlocks and Race Conditions
  5. Concurrent Data Structures
  6. Parallel Programming Models
  7. Distributed Systems Basics
  8. Case Studies and Applications

Reading List

  • Java Concurrency in Practice by Brian Goetz
  • Operating Systems: Three Easy Pieces by Remzi and Andrea Arpaci-Dusseau Office Hours: Wednesdays 2–4 PM, Room X123