Overview
| Course: | W7059 (Winter Semester 2005/2006) |
| Lecturer: | Prof. Oscar Nierstrasz |
| Assistants: | Markus Gälli, Orla Greevy |
| Lecture: | Wednesdays, 10h15 - 12h00 |
| Exercises: | Wednesdays, 12h00 - 12h45 |
| Place: | IWI 001, Engehaldestrasse 8 |
| Start: | 2005-10-26 |
Description
This course provides an introduction to concurrent programming with Java. The course focuses on fundamental concepts important for developing correctly functioning concurrent programs, such as saftey, liveness and fairness, and on standard programming patterns and techniques for dealing with these issues.
The course will include two lab sessions (replacing the regular lecture hours) in which students will work in small groups to apply the techniques presented.
Much of the practical material in this lecture will be based on: Doug Lea, Concurrent Programming in Java: Design Principles and Patterns, Addison-Wesley, 1999.
The theoretical foundations will be based on: Jeff Magee and Jeffrey Kramer, Concurrency: State Models & Java Programs, John Wiley, 1999.
Rules
Students intending to take this course should register themselves on: Student Exercise and Mailing List Registration
The ten exercises plus the two lab-sessions will give you up to 24 percent of your final grade.
The exercises should be done in pairs.
Course Schedule
| Oct 26 | Introduction |
| Nov 2 | Concurrency and Java |
| Nov 9 | Safety and Synchronization |
| Nov 16 | Safety Patterns |
| Nov 23 | Liveness and Deadlock |
| Nov 30 | Liveness and Guarded Methods |
| Dec 7 | Lab session |
| Dec 14 | Liveness and Asynchrony |
| Dec 21 | Condition Objects |
| Jan 11 | Fairness and Optimism |
| Jan 18 | Architectural Styles for Concurrency |
| Jan 25 | Petri Nets |
| Feb 1 | Lab session |
| Feb 8 | Exam |