Concurrent Programming (2024 fall)
Undergraduate course, Queen's University Belfast, EEECS, 2024
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
- Introduction to Concurrency
- Threads and Processes
- Synchronization Primitives
- Deadlocks and Race Conditions
- Concurrent Data Structures
- Parallel Programming Models
- Distributed Systems Basics
- Case Studies and Applications
Reading List
- Java Concurrency in Practice by Brian Goetz
- Operating Systems: Three Easy Pieces by Remzi and Andrea Arpaci-Dusseau
