Syllabus: 
COP 5255 Concurrent Programming

Spring 2007

Description (3 credit hours)

A concurrent program contains several "threads of control" that execute at the same time. Each thread may have its own processor, or the system may switch between threads, simulating parallelism. In either case, writing correct and efficient concurrent programs is fundamentally more difficult than normal sequential programs. In the past, concurrent programming has been primarily done by specialists. Now,  due to he ubiquity of GUI and  web-based applications whose performance can often be improved significantly with the  use of concurrency, as well as the availability of multicore PCs,  concurrent programming promises to become much more widespread.
 
This course will provide an in-depth overview of underlying principles as well as practical programming techniques that can be used to construct well-engineered concurrent programs. Topics include notions of atomicity, safety, and liveness; techniques for reasoning about concurrent programs; synchronization and communication; program structuring; and multithreaded services and servlets. Students will apply concepts learned in the course to implement a non-trivial multithreaded application.

Texts

No textbooks are required.  

Software

Programming exercises will be done in Java 1.5.  Prior knowledge of Java will be very helpful.

Topics (subject to change)

Homework

Grading

             60 % homework assignments
             10 % midterm  
             30 % final exam (see catalog for date and time as scheduled by the registrar)
 

Exam make-up and late homework policies

          Make-up exams will be given only for documented medical reasons and serious emergencies.
With the exception of the final project, late homework will be accepted with a late penalty up to three days after the due date and time. The late penalty is 10% per 12 hours past the due date and time.  Deadlines will be strictly enforced and no extensions granted, however, to provide students with some flexibility, the lowest short assignment grade will be dropped.   No late submissions or demos of the final project will be accepted.



 

Last updated: 11/28/06
 ©Beverly A. Sanders, 2006