course number instructor title
CS 6204 D Lee Reliable Concurrent Systems
Despite our increasing reliance on computing platforms, ensuring the 
correctness of software systems remains an open problem. This problem 
has been compounded with the advant of parallel and concurrent 
systems: e.g., multicore processors, event-driven architecture, distributed 
systems. Concurrent programming is inherently complex because programmers 
have to carefully reason about possible interleavings. In recent years, 
this problem has drawn huge attention from researchers in systems, computer 
architecture, and software engineering communities. 
In this course, we will study recent advances and new directions that 
are being pursued to address the challenges in developing, testing, 
and monitoring concurrent programs. Specific topics include concurrency 
debugging, active/systametic testing, runtime monitoring, and 
static/dynamic program analysis. 
We assume that you have taken a basic course in Operating Systems, such as  
CS 3214, CS 4284, or CS 5204.