Skip to main content
Institute of distributed systems logo Ulm university logo

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

Summer Semester 2022

   
Title: Konzepte für nebenläufige, parallele und verteilte Programmierung
Type: Vorlesung mit Übung, Modul mit nur dieser Lehrveranstaltung
Token / Number / Module number: CCPDP / - / 75262
Semester hours / Credits: 2V+2Ü / 6LP SCH / 2V+2Ü / 6LP CP
Lecturer: Dr. Alexander Raschke, Dr. Benjamin Erb
Tutor: Dr. Alexander Raschke, Dr. Benjamin Erb
General schedule: Lecture Q&A & Exercise live (mostly online, somtimes in presence); every Tuesday 12:30 – 14:00 (starting on 2022-04-19 in presence; 028/H21) Lecture Videos online, pre-recorded (weekly)
Learning platform: For the course the e-learning system Moodle is used. Please register in the Moodle course.
Grade bonus: 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.
Exam dates: tbd.

Description and general information

Integration of module into courses of studies: Informatik, M.Sc., FSPO 2017/Kernfach/Praktische und Angewandte Informatik Informatik, M.Sc., FSPO 2017/Vertiefungsfach/Software-Engineering und Compilerbau Informatik, M.Sc., FSPO 2017/Vertiefungsfach/Verteilte Systeme Medieninformatik, M.Sc., FSPO 2017/Kernfach/Praktische und Angewandte Informatik Medieninformatik, M.Sc., FSPO 2017/Vertiefungsfach Medieninformatik/Software-Engineering und Compilerbau Medieninformatik, M.Sc., FSPO 2017/Vertiefungsfach Medieninformatik/Verteilte Systeme Software Engineering, M.Sc., FSPO 2017/Kernfach/Software Engineering Software Engineering, M.Sc., FSPO 2017/Vertiefungsfach Software Engineering/Advanced Software Engineering Informationssystemtechnik, M.Sc., FSPO 2017/Vertiefungsmodule/Vertiefungsmodule Informatik Master Computational Science and Engineering/Wahlpflichtmodule
Modes of learning and teaching:
Module authority: Dr. Alexander Raschke
Lecturer: Dr. Alexander Raschke, Dr. Benjamin Erb
Language: English/Deutsch
Turn / Duration: Every summer term / one semester
Requirements (contentual): Knowledge in object-oriented and functional programming
Requirements (formal):
Basis for:
Learning objectives: 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
Content: 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).
Literature: Lecture slides and selected literature referenced in the lecture.
Grading procedure: 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.
Estimation of effort: Active time: 60 h Preparation and evaluation: 120 h Sum: 180 h
Logo: Certificate since 2008 - audit family-friendly university Logo: StudyCheck - top university Logo: StudyCheck - digital readiness Logo: Universities for openness, tolerance and against xenophobia