Nebenläufige Programmierung Holger Hermanns

News

10.10.2016

Ergebnisse der Nachklausuren

Liebe Studierende,

wir haben die Bewertung der Nachklausuren nun abgeschlossen.

Sie finden Ihre Punktzahl auf Ihrer persönlichen Statusseite im dCMS. Dort finden Sie auch diverse Statistiken.

Die Bestehensgrenzen sind identisch zu den Bestehensgrenzen der... Weiterlesen

Liebe Studierende,

wir haben die Bewertung der Nachklausuren nun abgeschlossen.

Sie finden Ihre Punktzahl auf Ihrer persönlichen Statusseite im dCMS. Dort finden Sie auch diverse Statistiken.

Die Bestehensgrenzen sind identisch zu den Bestehensgrenzen der entsprechenden Hauptklausuren, ebenso die jeweiligen Notenberechnungen.

Sofern Sie das Modul nun in allen Aspekten erfolgreich absolviert haben 🎉, sollte Ihnen das dCMS auch Ihre aktualisierte Endnote anzeigen.

Falls Sie Fragen haben, wenden Sie sich bitte an uns.

Zur Einsichtnahme in die Nachklausuren bieten wir den kommenden Freitag (14. Oktober) an, von 10:00 bis 11:00 in E1 3, Raum 528.

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

29.09.2016

Nachklausuren

Liebe Studierende,

am Dienstag, dem 04.10. schreiben wir wie angekündigt die Nachklausuren. Beide Klausuren werden je 60 Minuten dauern.

Die Nachklausur T beginnt pünktlich um 11:00, die Nachklausur A voraussichtlich um 12:15.

Im dCMS finden Sie in den... Weiterlesen

Liebe Studierende,

am Dienstag, dem 04.10. schreiben wir wie angekündigt die Nachklausuren. Beide Klausuren werden je 60 Minuten dauern.

Die Nachklausur T beginnt pünktlich um 11:00, die Nachklausur A voraussichtlich um 12:15.

Im dCMS finden Sie in den Materialien nun Sitzpläne für beide Klausuren.
Falls Sie glauben, zu Unrecht keinen Platz zugewiesen bekommen zu haben, kontaktieren Sie uns bitte umgehend.

Finden Sie sich bitte 10 Minuten vor geplantem Beginn der Klausur vor dem Günter-Hotz-Hörsaal ein, damit Sie Ihren Platz rechtzeitig einnehmen können.

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

17.08.2016

Ergebnisse der Projektabnahme

Liebe Studierende,

die Ergebnisse der Projektabnahmen sind nun auf der persönlichen Statusseite aufgeführt.

Falls Sie die Abnahme nicht bestanden haben, müssen Sie nacharbeiten. Dazu laden Sie bis Freitag, den 07.10.2016 eine ZIP-Datei ins dCMS hoch, die die... Weiterlesen

Liebe Studierende,

die Ergebnisse der Projektabnahmen sind nun auf der persönlichen Statusseite aufgeführt.

Falls Sie die Abnahme nicht bestanden haben, müssen Sie nacharbeiten. Dazu laden Sie bis Freitag, den 07.10.2016 eine ZIP-Datei ins dCMS hoch, die die folgenden Dateien und Dokumente enthält:

  • Ihre korrigierte Implementierung. Achten Sie weiterhin darauf, dass Ihr Code angemessen kommentiert und insgesamt selbsterklärend ist.
  • Das (gegebenenfalls aktualisierte) Dokument, in welchem Sie Ihren Lösungsansatz dargelegt haben.
  • 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 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.

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

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 - 08:30 Freiversuche     im Regelfall Gebäude E1 3, Hörsaal 002
Mi 08:35 - 10:05 Tutorien Gebäude E1 3, SR014, SR015, SR016
Mi 10:15 - 10:30 Freiversuche im Regelfall Gebäude E1 3, Hörsaal 002
Mi 10:35 - 12:05 Tutorien Gebäude E1 3, SR014, SR015, SR016, SR107

 

 

 

 

 

Achtung: Nicht in jeder Woche finden alle Termine statt. Nutzen Sie den Kalender für einen genauen Plan. Die Midterm-Klausur findet an einem Montag an Stelle einer Vorlesung statt.

Die erste Vorlesung findet am Montag, dem 18. April 2016 statt.


Registrierung

Die Registrierung für den Kurs ist nach der ersten Vorlesung unter Anmeldung bis Samstag, den 23. April 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


Bei technischen Problemen wenden Sie sich bitte an die Administratoren