Programming 1 and 2, Software Engineering Lab, and Introduction to Theoretical Computer Science (recommended).
Two exams (mid-term and end-term), practical project.
Re-exams take place within the last weeks before the start of lectures of the following semester.
Is determined from performance in written examinations (following elements T and A), as well as the preparatory examinations (element P). The exact modalities will be announced by the person responsible for the module. All module elements must be successfully completed within one examination period.
Element T - Theory (2 SWS):
8 lectures: 6 weeks
4 exercises: 6 weeks
Element A - Application (2 SWS):
9 lectures: 6 weeks
4 exercises: 6 weeks
Element P - Practice (private study):
8 written reflections during the semester
(preparatory work for exams), followed by project work
over approx. 2 weeks
= 4 SWS
Element T:
24 h of classes, 36 h private study
Element A:
26 h of classes, 34 h private study
Element P:
60 h private study
50 h of classes
+ 130 h private study
= 180 h (= 6 ECTS)
The participants of this course get acquainted with concurrency in computation as a far-reaching and foundational principle with respect to both theory and application of modern computing sciences. By analysing and applying different formal models, the participants gain a deeper understanding of concurrency, and learn to apply formal computing concepts correctly. The theoretical knowledge acquired in the first half of the lecture is in the second half applied to practical programming. Therein, participants learn using the programming paradigms “shared memory” and “message passing” starting off with the programming language pseuCo before applying their skills to Java and (partially) to Go. In addition, participants learn to describe various phenomena of concurrent programming using formal models, and to derive concrete solutions for practical problems from them. Moreover, the participants examine existing practitioneer’s concepts with respect to their reliability. A specific aspect of this professional practice is the tactically adequate reaction to concurrency problems under tight time constraints.
Concurrency as a Concept
Concurrency in Practice
Problems of Concurrency
Foundations of Concurrency
CCS - The Calculus of Communicating Systems
Programming Concurrency
Programming and Analysis Support
Will be announced before the start of the course on the course page on the Internet.
This module is identical in content to the German-language module Nebenläufige Programmierung.
This module is part of the following study programmes: