CSE 891*
Formal Methods in Software Development:
Reliable Computing With Threads

 

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

Course website: http://www.cse.msu.edu/~cse914*

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.

 

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

 

*This course was previously numbered CSE 914.  It is being offered as CSE 891 this term, instead, in order that students who enrolled in an earlier offering of CSE 914 may receive credit for the course.  The content does not overlap that of the earlier offerings of CSE 914.

 

 

Readings and references 

 

Course Schedule