Nebenläufige Programmierung Holger Hermanns

News

27.05.2020

Abgabe Aufgabenblatt C (early)

Liebe Studierende,

gestern Abend kam es zeitweise (23:00 Uhr – 23:38 Uhr) zu einem Totalausfall der Uni-Infrastruktur. Auch unser dCMS war in dieser Zeit nicht erreichbar.
Falls Sie gestern Abend Probleme hatten, Ihre Abgabe zu Aufgabenblatt C einzureichen,... Weiterlesen

Liebe Studierende,

gestern Abend kam es zeitweise (23:00 Uhr – 23:38 Uhr) zu einem Totalausfall der Uni-Infrastruktur. Auch unser dCMS war in dieser Zeit nicht erreichbar.
Falls Sie gestern Abend Probleme hatten, Ihre Abgabe zu Aufgabenblatt C einzureichen, können Sie dies noch bis heute 10:59 Uhr nachholen.

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

20.05.2020

Termin der Klausur T

Liebe Studierende,

es steht nun definitiv fest, dass die aktuellen Regeln und Empfehlungen der Universität es unmöglich machen, die Klausur T im Juni stattfinden zu lassen. Wir gehen davon aus, dass diese Klausur zusammen mit der Klausur A am 6. August... Weiterlesen

Liebe Studierende,

es steht nun definitiv fest, dass die aktuellen Regeln und Empfehlungen der Universität es unmöglich machen, die Klausur T im Juni stattfinden zu lassen. Wir gehen davon aus, dass diese Klausur zusammen mit der Klausur A am 6. August stattfinden können wird.

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

18.05.2020

Korrektur Aufgabenblatt A

Liebe Studierende,

wir haben die Korrektur von Aufgabenblatt A nun abgeschlossen. Sie finden Ihre Punktzahl und Feedback auf Ihrer persönlichen Statusseite.

Sollten Sie Fragen zur Korrektur haben, können Sie sich hier an uns wenden.
Bitte beachten Sie, dass... Weiterlesen

Liebe Studierende,

wir haben die Korrektur von Aufgabenblatt A nun abgeschlossen. Sie finden Ihre Punktzahl und Feedback auf Ihrer persönlichen Statusseite.

Sollten Sie Fragen zur Korrektur haben, können Sie sich hier an uns wenden.
Bitte beachten Sie, dass die Tutoren während der Office Hour keine Fragen zur Korrektur beantworten können.

Wir werden die Veröffentlichung von Korrekturen im Allgemeinen nicht per News ankündigen. Falls Sie jeweils per E-Mail benachrichtigt werden möchten, können Sie dieses Thema im Forum beobachten.

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

11.05.2020

Tutorien eingeteilt

Liebe Studierende,

wir haben die Einteilung in die Tutorien jetzt vorgenommen. Sie finden Ihre Einteilung auf Ihrer persönlichen Statusseite.

Am Mittwoch findet das erste Tutorium statt. Die Tutorien werden von unserem Tutorenteam auf Discord organisiert,... Weiterlesen

Liebe Studierende,

wir haben die Einteilung in die Tutorien jetzt vorgenommen. Sie finden Ihre Einteilung auf Ihrer persönlichen Statusseite.

Am Mittwoch findet das erste Tutorium statt. Die Tutorien werden von unserem Tutorenteam auf Discord organisiert, Sie finden den Einladungslink in den Materialien. Bitte behalten Sie zu Beginn des Tutoriums den Pinnwand-Kanal dort im Blick.

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

02.05.2020

Kick-Off-Vorlesung

Liebe Studierende,

am kommenden Montag um 14:15 Uhr findet die erste Vorlesung der Nebenläufigen Programmierung statt. Dort werden wir Ihnen die organisatorischen Details zum Ablauf der Vorlesung in diesem Semester online vorstellen.

Den Link zur... Weiterlesen

Liebe Studierende,

am kommenden Montag um 14:15 Uhr findet die erste Vorlesung der Nebenläufigen Programmierung statt. Dort werden wir Ihnen die organisatorischen Details zum Ablauf der Vorlesung in diesem Semester online vorstellen.

Den Link zur Web-Konferenz finden Sie hier im Forum. Wir freuen uns auf Sie.

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

06.04.2020

Wegweiser zu den Live-Veranstaltungen

Liebe Studierende,

da wir in dieser Phase mit verschiedenen Systemen für unsere Live-Veranstaltungen experimentieren, bietet Ihnen das Forum ab sofort und bis auf Weiteres alle aktuellen Informationen, was wo stattfindet. Bitte stellen Sie dieses Forums-Thema... Weiterlesen

Liebe Studierende,

da wir in dieser Phase mit verschiedenen Systemen für unsere Live-Veranstaltungen experimentieren, bietet Ihnen das Forum ab sofort und bis auf Weiteres alle aktuellen Informationen, was wo stattfindet. Bitte stellen Sie dieses Forums-Thema unter Beobachtung, falls Sie jeweils per Mail benachrichtigt werden möchten. Eine Anleitung dazu finden Sie ebenfalls dort. Wir verschicken keine separaten News für jede Sprechstunde oder dergleichen.

Insbesondere finden Sie dort bereits jetzt den Link zur ersten Sprechstunde am 7. April 2020 um 10:15 zur Vorlesung A1 (diesmal in Zoom).

Die Office Hours finden derzeit auf dem Discord-Server statt, den Sie über den Einladungslink in den Materialien betreten können.

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

03.04.2020

Online-Angebote im April

Liebe Studierende,

wie Sie sicher wissen, wird der Präsenzbetrieb an der Universität erst am 4. Mai 2020 starten. Erst dann kann auch die Vorlesung Nebenläufige Programmierung regulär beginnen. Diese wird sich inhaltlich sehr weitgehend an den Inhalten der... Weiterlesen

