Concepts for Concurrent, Parallel and Distributed Programming

 
Titel: Konzepte für nebenläufige, parallele und verteilte Programmierung
Englischer Titel: Concepts for Concurrent, Parallel and Distributed Programming
Typ: Vorlesung mit Übung, Modul mit nur dieser Lehrveranstaltung
Kürzel / Nr. / Modulnr.: CCPDP / CS7310.000 / 75262
SWS / LP: 2V+2Ü / 6LP
Dozent: Dr. Alexander Raschke, Dr. Benjamin Erb
Betreuung: Dr. Alexander Raschke, Dr. Benjamin Erb
Termine: Lecture Q&A & Exercises
live; every Tuesday 12:30 – 14:00 (starting on 2024-04-16 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
Verantwortlich: Dr. Alexander Raschke
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.
Notenbildung: Grade of the module exam
Arbeitsaufwand: Active time: 60 h
Preparation and evaluation: 120 h
Sum: 180 h

Diese Veranstaltung findet im Sommersemester 2023 als flipped-classroom Vorlesung mit Live-Q&As und Übungen statt. Vorlesungen werden als Aufzeichnungen online bereitgestellt und können zu beliebigen Zeitpunkten abgerufen werden, sind aber mit den wöchentlichen Übungen + Q&A-Sessions zu den Vorlesungsinhalten synchronisiert. Diese finden wöchentlich als hybride Veranstaltung statt – präferiert vor Ort, Teilnahme aber auch online möglich. Wenn Sie an der Veranstaltung teilnehmen wollen, schreiben Sie sich bitte in den dazugehörigen Moodle-Kurs ein, um über den genauen Ablauf informiert zu werden.

 
Titel: Konzepte für nebenläufige, parallele und verteilte Programmierung
Englischer Titel: Concepts for Concurrent, Parallel and Distributed Programming
Typ: Vorlesung mit Übung, Modul mit nur dieser Lehrveranstaltung
Kürzel / Nr. / Modulnr.: CCPDP / CS7310.000 / 75262
SWS / LP: 2V+2Ü / 6LP
Dozent: Dr. Alexander Raschke, Dr. Benjamin Erb
Betreuung: Dr. Alexander Raschke, Dr. Benjamin Erb
Termine: Lecture Q&A & Exercises
live (hybrid: on-site and online); every Tuesday 12:30 – 14:00 (starting on 2023-04-18 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: tbd.

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
Verantwortlich: Dr. Alexander Raschke
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.
Notenbildung: Grade of the module exam
Arbeitsaufwand: Active time: 60 h
Preparation and evaluation: 120 h
Sum: 180 h

Diese Vorlesung findet im Sommersemester 2022 als Kombi-Veranstaltung statt. Vorlesungen werden als Aufzeichnungen online bereitgestellt und können zu beliebigen Zeitpunkten abgerufen werden, sind aber mit den wöchentlichen Übungen + Q&A-Sessions zu den Vorlesungsinhalten synchronisiert. Diese finden wöchentlich statt – überwiegend online, teilweise aber auch vor Ort (je nach Entwicklung der Pandemie-Lage). Wenn Sie an der Veranstaltung teilnehmen wollen, schreiben Sie sich bitte in den dazugehörigen Moodle-Kurs ein, um über den genauen Ablauf informiert zu werden.

 
Titel: Konzepte für nebenläufige, parallele und verteilte Programmierung
Englischer Titel: Concepts for Concurrent, Parallel and Distributed Programming
Typ: Vorlesung mit Übung, Modul mit nur dieser Lehrveranstaltung
Kürzel / Nr. / Modulnr.: CCPDP / CS7310.000 / 75262
SWS / LP: 2V+2Ü / 6LP
Dozent: Dr. Alexander Raschke, Dr. Benjamin Erb
Betreuung: Dr. Alexander Raschke, Dr. Benjamin Erb
Termine: 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)
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: tbd.

Beschreibung und allgemeine Angaben

Einordnung in die Studiengänge: 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
Verantwortlich: Dr. Alexander Raschke
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.
Notenbildung: Grade of the module exam
Arbeitsaufwand: Active time: 60 h
Preparation and evaluation: 120 h
Sum: 180 h

Diese Vorlesung findet im Sommersemester 2021 online statt. Vorlesungen werden als Aufzeichnungen online bereitgestellt und können zu beliebigen Zeitpunkten abgerufen werden, sind aber mit den Übungen synchronisiert. Übungen sowie eine Fragestunde zu den Vorlesungsinhalten finden an festen Terminen online statt. Wenn Sie an der Veranstaltung teilnehmen wollen, schreiben Sie sich bitte in den dazugehörigen Moodle-Kurs ein, um über den genauen Ablauf informiert zu werden.

 
Titel: Konzepte für nebenläufige, parallele und verteilte Programmierung
Englischer Titel: Concepts for Concurrent, Parallel and Distributed Programming
Typ: Vorlesung mit Übung, Modul mit nur dieser Lehrveranstaltung
Kürzel / Nr. / Modulnr.: CCPDP / CS7310.000 / 75262
SWS / LP: 2V+2Ü / 6LP
Dozent: Dr. Alexander Raschke, Dr. Benjamin Erb
Betreuung: Thomas Witte
Termine: Lecture Q&A
online, live; every Tuesday 12:30 – 14:00 (starting on 2021-04-20)
Lecture Videos
online, pre-recorded (weekly)
Exercises:
online, live; every Thursday 16:15 – 17:15 (starting on 2021-04-22)
Lernplattform: For the course the e-learning system Moodle is used. Please register in the Moodle course.
Notenbonus: tbd.
Prüfungstermine: tbd.

Beschreibung und allgemeine Angaben

Einordnung in die Studiengänge: 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
Verantwortlich: Dr. Alexander Raschke
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.
Notenbildung: Grade of the module exam
Arbeitsaufwand: Active time: 60 h
Preparation and evaluation: 120 h
Sum: 180 h