| 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 |