Lade Daten...


The module will be finished with an oral online exam of about 30 minutes on Thursday, 18.2.2021, Thursday 4.3.2021 and Tuesday 30.3.2021. If necessary, we will add further dates. The examination will be in English.

Please register for the second round of examinations here, the code is O94JJS.

The last lecture will inform you about the topics and technical aspects of the examination. The examination will take place in this BBB room the code is 604984. In this room, you have to wait until we let you enter the room. If there is a timeout while you are waiting in front of the room, simply login again. In case of problems, contact us via Mattermost.



  • Monday, 10:15 - 11:45 (start on Monday, 2.11.20)
  • Tuesday, 16:15 -17:45

In the first week, we will use the excecise on Thursday, 10:15 for an additional lecture.

The lectures will be held as a combination of live sessions in Zoom (Meeting ID: 856 8663 2031, Passcode: 627432) and recorded videos. The live sessions will also be used to discuss the content of the latest videos, to highlight the important points. Beside the links to the videos, also the programs developed in the lectures will be available on this page.

Exercise Lesson

  • Thursday, 10:15 - 11:45
  • zoom-link
  • Meeting ID: 825 9872 9423 Passcode: 919971

The exercise lessons will be held as live sessions and will focus on discussing possible solutions for the exercises. In most exercises, you will have to programm extensions of code presented during the lectures.

Content of the Module

In this module we will discuss and compare several approaches for concurrent and distributed programming. We will investigate the concepts in different programming languages amongst others Python, Java, Erlang, and Haskell. For this comparision we will reimplement classical concepts, like the Dining Philosophers in each language and also implement the concepts of language A within the concept of language B. Implementing a lot of concurrent code, we will gain experience in developing such code and detecting pitfalls, like deadlocks or unintended race conditions. Furthermore, we will discuss approaches to test and verify concurrent and distributed systems. Finally, we will deeply discuss and implement transaction based concurrency, which simplifies concurrent programming without using locks.


The exam is planned as an oral exam. If too many students want to participate the exam, we might switch to an oral group exam with two students or a written exam. The exam will not only focus on the content of the lecture. It will also cover the exercises. So it is important to work on the assignments and pass in soluitions.

Resources from the Lecture