Parallele Programmierung mit Java-Threads
Kontakt
Parallele Programmierung mit Java-Threads
Die Veranstaltung "Parallele Programmierung mit Java-Threads ist eine Veranstaltung im Modul "Fortgeschrittene Java-Technologien" (inf021). Dozent ist Dr.-Ing. Dietrich Boles. Details können der Modulbeschreibung entnommen werden.
Ziele
Die Veranstaltung „Parallele Programmierung mit Java-Threads“ ist eine Spezialveranstaltung im Modul „Fortgeschrittene Java-Technologien“. Ziel der Veranstaltung ist es, Konzepte der parallelen Programmierung im Allgemeinen und der parallelen Programmierung mit Java-Threads im Speziellen kennenzulernen und selbst praktisch zu beherrschen. Der parallelen Programmierung kommt in nahezu allen Anwendungsgebieten eine immer größere Bedeutung zu, insbesondere zur Steigerung der Performance entwickelter Programme bzw. Softwaresysteme.
Voraussetzungen
Die Teilnehmer sollten die Module PDA und OMP erfolgreich absolviert haben. Es können maximal 15 Studierende an der Veranstaltung teilnehmen.
Zeit und Ort
Formal besteht die Veranstaltung aus einer 2-stündigen Vorlesung und einem 2-stündigen Projekt/Übung. Praktisch findet die Veranstaltung allerdings als 4-stündige Veranstaltung ohne formale Trennung in zwei Teile statt. Die Teilnehmer und der Dozent treffen sich während der Veranstaltungszeit jeden Montag von 8.15 – max. 11.45 Uhr. Im Laufe jeder Woche müssen selbstständig bestimmte Aufgaben bearbeitet werden. Der reale Arbeitsaufwand für die Veranstaltung beläuft sich auf ca. 8-10 Stunden pro Woche (inkl. der 4 Stunden am Montag). Eine regelmäßige Teilnahme an den wöchentlichen Treffen wird ausdrücklich erwartet!
Ablauf
Jeden Montag stehen ein (oder mehrere) neue Themen auf dem Programm (siehe Inhalte). Der Dozent stellt die Grundlagen dieser Themen jeweils ausführlich inklusive vieler praktischer Demonstrationen vor. Nachfragen und Diskussionen sind dabei ausdrücklich erwünscht.
Anschließend werden praktische Programmieraufgaben gestellt, die dann gemeinsam oder in Eigenleistung (allein oder Gruppen) bearbeitet werden. Der Dozent ist während der Veranstaltungszeit verfügbar und hilft bei Nachfragen und Problemen gerne weiter. In der Regel werden nicht alle Aufgaben während der Veranstaltung gelöst werden können, sondern müssen dann in der entsprechenden Woche von den Teilnehmern zuhause weiterbearbeitet werden.
Zu Beginn der Veranstaltung der darauffolgenden Woche stellen jeweils einzelne Teilnehmer des Praktikums ihre erarbeiteten Lösungen den anderen vor und es wird über die Lösungen diskutiert.
Inhalte
In der Veranstaltung werden u.a. folgende Themen der parallelen Programmierung mit Java-Threads behandelt:
- Grundlagen von Threads
- Synchronisation
- Semaphore
- Locks
- Fehlverhalten
- Microbenchmarks
- Java Memory Modell
- Atomics
- Queues
- Collections
- Rendezvousklassen
- Future Pattern
- Threadpools
- Fork-Join-Framework
- Parallele Streams
- CompletableFuture
- Flow-API
- Non-Blocking IO
- Virtuelle Threads
Prüfung und Bewertung
Prüfungsform des Moduls inf021 sind "fachpraktische Übungen" ("Eine fachpraktische Übung besteht aus einer Reihe von praktischen Versuchen, Übungsaufgaben oder Programmieraufgaben mit schriftlichen Ausarbeitungen (Versuchsprotokolle). Fachpraktische Übungen können eine mündliche Kurzprüfung oder eine Projektpräsentation beinhalten.").
Jeden Montag wird ein Aufgabenblatt mit Programmieraufgaben ausgegeben. Dieses Aufgabenblatt wird am Montag während der Veranstaltungszeit und in der jeweiligen Woche bearbeitet. Wöchentlich sind von jedem Teilnehmer bis jeweils sonntags abends (23.59 Uhr) die Lösungen abzugeben. Die Abgabe erfolgt durch Hochladen eines entsprechenden Eclipse- oder IntelliJ-Projektes in einen entsprechenden Hausaufgabenordner in der zugehörigen StudIP-Veranstaltung.
Am Beginn der Veranstaltung jeden Montag werden gemeinsam die Aufgaben besprochen. Dabei stellen einzelne Studierende ihre Lösungen vor und wir diskutieren darüber. Im Laufe der Woche korrigiert der Dozent die Abgaben der einzelnen Studierenden und schickt ihnen Kommentare und eine Bewertung per E-Mail zu.
In die Bewertung des Moduls fließen folgende Aspekte ein:
- Vollständige Bearbeitung aller Aufgaben
- Korrektheit und Qualität der Implementierung
- Mitarbeit in der Veranstaltung (Vorstellen eigener Lösungen und Diskussion)
- Mündliche Kurzprüfung in der letzten Veranstaltungswoche oder der darauffolgenden Woche