Skip to content

Report an error

Nichtsequentielle und verteilte Programmierung

Nichtsequentielle und verteilte Programmierung
Organisationseinheit
Freie Universität Berlin/Mathematik und Informatik/Informatik
Bereich

  • Pflichtbereich
  • Themengebiet Algorithmen und Programmierung
Zugangsvoraussetzungen

Erfolgreiche Absolvierung des Moduls Objektorientierte Programmierung für Studentinnen und Studenten mit Programmierkenntnissen oder des Moduls Objektorientierte Programmierung für Studentinnen und Studenten ohne Programmierkenntnisse

Qualifikationsziele

Die Studentinnen und Studenten verstehen die Grundbegriffe der nichtsequentiellen und verteilten Programmierung mit gemeinsamen Speicher und Nachrichtenaustausch. Sie können verteilte Programme mit Prozessen/Threads/ aktiven Objekten geeignet strukturieren und durch geeignete Synchronisationsverfahren unerwünschte nichtdeterministische Effekte sowie Verklemmungen vermeiden. Sie kennen und verstehen Sicherheitsrisiken, die in nichtsequentiellen Programmen entstehen können und können Methoden einsetzen, diese zu vermeiden. Sie können Eigenschaften von Prozessen und Threads formal spezifizieren und diese exemplarisch verifizieren.

Die Studentinnen und Studenten können relevante Interaktionsparadigmen wie Client/Server und Peer-to-Peer unterscheiden und eigene Anwendungen nach diesen Paradigmen geeignet einordnen und verteilte Systeme auf der Basis von Interprozesskommunikation und Fernaufrufen konstruieren. Sie können Webanwendungen, Kunde/ Dienstleister-Anwendungen, Peer-to-Peer Anwendungen geeignet entwerfen, strukturieren und realisieren und verteilte Systeme mithilfe geeigneter Middleware entwickeln.

Inhalte

Programmieren und synchronisieren von gleichzeitig laufenden Prozessen, die auf gemeinsamen Speicher zugreifen oder über Nachrichtenaustausch interagieren.

  • Nichtsequentielle Programme und Prozesse in ihren verschiedenen Ausprägungen, Nichtdeterminismus, Determinierung
  • Synchronisationsmechanismen: Sperren, Monitore, Wachen, Ereignisse, Semaphore
  • Nichtsequentielle Programmausführung und Objektorientierung Ablaufsteuerung, Auswahlstrategien, Prioritäten, Umgang mit und Vermeidung von Verklemmung
  • Koroutinen, Implementierung, Mehrprozessorsysteme
  • Interaktion über Nachrichten, Sicherheitsaspekte von Anwendungen im Netzwerk
  • Programmieren und synchronisieren von gleichzeitig laufenden Prozessen, die über Nachrichtenaustausch interagieren.
  • Fernaufruftechniken
  • Client-Server, Peer-to-Peer
  • Parallelrechnen im Netz
  • Koordinierungssprachen, Orchestrierung, Choreographie
  • Verarbeitung auf dem Server und auf dem Client, Mobilität
  • Middleware, strukturierte Kommunikation, statische und dynamische Schnittstellen
  • Ereignisbasierte und strombasierte Verarbeitung
  • Sicherheit von Anwendungen im Netzwerk, Absicherung der Protokolle
  • Ausblick auf nichtfunktionale Eigenschaften (Zeit, Speicher, Dienstgüte)
Lehr- und LernformenAktive Teilnahme
Vorlesung
4 SWS
Teilnahme empfohlen

-

Übung
2 SWS
verpflichtete Teilnahme

Schriftliche Bearbeitung der Übungsblätter; Mündliche Präsentation der Lösungen von Übungsaufgaben in den Übungen

Aufwand

Vor- und Nachbereitung V30 Stunden
Präsenzzeit Ü30 Stunden
Vor- und Nachbereitung Ü120 Stunden
Prüfungsvorbereitung und Prüfung30 Stunden
Modulprüfung
Klausur (120 Minuten); die Klausur kann auch in Form einer elektronischen Prüfungsleistung (120 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 Sommersemester
Verwendbarkeit

Bachelorstudiengang Informatik