Direkt zum Inhalt
Logo des Instituts für Verteilte Systeme Logo der Universität Ulm

Konzepte für nebenläufige, parallele und verteilte Programmierung

Sommersemester 2025

   
Titel: Konzepte für nebenläufige, parallele und verteilte Programmierung
Typ: Vorlesung mit Übung, Modul mit nur dieser Lehrveranstaltung
Kürzel / Nr. / Modulnr.: CCPDP / - / 75262
SWS / LP: 2V+2Ü / 6LP SWS / 2V+2Ü / 6LP LP
Dozent: Dr. Alexander Raschke, Dr. Benjamin Erb
Betreuung: Dr. Alexander Raschke, Dr. Benjamin Erb, Lukas Pietzschmann
Termine: Lecture Q&A & Exercises live; every Tuesday 12:30 – 14:00 (starting on 2025-04-22 in presence; 028/H21) Lecture Videos online, pre-recorded (weekly)
Lernplattform: For the course the e-learning system Moodle is used. Please register in the Moodle course.
Notenbonus: A grade bonus of 0,3 resp. 0,4 is given if certain requirements in the lab are passed successfully. Exact conditions will be specified in the first lecture.
Prüfungstermine: tba.

Beschreibung und allgemeine Angaben

Einordnung in die Studiengänge: Computational Science and Engineering, M.Sc., FSPO 2019/Wahlpflichtmodule/Informatik - Wahlpflicht Informatik, M.Sc., FSPO 2021/Kernfach/Praktische und Angewandte Informatik Informatik, M.Sc., FSPO 2021/Vertiefungsfach/Software-Engineering und Compilerbau Informatik, M.Sc., FSPO 2021/Vertiefungsfach/Verteilte Systeme Informatik, M.Sc., FSPO 2022/Vertiefungsbereich Informatik/Praktische Informatik Informationssystemtechnik, M.Sc., FSPO 2017/Vertiefungsmodule/Vertiefungsmodule Informatik Künstliche Intelligenz, M.Sc., FSPO 2021/Kernfach Künstliche Intelligenz/Praktische und Angewandte Informatik Medieninformatik, M.Sc., FSPO 2021/Kernfach/Praktische und Angewandte Informatik Medieninformatik, M.Sc., FSPO 2021/Vertiefungsfach Medieninformatik/Software-Engineering und Compilerbau Medieninformatik, M.Sc., FSPO 2021/Vertiefungsfach Medieninformatik/Verteilte Systeme Medieninformatik, M.Sc., FSPO 2022/Vertiefungsbereich Medieninformatik/Praktische Informatik Software Engineering, M.Sc., FSPO 2021/Kernfach/Software Engineering Software Engineering, M.Sc., FSPO 2021/Vertiefungsfach Software Engineering/Advanced Software Engineering Software Engineering, M.Sc., FSPO 2022/Vertiefungsbereich Software Engineering/Praktische Informatik Software Engineering, M.Sc., FSPO 2022/Vertiefungsbereich Software Engineering/Software Engineering
Lehr- und Lernformen:
Verantwortlich: Dr. Alexander Raschke
Dozent: Dr. Alexander Raschke, Dr. Benjamin Erb
Unterrichtssprache: English/Deutsch
Turnus / Dauer: Every summer term / one semester
Voraussetzungen (inhaltlich): Knowledge in object-oriented and functional programming
Voraussetzungen (formal):
Grundlage für (inhaltlich):
Lernergebnisse: Knowledge and understanding: *  explain the common problems and challenges arising from concurrency, parallelism and distribution * explain possible solutions for tackling concurrency, parallelism and distribution * explain different frameworks for concurrent, parallel or distributed programming and how they can be applied * explain how language concepts and paradigms support the development of concurrent, parallel and distributed applications * explain the fundamental concepts related to concurrency, parallelism and distribution Skills and abilities: *  identify and recognize general problems related to concurrency, parallelism and distribution in applications * select appropriate solution approaches for applications on multi-core systems or in distributed setups * avoid common mistakes by applying best practices * use different languages and frameworks by applying knowledge about general concepts Judgement and approach: *  select appropriate concepts, languages and frameworks for developing parallel applications
Inhalt: Due to the rise of multi-core and many-core systems as well as the increasing use of distributed execution environments, a thorough understanding of the concepts concurrency, parallelism and distribution has become essential to software engineers. The course covers common problems, best-practices, general architectural concepts, language paradigms, and frameworks which target the development of concurrent, parallel and distributed programs. Basic concepts covered in this lecture include shared-memory concurrency (e.g., thread-based and event-driven) and message-passing approaches (e.g., synchronous and asynchronous). Furthermore, the lecture explores different multi-threading approaches on the JVM, and in particular, concurrency primitives and advanced concurrency concepts of the Java programming language. The course also includes frameworks that bring alternative concurrency models to the JVM, such as actor-based concurrency. In addition, the lecture addresses data-parallel processing paradigms, both as language primitive and on distributed platforms (e.g., MapReduce, Apache Flink).
Literatur: Lecture slides and selected literature referenced in the lecture.
Bewertungsmethode: The module examination consists of a graded written or oral examination, depending on the number of participants. If a specified academic work is achieved, a grade bonus is awarded in accordance with §17 (3a) of the General Examination Regulations at the immediately following examination. The examination grade is improved by one grade level, but not better than 1.0. An improvement from 5.0 to 4.0 is not possible. The examination form will be announced in good time before the examination is held - at least 4 weeks before the examination date.
Arbeitsaufwand: Active time: 60 h Preparation and evaluation: 120 h Sum: 180 h
Logo: Zertifikat seit 2008 – Audit familiengerechte Hochschule Logo: StudyCheck - Top Universität Logo: StudyCheck - digital readiness Logo: Weltoffene Hochschulen – Gegen Fremdenfeindlichkeit