CSE 914
Formal Methods in Software Development:
Reliable Computing With Threads

 

Instructor: L. Dillon
Time: Monday & Wednesday, 4:10 – 5:30 pm
Location: 1235 Anthony Hall

Fall 2008 

 

 

"Although threads seem to be a small step from sequential computation, in fact, they represent a huge step. They discard the most essential and appealing properties of sequential computation: understandability, predictability, and determinism."

    — From “The Problem with Threads,” by Edward A. Lee

    IEEE Computer, vol. 25, no. 5, May 2006

 

While few would argue with this observation, programmers are increasingly turning to threads as a way to improve quality of service and responsiveness of applications. 

 

This fall, students in CSE 914 will dig into the key problem with threads and learn about new programming models that aim to address this problem.  Topics to be covered include:  correctness criteria for multi-threaded applications, the Java memory model, data race prevention/detection, software transactional memory (STM), and extensions and alternatives to STM.

 

To receive credit for this offering of CSE 914, students who enrolled in CSE 914 in 2004 or 2006 must notify the instructor in order for an override to be processed.  

 

Course prerequisites:  Software engineering course or equivalent experience; software design course or equivalent experience; discrete mathematics.

 

 

Readings and references 

 

Course Schedule