Multithreading und Networking im Java-Umfeld
(Belegnummer 104184)
Inhalt
Moderne Softwaresysteme bestehen zunehmend aus mehreren, gleichzeitig arbeitenden und oft geographisch verteilten Komponenten, die miteinander kooperieren, kommunizieren, bzw. konkurrieren. Um diese Zusammenarbeit korrekt und effizient zu organisieren, rücken in Anwendungen die Konzepte der Nebenläufigkeit, Parallelität und Verteiltheit in den Vordergrund, die früher vor allem in Betriebssystemen und Supercomputern benutzt wurden.
Die Vorlesung befasst sich mit den Konzepten und Mechanismen für Nebenläufigkeit, Verteiltheit und Kommunikation. Unser Ziel ist, eine ausgewogene Mischung von Theorie und Praxis zu vermitteln. Theoretische Modelle und systematische Konzepte werden mit Java-Programmen veranschaulicht. Wir werden zwei Schwerpunkte aus dem Java-Umfeld behandeln: Multithreading und Networking. Die in der Vorlesung eingeführten Begriffe und Lösungen werden in den Übungen an konkreten Beispielen erprobt.
Achtung
Aufgrund der aktuellen Lage mit dem Coronavirus startet das Sommersemester 2020 erst am 20.04.2020. Die Veranstaltung wird digital durchgeführt. Hinweise zum Ablauf (Vorlesung/Übung) im LearnWeb beachten.
Zeit und Ort
Vorlesung: Die Vorlesung wird digital durchgeführt
Übungen: Donnerstags, 16 - 18 Uhr c.t., wöchentlich via Zoom; erster Übungstermin am 30.04.2020
Voraussetzungen
Bachelor - Informatik
Leistungsnachweis
Die Prüfungsleistung der Vorlesung wird durch Bestehen der Klausur erbracht.
Anmeldung
Die Anmeldung zu Vorlesung und Übung erfolgt für alle Studierenden durch Einschreibung im LearnWeb. Ein Einschreibeschlüssel ist nicht erforderlich.
Zuordnung
M.Sc. Informatik - Praktische und Angewandte Informatik
M.Sc. Informatik - Formale Methoden und Algorithmik
M.Sc. Informatik - Spezialisierung
M.Sc. Mathematik, Nebenfach Informatik
M.Sc. Geoinformatik
B.Sc. Informatik - Wahlbereich
Bemerkung
Im Abstand von ca. 2 Wochen werden Übungsaufgaben zur Vorlesung gestellt. Teilnehmer, die ein Abtestat benötigen, müssen mindestens 50% der Punkte für diese Aufgaben erreichen (wird durch Stichproben kontrolliert). Für alle anderen Teilnehmer ist die Bearbeitung der Aufgaben freiwillig. Es wird aber allen Teilnehmern dringend empfohlen die Aufgaben zu bearbeiten.
Bachelor-Studierende können diese Veranstaltung als Leistung für den Wahlbereich anrechnen lassen. Da es sich um eine Hauptstudiumsveranstaltung handelt müssen fehlende Vorkenntnisse gegebenenfalls selbst erarbeitet werden.
Unterlagen
Unterlagen werden im LearnWeb veröffentlicht.
Veranstalter
Prof. Sergei Gorlatch, Johannes Lenfers
Literatur
- Magee, J., Kramer, J. (2006): Concurrency: State Models & Java Programming, Wiley & Sons, ISBN 0-470-09356-0.
- Holub, A. (2000): Taming Java Threads, APress, ISBN 1-893115-10-0.
- Nowak, J. (2004): Fortgeschrittene Programmierung mit Java 5, Dpunkt Verlag, ISBN 3898643069.
- Oaks, S., Wong, H. (2004): Java Threads, O'Reilly, 0-596-00782-5
Online Resourcen
- Beispiele, Applets, Java-Quellcodes und das LTS Analyzer Tool aus dem Buch Concurrency: State Models & Java Programs von Jeff Magee und Jeff Kramer, 2006, Wiley & Sons
- Advanced Synchronization in Java Threads von Scott Oaks und Henry Wong
- Java SE 7 Dokumentation und API Spezifikation von Oracle
- The Java Tutorials von Oracle
- Creating a GUI With JFC/Swing von Oracle
- Concurrency in Swing von Oracle
Einige allgemeine Bücher zu Java sind auch online erhältlich:
- Eckel, B. (2002): Thinking in Java, 3rd Edition, Prentice-Hall
- Ullenboom, C. (2012): Java ist auch eine Insel, 10. Auflage, Galileo Computing
- Krüger, G., Stark, T. (2011): Das Handbuch der Java-Programmierung, 7. Auflage, Addison-Wesley