Concurrent Object-Oriented Programming
14 June 2005: Project topic has changed. No GUI is required anymore! Check this out!.
7 June 2005: No lecture today. We will have a two-hour exercise session instead. The scoop2scoopli tool will be presented.
6 May 2005: The solution of the Santa Claus problem by Giovanni Azua is available online.
27 April 2005: Read the introduction to EiffelStudio.
25 April 2005: Exercise sheet for exercise 2 is available online.
25 April 2005: Mutex/monitor examples from exercises can be found here.
25 April 2005: Slides for Lecture 3 are available online.
22 April 2005: There will be one hour of lecture on 26 April (it will start at 13:15), followed by two hours of exercises.
22 April 2005: In the concurrency seminar on 26 April (16:15, IFW C42) Klaus Havelund will present his work on "Monitoring programs with Eagle".
12 April 2005: the exercise session is replaced by an additional hour of lecture.
5 April 2005: ROOM CHANGE - all lectures and exercise sessions (until the end of the semester) will be taking place in IFW E42.
4 April 2005: no exercise session on April 5.
17 March 2005:
Concurrent Object-Oriented Programming
Course code: 251-0268-00
Object technology has interesting potential applications to concurrency, distribution, real-time and Web Services. In practice, a number of obstacles have prevented O-O techniques from repeating in the concurrent world the success they have now achieved in the sequential word. This course explores the connections between the object-oriented and concurrent programming paradigms, discussing the problems that arise in the process of attempting to merge them. It reviews the main existing approaches to concurrent O-O computation, including both widely used libraries for multi-threading in Java and .NET and more theoretical frameworks, with a particular emphasis on the SCOOP model. It also provides some of the formal background for discussing the correctness of concurrent O-O applicatons.
Approaches to concurrent programming
Formal models of concurrency
Concurrency and Object-Orientation
The SCOOP model
Extensions and open problems
The course assumes good knowledge of object-oriented principles and programming techniques. Experience with Eiffel and with concurrent programming is helpful but not required.
The goal is to provide students with solid knowledge of:
The course is split into two major parts:
Topics in Concurrency, 251-0270-00, Tuesday 16.15 - 17.00 IFW C42.
Office hours: Thursday 14.15-16.00, or by appointment, RZ J3
|Tuesday 29 March|
|Tuesday 5 April||SCOOP: introduction.|
|Tuesday 12 April||COOP: foundations of concurrency - tasks, threads, preemption, scheduling, concurrency, parallelism, distribution.|
|Tuesday 19 April||COOP: basic concurrency mechanisms - mutex, semaphore, monitor.|
|Tuesday 26 April||COOP: basic concurrency mechanisms - rendez-vous, protected objects.|
|Tuesday 3 May||COOP: concurrency and objects - active objects, inheritance anomaly, aspect-oriented programming.|
|Tuesday 10 May||SCOOP: computational model - synchronous and asynchronous feature calls, synchronisation.|
|Tuesday 17 May||SCOOP: traitors, validity rules.|
|Tuesday 24 May||SCOOP: type system.|
|Tuesday 31 May||COOP: foundations of distribution - system and failure models, impossibilities.|
|Tuesday 7 June||No lecture this week - we will have a two-hour exercise session on SCOOP tools.|
|Tuesday 14 June||SCOOP: advanced OO mechanisms. Deadlocks and how to prevent them.|
|Tuesday 21 June||COOP: basic distribution mechanisms - replication, transactions.|
|Tuesday 28 June||Exam.|
|Tuesday 29 March||No session this week.|
|Tuesday 5 April||No session this week.|
|Tuesday 12 April||No session this week (3 hours class).|
|Tuesday 19 April||
Synchronisation mechanisms in Java. Examples: producer-consumer, dining philosophers. Exercise sheet
|Tuesday 26 April||Synchronisation mechanisms in Java. Santa Claus. Exercise sheet|
|Tuesday 3 May||Synchronisation mechanisms. Rendez-vous. Exercise sheet|
|Tuesday 10 May||No session this week.|
|Tuesday 17 May||Inheritance anomalies and aspect-oriented programming. Exercise sheet|
|Tuesday 24 May||Introduction to EiffelStudio. Final project - announcement.|
|Tuesday 31 May||Final project: introduction to Vision2 GUI library. An EiffelVision2 example|
|Tuesday 7 June|
|Tuesday 14 June||SCOOP tools and examples. Final project - Q&A|
|Tuesday 21 June||SCOOP examples. Final project - Q&A|
|Tuesday 28 June|
Important : No Testat is delivered for the course. The only way to get a grade is to take the written exam and submit the project. This applies regardless of your department or status.
Gul Agha, Peter Wegner, Akinori Yonezawa (Editors): Research Directions in Concurrent Object-Oriented Programming. MIT Press, 1993.
Gregory R. Andrews:Foundations of Multithreaded, Parallel, and Distributed Programming. Pearson Addison Wesley, 1999.
Mordechai Ben-Ari: Principles of Concurrent and Distributed Programming. Prentice Hall, 1990.
Howard Bowman and John Derrick (Editors): Formal methods for distributed processing: a survey of object-oriented approaches. Cambridge University Press, 2001.
Bertrand Meyer: Object Oriented Software Construction, second edition, Chapter 30, Prentice Hall, 1997.
Last modified: 07.06.2005 by Piotr Nienaltowski