Nebenläufige, parallele und verteilte Programmierung
Nebenläufige, parallele und verteilte Programmierung | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Organisationseinheit Freie Universität Berlin/Mathematik und Informatik/Informatik |
|||||||||||
Bereich
|
|||||||||||
Zugangsvoraussetzungen Keine |
|||||||||||
Qualifikationsziele Die Studierenden kennen die grundlegenden Begriffe im Zusammenhang mit der nebenläufigen, parallelen und verteilten Programmierung und ordnen diese in das Themengebiet ein. Sie wenden eine geeignete Modellierung für die Programmierung und Ausführung an und begründen auf Basis von geeigneten Modellen die Entscheidung für einen Programmieransatz und setzen diesen um. Sie können den Einfluss von nichtdeterministischem Verhalten erkennen und mit Hilfe geeigneter Mechanismen die Korrektheit des Programms sicherstellen und sind in der Lage, ihre und andere Programme auf Basis geeigneter Modellierung in Hinblick auf funktionale und nichtfunktionale Anforderungen zu analysieren und zu bewerten. |
|||||||||||
Inhalte Die Studierenden erlernen die Grundlagen der deterministischen Programmausführung (deterministische vs. determinierte Programmausführung, Maschinen-, Ausführungs- und Programmiermodell) und setzen sich mit den Zielsetzungen der nebenläufigen, parallelen und verteilten Programmierung einschließlich nichtfunktionaler Eigenschaften auseinander. Sie erarbeiten sich die Fähigkeit der nebenläufigen Programmierung mit Prozessen auf Systemen mit gemeinsamem Speicher, sowie der parallelen Programmierung mit Threads auf Systemen mit gemeinsamem Speicher. Des Weiteren erlernen die Studierenden Konzepte wie den kritischen Abschnitt und erarbeiten sich Methoden zum Schutz des kritischen Abschnitts in Abhängigkeit vom Maschinenmodell (Schlossvariable [Lock], Semaphore, Monitor). Sie erweitern ihre Fähigkeiten auf den Bereich der parallelen Programmierung mit Nachrichtenaustausch auf Systemen ohne gemeinsamen Speicher. Sie verstehen die Herausforderungen von Verklemmungen und erarbeiten sich entsprechende Lösungsansätze. Im Bereich der verteilten Programmierung erlernen Studierende, wie sie mit homogenen und heterogenen Systemen ohne gemeinsamen Speicher umgehen. Daneben erarbeiten sie sich die Konzepte der verteilten Programmierung (Fernaufrufe, Peer-to-Peer, Gruppenkommunikation) sowie Grundlagen der Infrastruktur für und des Managements von verteilten Anwendungen. Studierende üben den Einsatz von Programmierwerkzeugen für die Entwicklung von nebenläufigen, parallelen und verteilten Programmen. |
|||||||||||
Lehr- und Lernformen | Aktive Teilnahme | ||||||||||
Vorlesung 4 SWS Teilnahme empfohlen |
- |
||||||||||
Übung 2 SWS verpflichtete Teilnahme |
Schriftliche Bearbeitung von Übungsaufgaben. Moderation einer Übung oder eines Teils davon. |
||||||||||
Aufwand
|
|||||||||||
Modulprüfung Mündliche Prüfung (ca. 20 Minuten) oder Klausur (90 Minuten); die Klausur kann auch in Form einer elektronischen Prüfungsleistung (90 Minuten) durchgeführt werden. |
|||||||||||
Differenzierte Bewertung differenzierte Bewertung |
|||||||||||
Modulsprache Deutsch |
|||||||||||
Arbeitsaufwand (Stunden) 270 |
|||||||||||
Leistungspunkte (LP) 9 |
|||||||||||
Dauer des Moduls Ein Semester |
|||||||||||
Häufigkeit des Angebots Jedes Wintersemester |
|||||||||||
Verwendbarkeit Bachelorstudiengang Informatik, Bachelorstudiengang Informatik für das Lehramt, Masterstudiengang für das Lehramt an Integrierten Sekundarschulen und Gymnasien, Masterstudiengang für das Lehramt an Integrierten Sekundarschulen und Gymnasien mit dem Profil Quereinstieg |