Concurrent Programming 2: Concurrent Object-Oriented Programming

Bertrand Meyer, spring semester 2009

General: News | Course Description | Grading | Further Reading | Contacts
Lectures: Schedule | Slides
Exercises: Schedule | Assignments

Important note (12.2.09): This version of the page is provisional, including information about grading. The information will be finalized at the time of the first lecture (24.2.2009).

General

News

25.5.2009  

The solution for assignment 6 is online.

22.5.2009  

The slides for lecture 11 are online.

19.5.2009  

The deadline for the project has been extended to 9.6.2009.

13.5.2009  

The slides for lecture 10 are online.

5.5.2009  

The project description is online. For the project you can use the SCOOP version of EiffelStudio 5.7 for Windows. For the installation procedure please read the file Readme.txt in the root folder of the unzipped file. You will also need an original version of EiffelStudio 5.7.

1.5.2009  

The slides for lectures 6 and 9 are online.

27.4.2009  

The slides for lecture 8 are online. Assignment 6 is online.

20.4.2009  

The solution for assignment 5 is online.

7.4.2009  

Assignment 5 is online.

6.4.2009  

The slides for lecture 5 are online.

30.3.2009  

The slides for lecture 7 are online.

30.3.2009  

The solution for assignment 4 is online.

27.3.2009  

The slides for lecture 4, the solution for assignment 3 and assignment 4 are online.

10.3.2009  

The slides for lecture 3 are online.

10.3.2009  

The solution for assignment 1, assignment 2 and the material for exercise session 3 are online.

3.3.2009  

Assignment 1 is online. The material for exercise session 2 has been added.

25.2.2009  

The slides for lectures 1 and 2 have been added. The material for exercise session 1 has been added.

12.2.2009  

Because Prof. Meyer has a conflicting event, there will not be a lecture on February 17; the first lecture will take place on February 24. We may have to organize an extra lecture at a suitable time later in the semester. There will be a reading assignment to prepare for the first lecture; the URL will be given in this News section.

12.2.2009  

The initial version of this page is up.

Course Description

Title and ID

Concurrent Programming 2: Concurrent Object-Oriented Programming
Course code: 251-0268-00L

Prerequisites

The course assumes good knowledge of object-oriented principles and programming techniques. Experience with Eiffel and with concurrent programming is helpful but not required. It is strongly suggested to precede this course with the Winter semester course Concurrent Programming 1: Principles and Introduction.

Objectives

The goal is to provide students with solid knowledge of:

  • State-of-the-art concurrent programming models, languages, and platforms
  • Foundations for reasoning about concurrent and distributed programs
  • Approaches blending object-orientation, distribution, and concurrency
  • Designing applications with concurrent objects
  • Some open issues, like applications to embedded and real-time systems

Organisation

The course is split into two major parts:

  • COOP: a bottom-up, more historical, perspective on concurrent programming. Illustrations are thus made in various programming languages, though Java will be the main focus.
  • SCOOP: concurrent programming with SCOOP. This will part will take a more top-down approach by illustrating issues related to concurrency through the SCOOP model.

Grading

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.

  • 50% Project: development of a concurrent application using SCOOP
  • 50% Exam: all presented topics excluding SCOOP. The exam will be held during the lecture on 26.5.2009.

Recommended Texts

Further Reading

  • Allen B. Downey: The Little Book of Semaphores Second Edition. Green Tea Press, 2005.
  • 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.
  • Piotr Nienaltowski, Volkan Arslan, Bertrand Meyer: Concurrent object-oriented programming on .NET. IEE Proceedings Software, Special Issue on ROTOR, vol. 150, no. 5, 308-314, October 2003.
  • Piotr Nienaltowski, Bertrand Meyer: Contracts for concurrency, CORDIE'06, July 2006, York, UK.
  • Piotr Nienaltowski: Flexible locking in SCOOP. CORDIE'06, July 2006, York, UK. 
  • Volkan Arslan, Bertrand Meyer: Asynchronous Exceptions in Concurrent Object-Oriented Programming. CORDIE'06, July 2006, York, UK.

Contacts

  • The course mailing list is concourse (at) se.inf.ethz.ch. It will reach the professor, the assistants and all the students.
  • Contact assistant for the course: Benjamin Morandi.

Lectures

Schedule

Day

Time

Location

Tuesday 10:00-12:00 RZ F 21

Slides

Date
Lecture
Title
Slides
Readings
Tuesday
17.2.2009
no lecture chapters 1, 2, 3 and 4.1 of the Little Book of Semaphores
Tuesday
24.2.2009
1, 2 Welcome and overview, SCOOP overview (pdf pptx) (pdf pptx)
Tuesday
3.3.2009
3 Introduction pdf pptx
Tuesday
10.3.2009
3 Introduction pdf pptx
Tuesday
17.3.2009
4 Mutual Exclusion pdf pptx
Tuesday
24.3.2009
5 Concurrent Objects pdf pptx
Tuesday
31.3.2009
6 SCOOP Computational Model pdf pptx
Tuesday
7.4.2009
7 SCOOP Type System pdf pptx
Tuesday
14.4.2009
no lecture Easter Break
Tuesday
21.4.2009
7 SCOOP: Type System pdf pptx
Tuesday
28.4.2009
8 Process Calculi pdf
Tuesday
5.5.2009
9 Contracts and Inheritance pdf pptx
Tuesday
12.5.2009
10 Advanced Object-Oriented Mechanisms pdf pptx
Tuesday
19.5.2009
11 An Introduction to CSP pdf pptx
Tuesday
26.5.2009
no lecture Exam

Exercises

Schedule

Day

Time

Location

Tuesday 13:00-14:00 RZ F 21

Assignments

Date
Title
Material
Assignment
Tuesday
24.2.2009
Eiffel introduction pdf pptx src
Tuesday
3.3.2009
Introduction pdf pptx assignment
Tuesday
10.3.2009
Introduction pdf pptx assignment
Tuesday
17.3.2009
Mutual Exclusion assignment
Tuesday
24.3.2009
Concurrent Objects assignment
Tuesday
7.4.2009
SCOOP Type System assignment
Tuesday
28.4.2009
Process Calculi assignment

 

Last modified: 25.5.2009 by Benjamin Morandi