Modulinformationssystem Informatik

 

Concurrent and Distributed Programming URL PDF XML

Modulcode: infCDP-01a
Englische Bezeichnung: Concurrent and Distributed Programming
Modulverantwortliche(r): Priv.-Doz. Dr. Frank Huch
Turnus: unregelmäßig (SS19 WS20/21)
Präsenzzeiten: 4V 2Ü
ECTS: 8
Workload: 60 h lectures, 30 h exercises, 150 h self studies
Dauer: ein Semester
Modulkategorien: BSc-Inf-WP (BSc Inf (21)) WI (BSc Inf (15)) WI (BSc Inf) MSc-Inf-WP (MSc Inf (21)) 2F-MEd-Inf-WP (MEd-Hdl Inf (21)) 2F-MA-Inf-WP (2F-MA Inf (21)) MSc-WInf-WP-Inf (MSc WInf (21)) PI (MSc Inf (15)) WI (MSc Inf (15)) WI (MSc WInf (15)) WI (MEd Inf) WPI (MEd Inf) IG (TA) (MSc Inf (2-Fach)) IS (SA) (MSc Inf (2-Fach)) IG (SA) (MSc Inf (2-Fach)) WI (MSc WInf) IG (MSc Inf) IS (MSc Inf) MV (MSc Inf)
Lehrsprache: Englisch
Voraussetzungen: Info

Kurzfassung:

This module gives a deep insight into the problems, techniques and concepts of concurrent and distributed programming. Different approaches are presented and compared to each other. Further focus are distributed algorithms and robustness in distributed systems.

Lernziele:

Students can apply techniques of concurrent and distributed programming in practical applications. They detect problems related to concurrency aspects within concurrent and distributed systems and can solve them by means of the learned approaches. Furthermore, they are able to understand new approaches for concurrent an distributed programming and can relate them to other approaches.

Lehrinhalte:

This module gives a deep insight into the problems, techniques and concepts of concurrent and distributed programming. Different approaches, like Semaphores, Monitors, Actors, Message Passing, RMI and Transactional Memory are discussed, their integration into different programming languages are compared and they are prototypically implemented within another language context. We will take a look at concepts within several programming languages, like Java, Python, Erlang and Haskell. Most implementations of other concepts will be done in Erlang.

Developing concurrent and distributed systems is hard, because of possible bugs, like race conditions, deadlocks and lifelocks. Systematic testing and formal verification can be solutions to avoid these bugs. We will discuss some approaches and again develop a prototypical implementation.

Weitere Voraussetzungen:

Good knowledge in programming in Java or an other imperative language (including basic concurrency concepts) and in functional programming languges, like Haskell. Basic knowledge of internet protocols and their usage in progrmming languages.

Prüfungsleistung:

Oral exam about the topics of the lecture and the exercises.

Lehr- und Lernmethoden:

Lectures with exercises. In the exercises the students have to implement several concurrent algorithms and systems, which deepen the concepts and implementations presented in the lectures.

Verwendbarkeit:

Literatur:

will be given in the lecture

Verweise:

Kommentar:

This module is a longer version of module Inf-NVP. Therefore you may not attend both courses in your degree program.