WiSe 2014/15













Submodulnummer Veranstaltungsform Name LP SWS / Prüfungsdauer
0088cA.3.5.1 Vorlesung Nichtsequentielle und verteilte Programmierung für Lehramt 0 4.0
0088cA.3.5.2 Übung Nichtsequentielle und verteilte Programmierung für Lehramt 0 2.0
0088cA.3.5.3 Modulprüfung Nichtsequentielle und verteilte Programmierung für Lehramt 10 0 min
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 Programmierung mit gemeinsamen Speicher und Nachrichtenaustausch. Sie können nichtsequentielle 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 mit Hilfe 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) Kenntnisse des Moduls „Algorithmen, Datenstrukturen und Datenabstraktion“ werden vorausgesetzt. Im Selbststudium erwerben die Studentinnen und Studenten Kenntnisse über Betriebssysteme, die im Zusammenhang mit nichtsequentieller Programmierung stehen (etwa Pipelining, Cache, Speicherhierarchie, Unterbrechungsbehandlung, Puffer, Prozesse/Threads)