Nebenläufige Programmierung Holger Hermanns

News

21.08.2019

Ergebnisse der Klausureinsicht

Liebe Studierende,

die Ergebnisse der Klausureinsicht sind jetzt im dCMS eingetragen.

Viele Grüße,
das Team der Nebenläufigen Programmierung

09.08.2019

Ergebnisse der Projektabnahmen

Liebe Studierende,

die Ergebnisse der Projektabnahmen sind nun auf Ihrer persönlichen Statusseite aufgeführt. Falls Sie die Abnahme bestanden haben, sehen Sie dort nun auch Ihre vorläufige Endnote des Moduls Nebenläufige Programmierung. Falls Sie die Abnahme... Weiterlesen

Liebe Studierende,

die Ergebnisse der Projektabnahmen sind nun auf Ihrer persönlichen Statusseite aufgeführt. Falls Sie die Abnahme bestanden haben, sehen Sie dort nun auch Ihre vorläufige Endnote des Moduls Nebenläufige Programmierung. Falls Sie die Abnahme nicht bestanden haben (und die Voraussetzungen für eine Nacharbeit erfüllen), müssen Sie nacharbeiten. Wir erwarten dazu bis Dienstag, den 01.10.2019 in Ihrem Repository:

  • Ihre korrigierte Implementierung. Achten Sie weiterhin darauf, dass Ihr Code angemessen kommentiert und insgesamt selbsterklärend ist.
  • Ihre (gegebenenfalls aktualisierte) Dokumentation.

Informieren Sie Ihren Tutor, sobald Sie die Nacharbeit abgegeben haben. Senden Sie Ihrem Tutor dabei auch ein zusätzliches kleines Dokument, in dem Sie die Änderungen im Vergleich zur ursprünglichen Abgabe auflisten und kurz erklären. Wir werden die Nacharbeit dann bereits vor Ende der Abgabefrist bewerten und Ihnen Feedback geben.

Wir werden die Nacharbeit ohne weitere Abnahme nur an Hand dieser Abgabe bewerten. Achten Sie deshalb unbedingt darauf, dass Sie alle in der Abnahme aufgefundenen Probleme beheben und die Änderungen so erklären, dass wir die Korrektheit Ihrer Abgabe nachvollziehen können.

Bei Fragen dazu, welche Probleme Sie beheben müssen, wenden Sie sich direkt an Ihren Tutor.

Wir empfehlen Ihnen dringend, die Nacharbeit zügig zu bearbeiten und abzugeben. Wenden Sie sich rechtzeitig an Ihren Tutor, falls Sie Fragen zur Nacharbeit haben.

Viele Grüße,
das Team der Nebenläufigen Programmierung

07.08.2019

Ergebnisse von Klausur A

Liebe Studierende,

wir haben die Bewertung der Hauptklausur A nun abgeschlossen. Sie finden Ihre Punktzahl auf Ihrer persönlichen Statusseite.

Die Bestehensgrenze liegt bei 27 Punkten, mit dieser Punktzahl haben Sie bereits bestanden.

Aus der... Weiterlesen

Liebe Studierende,

wir haben die Bewertung der Hauptklausur A nun abgeschlossen. Sie finden Ihre Punktzahl auf Ihrer persönlichen Statusseite.

Die Bestehensgrenze liegt bei 27 Punkten, mit dieser Punktzahl haben Sie bereits bestanden.

Aus der Klausurpunktzahl ergibt sich auch Ihre Note für das Modulelement A. Sie können Ihre Note wie folgt bestimmen:

Bitte beachten Sie, dass die Note des Modulelements A von uns nicht gerundet wird. Ihre Endnote für das Modul „Nebenläufige Programmierung“ ergibt sich aus dem arithmetischen Mittel der beiden Modulnoten durch Runden auf herkömmliche Notenstufen und Subtrahieren eines eventuellen Bonus.

Sie können in die Korrektur Einsicht nehmen. Den Termin dafür werden wir rechtzeitig ankündigen.

Viele Grüße,
das Team der Nebenläufigen Programmierung

 

Dies ist eine Pflichtvorlesung im Bachelor Informatik an der Universität des Saarlandes.

Sie wurde ausgezeichnet mit dem Preis des Fakultätentages Informatik 2013.


Nebenläufige Programmierung

