252-0268-00L Concepts of Concurrent Computation
Semester | Spring Semester 2013 |
Lecturers | B. Meyer, S. Nanz |
Periodicity | yearly recurring course |
Language of instruction | English |
Courses
Number | Title | Hours | Lecturers | |||||||
---|---|---|---|---|---|---|---|---|---|---|
252-0268-00 V | Concepts of Concurrent Computation | 3 hrs |
| B. Meyer, S. Nanz | ||||||
252-0268-00 U | Concepts of Concurrent Computation | 2 hrs |
| B. Meyer, S. Nanz | ||||||
252-0268-00 A | Concepts of Concurrent Computation No presence required. | 1 hrs | B. Meyer, S. Nanz |
Catalogue data
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 allowing formal reasoning about concurrent systems, and advances in concurrent object-oriented programming. |
Content | Topics include: Overview - Concurrent and parallel programming - Multitasking and multiprocessing - Shared-memory and distributed-memory multiprocessing - Notion of process and thread - Performance of concurrent systems Approaches to concurrent programming - Issues: data races, deadlock, starvation - Synchronization algorithms - Semaphores - Monitors - Java and .NET multithreading Concurrent object-oriented programming: the SCOOP model - Processors; handling an object - Synchronous and asynchronous feature calls - Design by Contract in a concurrent context - Separate objects and entities - Accessing separate objects; validity rules - Synchronization: waiting, reserving, preconditions as wait conditions, Wait by Necessity - Examples and applications Programming approaches to concurrency - Message-passing vs. shared-memory communication - Language examples: Ada, Polyphonic C#, Erlang (Actors), X10, Linda, Cilk and others. - Lock-free programming - Software Transactional Memory Reasoning about concurrent programs - Properties of concurrent programs - Temporal logic - Process calculi: CSP, CCS - Proofs of concurrent programs |
Literature | - Bertrand Meyer and Sebastian Nanz: Course textbook (draft) - Mordechai Ben-Ari: Principles of Concurrent and Distributed Programming. Prentice Hall, 2006 - Maurice Herlihy and Nir Shavit: The Art of Multiprocessor Programming. Morgan Kaufmann, 2008 - Gregory R. Andrews: Foundations of Multithreaded, Parallel, and Distributed Programming. Addison Wesley, 1999 |
Prerequisites / Notice | The course's lectures are of two different kinds: the Tuesday session (two hours) is a traditional lecture; the Wednesday lecture (one hour) is devoted to seminar talks. The seminar talks will be given about half of the time by well-known international experts in concurrency; the rest of the time they will be given by the student participants, based on research papers related to the topics of the course. The research papers to be presented will be assigned at the start of the course. Depending on the number of participants, some of the exercise sessions may also be used for seminar presentations. |
Performance assessment
Performance assessment information (valid until the course unit is held again) | |
Performance assessment as a semester course | |
ECTS credits | 7 credits |
Examiners | B. Meyer, S. Nanz |
Type | end-of-semester examination |
Language of examination | English |
Repetition | The performance assessment is only offered at the end after the course unit. Repetition only possible after re-enrolling. |
Additional information on mode of examination | The assessment consists of a project (35%), a seminar talk (15%) and a written semester end exam (50%) for which no supporting material is allowed. |
Learning materials
Main link | Information |
Only public learning materials are listed. |
Groups
No information on groups available. |
Restrictions
There are no additional restrictions for the registration. |
Offered in
Programme | Section | Type | |
---|---|---|---|
Computer Science Master | Focus Elective Courses Software Engineering | W | |
Certificate of Advanced Studies in Computer Science | Focus Courses and Electives | W |