Concepts of Concurrent Computation

Bertrand Meyer, Sebastian Nanz, Spring 2011

General

News

24.5.2011 — Assignment 11 and its solution are online.

24.5.2011 — Slides for lecture 13 are online.

23.5.2011 — Solution for assignment 10 is online.

17.5.2011 — Assignment 10 and the solution for assignment 9 are online.

10.5.2011 — Assignment 9 and the solution for assignment 8 are online.

3.5.2011 — Assignment 8 and the solution for assignment 7 are online.

18.4.2011 — Assignment 7 is online.

11.4.2011 — Solution for assignment 6 is online.

11.4.2011 — Slides for lecture 8 are online.

4.4.2011 — Solution for assignment 5 is online.

4.4.2011 — Slides for lecture 7 are online.

28.3.2011 — Assignment 6 is online.

28.3.2011 — Slides for lecture 6 are online.

21.3.2011 — Added notes on tools.

21.3.2011 — Assignment 5 is online.

21.3.2011 — Solution for assignment 4 is online.

21.3.2011 — Solution for assignment 3 is online.

17.3.2011 — Assignment 4 is online.

17.3.2011 — Slides for lecture 5 are online.

17.3.2011 — The project assignment is online.

14.3.2011 — Solution for assignment 2 is online.

11.3.2011 — Assignment 3 is online.

11.3.2011 — Slides for lecture 4 are online.

7.3.2011 — Solution for assignment 1 is online.

7.3.2011 — Slides for lecture 3 are online.

3.3.2011 — Assignment 2 is online.

1.3.2011 — Updated reading materials and schedule.

25.2.2011 — Assignment 1 is online.

10.1.2011 — The initial version of this page is up.

Course description

252-0268-00 Concepts of Concurrent Computation

Abstract: Concurrent programming is one of the major challenges in software development. The "Concepts of Concurrent Computation" course explores important models of concurrency, with a special emphasis on concurrent object-oriented programming and process calculi.

Objective: After completing this course, students will understand the principles and techniques of concurrent programming, supporting theories (CSP, CCS) allowing formal reasoning about concurrent systems, advances in concurrent object-oriented programming, and applications to multithreading, distribution, Web services and real-time.

Content:

Prerequisites: The course includes a significant component of active participation on the part of the students: exercises, both theoretical (in particular on process calculi) and implementation-oriented, implying the construction of solutions to concurrency problems.

Grading: No Testat is delivered for the course. The assessment consists of a project (50%) and a written semester end exam (50%) for which no supporting material is allowed. 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. The performance assessment is only offered at the end after the course unit. Repetition only possible after re-enrolling.

Course book

Bertrand Meyer, Sebastian Nanz: Concepts of Concurrent Computation (draft) Electronic version

Helping and getting help

Talk to the assistants or use the VIS forum.

Tools

For the development of SCOOP programs, we ask you to use the most recent version of EiffelStudio. Note that this is not necessarily the version that is marked as the latest version. Once you installed EiffelStudio, change the project setting Concurrency to scoop, to turn on SCOOP in your project. For the development of Java programs, you can use a Java development environment of your choice. For example, you can use Eclipse.

Further reading

Lecture

Schedule

Day Time Location
Tuesday 10:15-12:00 RZ F 21

Slides

Date Lecture Title Slides Readings
Tuesday 22.2.2011 1 Welcome and introduction Final version pdf
Tuesday 1.3.2011 2 Challenges of concurrency Final version pdf Chapter 2
Tuesday 8.3.2011 3 Synchronization algorithms Final version pdf Chapter 3
Tuesday 15.3.2011 4 Semaphores Final version pdf Chapter 4
Tuesday 22.3.2011 5 Monitors Final version pdf Chapter 5
Tuesday 29.3.2011 6 SCOOP principles Final version pdf Chapter 9
Tuesday 5.4.2011 7 SCOOP type system Final version pdf Chapter 9
Tuesday 12.4.2011 8 SCOOP advanced concepts Final version pdf Chapter 9
Tuesday 19.4.2011 9 Review of concurrent languages Final version pdf  
Tuesday 26.4.2011 no lecture Easter break
Tuesday 3.5.2011 10 Lock-free approaches Final version pdf
Tuesday 10.5.2011 11 CCS Final version pdf Chapter 7
Tuesday 17.5.2011 12 CCS advanced concepts Final version pdf Chapter 7
Tuesday 24.5.2011 13 CSP Final version pdf Chapter 6
Tuesday 31.5.2011 Exam

Temporary version = Temporary version Final version = Final version

Exercises

Schedule

Day Time Location
Tuesday 12:15-13:00 RZ F 21

Assignments

Date Title Material
Tuesday 1.3.2011 Introduction and challenges of concurrency assignment
Tuesday 8.3.2011 Synchronization and satisfaction assignment
Tuesday 15.3.2011 Semaphores assignment
Tuesday 22.3.2011 Monitors assignment
Tuesday 29.3.2011 SCOOP principles assignment
Tuesday 5.4.2011 SCOOP type system assignment
Tuesday 19.4.2011 Review of concurrent languages assignment
Tuesday 3.5.2011 Lock-free approaches assignment
Tuesday 10.5.2011 CCS assignment
Tuesday 17.5.2011 CCS advanced concepts assignment
Tuesday 24.5.2011 CSP assignment

Assistants

Project

Please read the project assignment.

Additionally, a small example script is available as a starting point for testing.