Multi-Cores und andere parallele Architekturen (zum Beispiel Graphikprozessoren) finden sich mittlerweile auf jedem Schreibtisch. Solche Systeme effizient programmieren zu können, ist eine große Herausforderung. Glaubt man den Vorhersagen der Hardware-Hersteller, wird dies schon bald zum Alltag eines jeden Informatikers gehören.

Leider ist das Programmieren von solchen nebenläufigen Systemen extrem schwierig. Dies hat fundamentale und praktische Gründe.

Ziel dieser Vorlesung ist, die Studenten mit der Theorie und Praxis des nebenläufigen Programmierens vertraut zu machen. Eine große Aufgabe, ohne Frage.


Publikum

Diese Vorlesung richtet sich in erster Linie an Studierende im Bachelor Informatik. Sie ist für diese ein Pflichtmodul, und ist laut Studienplan im 4. Fachsemester angesiedelt, kann jedoch bereits ab dem 2. Semester belegt werden. Einzige Vorraussetzung ist die erfolgreiche Teilnahme an der Vorlesung Programmierung 1.


Wöchentliche Termine (vorläufig)

Mo 14:15 - 16:00     Vorlesung Gebäude E1 3, Hörsaal 002
Di 10:15 - 12:00 Vorlesung Gebäude E1 3, Hörsaal 002
Mi 08:15 - 10:00 Tutorien  
Mi 10:15 - 12:00 Tutorien  

 

Achtung: Nicht in jeder Woche finden alle Termine statt. Nutzen Sie den Kalender für einen genauen Plan.

Die erste Vorlesung findet am Montag, dem 8. April 2019 statt.


Klausuren

  • Klausur T: 21.05.2019, 10:15 Uhr
  • Klausur A: 06.08.2019, 10:15 Uhr
  • Nachklausur T: 09.10.2019, Vormittag
  • Nachklausur A: 09.10.2019, Vormittag 

Registrierung

Die Registrierung für den Kurs ist nach der ersten Vorlesung unter Anmeldung möglich! Details zum Übungsbetrieb erfahren Sie in der ersten Vorlesung.


Literatur

Zu den Vorlesungsmaterialien, die den Teilnehmern zur Verfügung gestellt werden, gehört ein Skript, welches den Inhalt der Vorlesung umfassend darstellt. Weiterführende Literatur findet sich hier.


Inhalt

  • Nebenläufigkeit als Konzept
    • Potentieller Parallelismus
    • Tatsächlicher Parallelismus
    • Konzeptioneller Parallelismus
  • Nebenläufigkeit in der Praxis
    • Objektorientierung
    • Betriebssysteme
    • Multi-core Prozessoren, Coprozessoren
    • Programmierte Parallelität
    • Verteilte Systeme (Client-Server, Peer-to-Peer, Datenbanken, Internet)
  • Die Schwierigkeit von Nebenläufigkeit
    • Ressourcenkonflikte
    • Fairness
    • Gegenseitiger Ausschluss
    • Verklemmung (Deadlock)
    • gegenseitige Blockaden (Livelock)
    • Verhungern (Starvation)
  • Grundlagen der Nebenläufigkeit
    • Sequentielle Prozesse
    • Zustände, Ereignisse und Transitionen
    • Transitionssysteme
    • Beobachtbares Verhalten
    • Determinismus vs. Nicht-Determinismus
    • Algebren und Operatoren
  • CCS: Der Kalkül kommunizierender Prozesse
    • Konstruktion von Prozessen: Sequenz, Auswahl, Rekursion
    • Nebenläufigkeit
    • Interaktion
    • Strukturelle operationelle Semantik
    • Gleichheit von Beobachtungen
    • Implementierungsrelationen
    • CCS mit Datentransfer
  • Programmieren von Nebenläufigkeit
    • pseuCo
    • Message Passing in pseuCo und Go
    • Shared Memory in pseuCo und Java
    • Monitore und Semaphoren
    • Shared Objects und Threads in Java
    • Shared Objects und Threads als Transitionssysteme
  • Analyse und Programmierunterstützung
    • Erkennung von Verklemmungen
    • Zusicherung von Sicherheit und Lebendigkeit
    • Model-Basiertes Design von Nebenläufigkeit
    • Software-Architekturen für Nebenläufigkeit


Datenschutz | Impressum
Bei technischen Problemen wenden Sie sich bitte an die Administratoren.