Multithreading und Networking im Java-Umfeld
(Belegnummer 104264)
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.
Zeit und Ort
Vorlesung: Dienstags, 16 - 18 Uhr c.t., wöchentlich in M4; erster Vorlesungstermin am 16.04.2013
Übungen: Mittwochs, 16 - 18 Uhr s.t., wöchentlich in M4
Voraussetzungen
Vordiplom, oder
Zulassung zur Teilnahme an Veranstaltungen des Hauptstudiums, oder
Bachelor - Informatik
Leistungsnachweis
Die Prüfungsleistung der Vorlesung wird durch Bestehen der Klausur erbracht.
Studierende des Studiengangs Diplom Geoinformatik können ein Abtestat (unbenotet) erhalten. Dies setzt die erfolgreiche Teilnahme an der Klausur, oder das Erreichen von mindestens 50% der Punkte der Übungsaufgaben voraus. Hierzu müssen die Lösungen der Übungsaufgaben rechtzeitig (d.h. vor der Vorstellung der Lösungen in der Übung) abgegeben werden.
Eine mündliche Prüfung (Modulabschlussprüfung, Fachprüfung, etc.) setzt immer die erfolgreiche Teilnahme an der Klausur voraus
Anmeldung
Die Anmeldung zu Vorlesung und Übung erfolgt für alle Studierenden durch Einschreibung im LearnWeb bis zum 30.04.2013. Der hierfür benötigte Einschreibeschlüssel wird in der ersten Vorlesung bekanntgegeben.
Zuordnung
Diplom Informatik - Hauptstudium - Programmiersprachen und ihre Implementierung (benotet, 6 CP)
Diplom Informatik - Hauptstudium - Spezialisierung und Vertiefung (benotet, 6 CP)
Diplom Mathematik, Nebenfach Informatik - Hauptstudium - Praktische Informatik (benotet, Seminarschein)
Diplom Geoinformatik - Hauptstudium - Modul 7 Praktische Informatik (benotet, Abtestat)
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, Sebastian Albers
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:
- Thinking in Java, 3rd Edition, Prentice-Hall Eckel, B. (2002):
- 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