Liebe Studierende,

wie Sie sicher wissen, wird der Präsenzbetrieb an der Universität erst am 4. Mai 2020 starten. Erst dann kann auch die Vorlesung Nebenläufige Programmierung regulär beginnen. Diese wird sich inhaltlich sehr weitgehend an den Inhalten der Edition 2019 orientieren.

Allerdings machen wir Ihnen vorab einige Angebote, die Zeit bis Anfang Mai zu nutzen:

  1. Alle Vorlesungen der Edition 2019 sind als Videos ab sofort über die Materialien-Seite im dCMS für Sie verfügbar.
  2. Alle Trainingsblätter der Edition 2019 sind ab sofort über die Materialien-Seite im dCMS für Sie verfügbar.
  3. Das Team steht ab sofort für Fragen und Diskussion im Forum bereit.
  4. Wir bieten Ihnen im Zeitraum 6. April bis 1. Mai auch die Möglichkeit, einen substantiellen Teil des Inhalts mit Unterstützung durch uns im Home-Office zu erarbeiten. Details dieser Option werden wir direkt am Montag erläutern.

Wir werden Ihnen alle diese Angebote am kommenden Montag, 6. April online vorstellen, und zwar um 11:15 in dieser Web-Konferenz. Wir freuen uns auf Sie.

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

Show all
 

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

Sie wurde ausgezeichnet mit dem Preis des Fakultätentages Informatik 2013 sowie mehrfach mit dem Busy Beaver Award für exzellente Lehre in 2011, 2017 und 2019.


Nebenläufige Programmierung

Multi-Cores und andere parallele Architekturen (zum Beispiel Graphikprozessoren) finden sich auf jedem Schreibtisch. Solche Systeme effizient programmieren zu können, ist eine große Herausforderung.

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

Ziel dieser Vorlesung ist, die Studierenden 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.


Ablauf

Das Modul beginnt am 4. Mai 2020. Wir rechnen nicht damit, dass bis auf weiteres Präsenzveranstaltungen möglich sein werden. Daher setzen wir in diesem Jahr auf eine Mischung aus vorproduzierten Videos, schriftlichen Materialien und Online-Live-Veranstaltungen. Details dazu kündigen wir jeweils rechtzeitig per News an. Bitte registrieren Sie sich schnellstmöglich hier zur Vorlesung, damit Sie per E-Mail benachrichtigt werden können.

Im Regelfall behandeln wir in jeder Woche Inhalte, die in etwa dem Material zweier 90-minütiger Vorlesungen entsprechen. Falls wir es für sinnvoll erachten sollten, Inhalte des Moduls in einer Online-Live-Veranstaltung zu besprechen, werden wir diese zu den Zeiten Montags 14:15–16:00 bzw. Dienstags 10:15–12:00 planen (um Planungssicherheit zu geben und Kollisionen mit anderen Veranstaltungen zu minimieren.) Es werden allerdings alle Inhalte mindestens in Form eines Videos und eines Skriptes bereitgestellt, so dass Sie sich alle Inhalte des Moduls zeitlich unabhängig von Online-Live-Veranstaltungen werden erarbeiten können.

Die Tutoren werden Sie in diesem Jahr online betreuen. Details dazu geben wir mit Beginn der Veranstaltung bekannt. Bitte reservieren Sie, falls möglich, dafür Mittwoch einen der Blöcke 8:15–10:00 oder 10:15–12:00. Zu jeder Zeit erhalten Sie Hilfe in unserem Forum.

Alle festen Termine finden Sie auch jederzeit in unserem Kalender.


Vorab-Angebote

Im April bieten wir Ihnen vorab einige Online-Angebote an, um die Zeit bis Anfang Mai zu nutzen. Sie finden weitere Details in dieser News.


Präsenzprüfungen

Die Vorlesung Nebenläufige Programmierung ist in 2 inhaltliche Blöcke aufgeteilt, Theorie (𝓣) und Anwendung (𝓐), die im Regelfall jeweils vier Wochen umspannen. Daran schließt sich ein praktisches Programmierprojekt (𝓟) an, welches erfolgreich zu absolvieren ist. Für die Blöcke 𝓣 und 𝓐 ist jeweils eine einstündige Präsenzprüfung in Form einer schriftlichen Klausur vorgesehen. Im Regelfall wird die Präsenzprüfung 𝓣 abgelegt, nachdem in etwa die erste Hälfte des Inhaltes behandelt wurde, und die Präsenzprüfung 𝓐 nach Ende der Vorlesungszeit.

In der gegenwärtigen Situation können wir jedoch diese Präsenzprüfungen noch nicht terminieren. Dies geschieht, sobald eine sichere Planung möglich ist, jedoch mindestens 3 Wochen vor dem anzuberaumenden Termin. Wir werden Sie entsprechend informieren. Es ist aktuell nicht ausgeschlossen, dass beide Präsenzprüfungen erst nach Ende der Vorlesungszeit abgelegt werden können. Wir müssen uns auch die Möglichkeit offen lassen, beide Prüfungen an einem Tag stattfinden zu lassen.

Sofern dies uns möglich sein sollte, werden wir Ihnen auch eine Möglichkeit zur Verfügung stellen, noch im Sommersemester eine Wiederholung der obigen Präsenzprüfungen zu absolvieren. Details dazu erhalten Sie ebenfalls, sobald wir dies planen können.


Registrierung

Die Registrierung für den Kurs ist unter Anmeldung möglich. Bitte registrieren Sie sich dort schnellstmöglich, spätestens jedoch bis zum 4. Mai 2020.


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.