Concurrent Object-Oriented Programming
|
| Announcements | Description | Schedule | Grading | Textbooks | Contacts |
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.
26 April 2005: See papers on the Santa Claus problem and its solutions: in Java and in Polyphonic C#
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.
Overview
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.
Weekly schedule
Office hours: Thursday 14.15-16.00, or by appointment, RZ J3
Lectures (Tentative)
| 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. |
Exercises (Tentative)
| 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 |
SCOOP tools and how to use them. SCOOP examples. Download scoop2scoopli tool, SCOOPLI library, and examples that we are going to use in the exercise. |
| 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