Lecture: 3 hours
Laboratory: 3 hours
Prerequisite: Courses ECS 20, ECS 150
Grading: Letter; based on 4-5 homework sets/labs (70%) and a final (30%)
Fundamental concepts and applications of concurrent programs; concurrent program verification and derivation; synchronization mechanisms in programming languages; distributed programming techniques; case studies of languages.
Expanded Course Description:
G.R. Andrews, Concurrent Programming: Principles and Practice, Benjamin/Cummings, 1991.
R.A. Olsson and A.W. Keen, The JR Programming Language: Concurrent Programming in an Extended Java, (draft).
Each homework set includes programming problems (see Laboratory section below) in addition to problems dealing with program derivation, correctness proofs, developing inference rules and implementation techniques.
Students work individually or in small groups on several programming problems, which are an integral part of the homework sets. These projects are designed to reinforce and complement the lecture material. The specific problems are programmed using the JR concurrent programming language. For shared variables, semaphores, and rendezvous problems, students write programs in native JR. For CCRs (Conditional Critical Regions), monitors, and CSP (Communicating Sequential Processes) problems, students write programs using preprocessors for JR that support those notations. Students therefore gain hands-on experience in using a wide range of synchronization mechanisms.
Engineering Design Statement:
The course material includes design and implementation issues in concurrent programming. Lectures discuss various synchronization mechanisms, how they are implemented, and the tradeoffs (usability, efficiency, etc.) between them. The homework sets including the laboratory problems follow these themes too. They also examine in detail the different programming styles that result in using the different constructs. Homework sets grades are based in part on these design issues. Examination questions are based on design issues discussed in lecture and from the homework.
ABET Category Content:
Engineering Science: 2 units
Engineering Design: 2 units
Instructors: R. Olsson, R. Pandey
Prepared by: R. Olsson, R. Pandy (March 2003)
Overlap Statement: There is no significant overlap with any other course.