ECE 252: Systems Programming and Concurrency

👥 Enrolled Students: 120/150
⭐ TA Rating: ★★★★☆ (--.--/5)

Course Description

View on UWaterloo

This course covers Processes and threads (pthreads); system calls; concurrency (semaphore, mutex, monitors, and barrier synchronization); user-level memory management. Performance and correctness of concurrent systems. Deadlock detection and recovery; file systems.

Antirequisites

  • CS 343, CS 350, ECE 254, SE 350

Resources

  • Course Resources: GitHub
  • Optional Reference: Michael Kerrisk, The Linux Programming Interface

Evaluation

Component Weight
In-class Exercises 4%
Lab Projects 30%
Midterm Exam 21%
Final Exam 45%

Lab Instructor

Dr. Mojtaba Aajami, Ph.D. Lab Instructor mojtaba.aajami@uwaterloo.ca

Acknowledgment

Lecture materials provided by Prof. Andrew Morton.