News
Ergebnisse der NachklausureinsichtGeschrieben am 17.03.21 von Felix Freiberger Liebe Studierende, die Ergebnisse der Nachklausureinsicht sind jetzt im dCMS eingetragen. Viele Grüße |
Einsicht in die NachklausurenGeschrieben am 22.02.21 von Gregory Stock Liebe Studierende, sofern Sie dazu angemeldet sind, können Sie am Freitag, den 28.02. in die Korrektur der Nachklausuren Einsicht nehmen. Auf Ihrer persönlichen Statusseite sehen Sie Ihren individuellen Einsichtstermin. Bitte erscheinen Sie möglichst genau zu diesem Termin, weder früher noch… Weiterlesen Liebe Studierende, sofern Sie dazu angemeldet sind, können Sie am Freitag, den 28.02. in die Korrektur der Nachklausuren Einsicht nehmen. Auf Ihrer persönlichen Statusseite sehen Sie Ihren individuellen Einsichtstermin. Bitte erscheinen Sie möglichst genau zu diesem Termin, weder früher noch später, um die Bildung einer Warteschlange zu vermeiden. Sollten Sie warten müssen, empfehlen wir Ihnen, dies im Freien zu tun. Falls Sie nicht angemeldet sind, können Sie an der Einsicht nicht teilnehmen. Die Einsicht findet im Günter-Hotz-Hörsaal in E2 2 statt. Während der gesamten Einsicht besteht durchgehend Maskenpflicht. Sie müssen dafür einen medizinischen Mund-Nasen-Schutz (OP-Maske oder FFP2/KN95/N95-Maske) mitbringen. Wir möchten Sie außerdem an den bekannten Gesundheitsfragebogen erinnern:
Falls Sie eine dieser Fragen mit „Ja“ beantworten, dürfen Sie an der Klausureinsicht nicht teilnehmen. Wenn Sie sich nicht sicher sind, wie Sie diese Fragen beantworten sollen, bleiben Sie bitte vorsichtshalber zu Hause und informieren uns, damit wir eine Alternativlösung finden können. Bitte denken Sie an Ihren Studierendenausweis und Ihren medizinischen Mund-Nasen-Schutz. Viele Grüße |
Klausureinsicht in die NachklausurenGeschrieben am 10.02.21 von Gregory Stock Liebe Studierende, nach langer Wartezeit ist es soweit: Es gibt Regeln, wie Einsichtnahmen durchzuführen sind. Die Einsicht in die Nachklausuren wird am Freitag, dem 26.02.2021 stattfinden. Für diese Einsicht müssen Sie sich anmelden. Die Anmeldung finden Sie im dCMS auf Ihrer persönlichen… Weiterlesen Liebe Studierende, nach langer Wartezeit ist es soweit: Es gibt Regeln, wie Einsichtnahmen durchzuführen sind. Die Einsicht in die Nachklausuren wird am Freitag, dem 26.02.2021 stattfinden. Für diese Einsicht müssen Sie sich anmelden. Die Anmeldung finden Sie im dCMS auf Ihrer persönlichen Statusseite. Die Frist dafür ist Sonntag, 21.02.2021, 23:59. Wir weisen bereits jetzt darauf hin, dass während des gesamten Ablaufs der Klausureinsicht die Pflicht zum Tragen eines medizinischen Mund-Nasen-Schutzes, also einer OP-Maske oder einer FFP2/KN95/N95-Maske, besteht. Viele Grüße |
ProjektboniGeschrieben am 12.11.20 von Gregory Stock Liebe Studierende, als einen der letzten Höhepunkte des Moduls sind wir nun in der Lage, die Projektboni zu verkünden. Insgesamt fünf Gruppen erhalten einen Bonus für deren außerordentlich gelungene Bearbeitung des praktischen Projektes. Diese Gruppen sind:
Liebe Studierende, als einen der letzten Höhepunkte des Moduls sind wir nun in der Lage, die Projektboni zu verkünden. Insgesamt fünf Gruppen erhalten einen Bonus für deren außerordentlich gelungene Bearbeitung des praktischen Projektes. Diese Gruppen sind:
Herzlichen Glückwunsch an all diese Gruppen! 🎉 Viele Grüße |
Ergebnisse der NachklausurenGeschrieben am 27.10.20 von Felix Freiberger Liebe Studierende, wir haben die Bewertung der Nachklausuren nun abgeschlossen. Sie finden Ihre Punktzahl auf Ihrer persönlichen Statusseite. Die Bestehensgrenze liegt jeweils (genau wie bei den Hauptklausuren) bei 30 Punkten, mit dieser Punktzahl haben Sie bereits bestanden. Aus den… Weiterlesen Liebe Studierende, wir haben die Bewertung der Nachklausuren nun abgeschlossen. Sie finden Ihre Punktzahl auf Ihrer persönlichen Statusseite. Die Bestehensgrenze liegt jeweils (genau wie bei den Hauptklausuren) bei 30 Punkten, mit dieser Punktzahl haben Sie bereits bestanden. Aus den Klausurpunktzahlen ergibt sich auch Ihre jeweilige Note für die Modulelemente T & A. Sie können Ihre Noten jeweils wie folgt bestimmen: Betrachten Sie das pseuCo-Programm auf https://pseuco.com/#/edit/remote/02qrllrr4ghf52njdyis. Ihre Endnote der Vorlesung ergibt sich, indem Sie die beste Note (Haupt- oder Nachklausur) der beiden Modulelemente T und A mitteln, auf herkömmliche Notenstufen runden und dann gegebenenfalls erzielte Boni mit einberechnen. Details zur Klausureinsicht werden wir rechtzeitig bekannt geben. Viele Grüße |
Ergebnisse der ProjektabnahmeGeschrieben am 02.09.20 von Gregory Stock 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… 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 in Ihrem Repository:
Informieren Sie Ihren Tutor mit einer persönlichen Nachricht im Forum, sobald Sie die Nacharbeit abgeschlossen haben. Senden Sie Ihrem Tutor dabei auch zu jedem Problem, das bei Ihrer ursprünglichen Abgabe noch nicht gelöst werden konnte, eine kurze Liste der Änderungen, die Sie vorgenommen haben, um diese zu beheben. Wir werden die Nacharbeit dann zeitnah bewerten und Ihnen Feedback geben. Wir werden die Nacharbeit ohne weitere Abnahme nur anhand 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. Die Chance zur Nacharbeit endet am Sonntag, den 18.10.2020. Viele Grüße |
Ergebnisse der HauptklausurenGeschrieben am 18.08.20 von Gregory Stock Liebe Studierende, wir haben die Bewertung der Hauptklausuren nun abgeschlossen. Sie finden Ihre Punktzahl auf Ihrer persönlichen Statusseite. Die Bestehensgrenze liegt jeweils bei 30 Punkten, mit dieser Punktzahl haben Sie bereits bestanden. Aus den Klausurpunktzahlen ergibt sich auch Ihre… Weiterlesen Liebe Studierende, wir haben die Bewertung der Hauptklausuren nun abgeschlossen. Sie finden Ihre Punktzahl auf Ihrer persönlichen Statusseite. Die Bestehensgrenze liegt jeweils bei 30 Punkten, mit dieser Punktzahl haben Sie bereits bestanden. Aus den Klausurpunktzahlen ergibt sich auch Ihre jeweilige Note für die Modulelemente T & A. Sie können Ihre Noten jeweils wie folgt bestimmen:
Bitte beachten Sie, dass die Noten der Modulelemente T & A von uns nicht gerundet werden. Wir werden sie so zur Berechnung der Endnote für das Modul „Nebenläufige Programmierung“ verwenden, und erst abschließend auf herkömmliche Notenstufen runden. Sie können am Freitag, 04.09. in die Korrektur Einsicht nehmen. Die Einsicht wird zwischen 09:00 und 13:00 stattfinden. Für die Einsicht müssen Sie sich auf Ihrer persönlichen Statusseite bis Mittwoch, 02.09. anmelden. Weitere Details zum Ablauf dafür werden wir rechtzeitig ankündigen. Viele Grüße |
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