Dozentin
Jun.-Prof. Dr.-Ing. Elke Pulvermüller
Übungsleiter
Dipl.-Inf. Wolfgang Runte
Tutoren
Simon Danisch (sdanisch "at" uos.de ),
Josephine Grauert (jgrauert "at" uos.de ),
Timo Grootoonk, B.Sc. (tgrootoonk "at" uos.de ),
Matthias Kampmeyer (mkampmey "at" uos.de ),
Patrice Kaufmann (pkaufmann "at" uos.de ),
Florian Klostermann (flkloste "at" uos.de ),
Alexander Knüppel (aknueppe "at" uos.de ),
Sergey Krutikov, B.Sc. (skrutyko "at" uos.de ),
Michael Meese (mmeese "at" uos.de ),
Michel Meyer, B.Sc. (micmeyer "at" uos.de ),
Anke Reinschlüssel (areinsch "at" uos.de ),
Napoleon Schwan (nschwan "at" uos.de ),
Manuel Schwarz (manschwa "at" uos.de ),
Daniel Vorbrink, B.Sc. (dvorbrink "at" uos.de ),
Falk Wilke (fwilke "at" uos.de ),
Vorlesung
Übung
Beide Übungen haben den gleichen Inhalt.
Beginn
Montag, 16. April 2012 (erste Übung am 19. April)
Prüfungstermin
Samstag, 21.07.2012, 09:00 Uhr (s.t.) - 11:00 Uhr,
Raum 01/E01+E02
Anmeldung über OPIuM erforderlich!
Übersicht über die Ergebnisse
Wiederholungsprüfung
Dienstag, 18.09.2012, 09:00 Uhr (s.t.) - 11:00 Uhr,
Raum 01/E01+E02
Anmeldung über OPIuM erforderlich!
Inhalt
Die Veranstaltung führt in die objekt-orientierten Konzepte und
Programmierung mit Java ein. Die behandelten Konzepte werden durch
Programmieraufgaben eingeübt und vertieft.
Literatur
Ullenboom, C.:
Java ist auch eine Insel ,
Galileo Computing, 10., aktual. Auflage 2012,
1308 S., ISBN: 978-3-8362-1802-3; 49,90 €
(online und als Download verfügbar)
Ullenboom, C.:
Java 7 - Mehr als eine Insel ,
Galileo Computing, 2012,
1433 S., ISBN: 978-3-8362-1507-7; 49,90 €
(online verfügbar)
Krüger, G.; Hansen, H.:
Handbuch der Java-Programmierung ,
Addison-Wesley, 7., aktual. Auflage 2011,
1408 S., ISBN: 978-3-8273-2751-2; 49,80 €,
Webseite
(online im Uni-Netz und als Download verfügbar)
Balzert, H.:
Lehrbuch der Objektmodellierung: Analyse und Entwurf mit der UML 2 ,
Spektrum Akademischer Verlag, 2. Auflage 2005,
XVIII + 568 S., ISBN: 978-3-8274-1162-4; 19,95 €
Freeman, E.; Robson, E.; Bates, B.; Sierra, K.:
Head First Design Patterns ,
O'Reilly Media, 1st Edition 2004,
XXXVI + 638 S., ISBN: 978-0-596-00712-6; 41,00 €, Online-Vorschau
(2)
weitere Literatur
verfügbare Literatur bei Safari Books Online
Vorlesungsmaterial
Das Vorlesungsmaterial wird im Laufe des Semesters zusammengestellt
und wöchentlich überarbeitet/ergänzt.
Foliensatz: Organisatorisches
Vorlesungsskript, Teil 1: Einleitung und Kapitel 1 - Grundlegende objektorientierte Konzepte
Vorlesungsskript, Teil 2: Kapitel 2 - Grundlagen der Software-Entwicklung
Vorlesungsskript, Teil 3: Kapitel 3 - Wichtige objektorientierte Konzepte
Vorlesungsskript, Teil 4: Kapitel 4 - Fehlerbehandlung
Vorlesungsskript, Teil 5: Kapitel 5 - Generizität, Kapitel 6 - Polymorphie
Vorlesungsskript, Teil 6: Kapitel 7 - Klassenbibliotheken (JCF)
Vorlesungsskript, Teil 7: Kapitel 8 - Persistenz
Vorlesungsskript, Teil 8: Kapitel 9 - Nebenläufigkeit
Vorlesungsskript, Teil 9: Kapitel 10 - Grafische Benutzeroberflächen
Vorlesungsskript, Teil 10: Kapitel 11 - Netzwerkprogrammierung
Außerdem: Quelltexte aus der Vorlesung (und darüberhinaus).
Termine
1.
16.04.2012
Organisatorisches (Vorlesung, Übungen, Übungsblätter, Testate, Mailingliste, Information, Klausur ), Einführung (Organisatorisches, Empfohlende Begleitliteratur, Inhalt, Einleitung ), Grundlegende objektorientierte Konzepte (Objekte, Klassen und Instanzen, Modellierungsprinzipien, Identität, Sichtbarkeitsbereiche, Methodenparameter und Rückgabewert )
17.04.2012
Grundlegende objektorientierte Konzepte (Überladen von Methoden, Spezielle Methoden, Gleichheit bzw. Identität von Objekten, Klasseneigenschaften, Der Singleton )
2.
23.04.2012
Grundlagen der Software Entwicklung (Die Programmiersprache Java, Vom Programm zur Maschine, Abstraktion von der Plattform )
24.04.2012
Grundlagen der Software Entwicklung (Abstraktion von der Plattform, Vom Problem zum Programm: Modellierung mit UML, Modellierung mit EBNF, Syntaxdiagrammen, regulären Ausdrücken )
3.
30.04.2012
Grundlagen der Software Entwicklung (Vom Problem zum Programm: Modellierung mit EBNF, Syntaxdiagrammen, regulären Ausdrücken, Muster in der Software-Entwicklung; Programmiersprachenparadigmen ), Wichtige objektorientierte Konzepte (Modularisierung, Abstraktion und Hierarchie; Vererbung, Typing: Typanpassungen/Type Casts )
01.05.2012
Maifeiertag
4.
07.05.2012
Wichtige objektorientierte Konzepte (Typing: Dynamisches Binden, Substitutionsprinzip, Autoboxing; Abstrakte Klasse, Interface )
08.05.2012
Wichtige objektorientierte Konzepte (Fortsetzung Interface, Entwicklung mit Schnittstellen, Paket, Beziehungen und ihre Modellierung: Assoziation/Association, Aggregation, Komposition/Composition, Benutzt-Beziehung/Using )
5.
14.05.2012
Wichtige objektorientierte Konzepte (Beziehungen und ihre Modellierung: Abgrenzung: Komposition, Aggregation, Using; Verfeinerung der Beziehungen (mit UML), Abhängigkeit/Dependency, Instanziierung, Dynamische Modellierung der Beziehungen: UML-Sequenzdiagramme
15.05.2012
Fehlerbehandlung (Grundlagen der Fehlerbehandlung, Zusicherungen/Assertions, Ausnahmen/Exceptions: Exception-Behandlung in Java: Klassenhierarchie, Fehlerbehandlung in Java (catch), Werfen von Exceptions in Java (throw/s) )
6.
21.05.2012
Fehlerbehandlung (Fortsetzung Ausnahmen/Exceptions: Besondere Exception in Java: RuntimeException; Fehler/Errors, Zusicherungen und andere Erweiterungen in UML, Laufzeitstapel/Stack Trace ), Generizität/Generics (Nutzen und mögliche Alternativen, Umsetzung, Erweiterungen: Mehrere Typparameter, Typeinschränkungen: Bounds )
22.05.2012
Generizität/Generics (Fortsetzung Erweiterungen: Typeinschränkungen: Bounds; Modellierung in UML, Generizität bei Objekt- und Klassenmethoden ), Polymorphie/Polymorphismus (Arten von Polymorphie ), Klassenbibliothek/JCF (Klassenbibliotheken allgemein, Java Collection Framework/JCF, JCF Organisation und Aufbau, JCF Schnittstellen, JCF Implementierungen )
7.
28.05.2012
Pfingstmontag
29.05.2012
Klassenbibliotheken/JCF (Fortsetzung JCF Implementierungen, JCF Algorithmen, JCF Typsicherheit, Iteration: Das Entwurfsmuster Iterator, Null Iterator und "Entwurfsmuster" Null Object, Iteration in Java )
8.
04.06.2012
Klassenbibliotheken/JCF (Fortsetzung Iteration: Iteration in Java; JCF Wrapper Implementierung, Exkurs: Innere Klassen ), Persistenz (Grundlagen der Persistenz, Datei-/Verzeichnisverwaltung: Dateien und Verzeichnisse in Java: File, Anlegen, Löschen, Umbenennen, Auflisten mit File )
05.06.2012
Persistenz (Fortsetzung Datei-/Verzeichnisverwaltung: Anlegen, Löschen, Umbenennen, Auflisten mit File; NIO.2, I/O-Streams: Arten von Streams in Java, Java Stream-Klassen: lesen, schreiben, Beispiel: Verwendung von Streams im Programm, Autocloseable und Automatic Resource Management )
9.
11.06.2012
Persistenz (Fortsetzung I/O-Streams: Standard I/O-Streams, Verknüpfen von Streams, Exkurs: Entwurfsmuster Decorator )
12.06.2012
Persistenz (Fortsetzung I/O-Streams: I/O-Klassenhierarchie in Java (Auszug); Serialisierung: Standardserialisierung in Java (Paket java.io), Alternative Realisierungen der Serialisierung in Java )
10.
18.06.2012
Nebenläufigkeit (Grundlagen der Nebenläufigkeit, Threads, Java Threads: Wir bauen einen Java-Thread, Beenden eines Threads, Spezielle Threads; Thread-Gruppen )
19.06.2012
Nebenläufigkeit (Thread Zustände, Threads und Fehler, Synchronisation: Zugriffsprobleme, Kritischer Abschnitt, Abhilfe auf Sprachebene )
11.
25.06.2012
Nebenläufigkeit (Fortsetzung Synchronisation: Schützen kritischer Abschnitte mit Monitoren, Probleme der Synchronisation: Deadlocks; Synchronisation durch Kommunikation )
26.06.2012
Nebenläufigkeit (Fortsetzung Synchronisation: Synchronisation durch Kommunikation, Klassische Probleme in der Synchronisation: Producer-Consumer bzw. Bounded Buffer Problem, Dining Philosophers, Sleeping Barber ), Grafische Benutzeroberflächen (Grafische Benutzeroberflächen/GUI, Abstract Window Toolkit/AWT: Fenstertypen, Steuerelemente, Layout )
12.
02.07.2012
Grafische Benutzeroberflächen (Fortsetzung Abstract Window Toolkit/AWT: Ereignisverarbeitung/Event Handling, Adapterklassen für Listener-Schnittstellen, Event-Dispatching-Thread )
03.07.2012
Grafische Benutzeroberflächen (Beobachter-Muster/Observer Pattern, Swing, Model-View-Controller-Prinzip/Muster, MVC, GUIs und Programme im Web: Applets )
13.
09.07.2012
Netzwerkprogrammierung (Netzwerke Grundlagen, Netzwerkprotokolle, Adressierung, Sockets, Client/Server )
10.07.2012
Netzwerkprogrammierung (Implementierung in Java: Client-Seite, Server-Seite, UDP-Paket-Verbindung in Java; Höhere Kommunikation )
14.
16.07.2012
Prüfungsvorbereitung (Plenum in Raum 66/E34 )
17.07.2012
Prüfungsvorbereitung/Sprechstunde (spezifische Fragen nach Bedarf, einzeln oder gruppenweise in Raum 31/318 )
Leistungsnachweis
Als Leistungsnachweis wird generell ein numerisch und ECTS-benoteter
Übungsschein vergeben bzw. eine entsprechende Modulprüfungsleistung bescheinigt.
Voraussetzung für den Erwerb des Übungsscheins sowie Grundlage für die Note
ist die erfolgreiche Teilnahme an einer Abschlussprüfung.
Um die Zulassung zu dieser Prüfung zu erhalten, ist die erfolgreiche Teilnahme am
Übungsbetrieb zur Vorlesung in diesem oder einem der vorhergehenden Semester erforderlich.
Als Erfolg gilt hierbei jeweils (pro Aufgabenblatt) 50% der möglichen Punkte bei n-1 der
n Übungsblätter.
ECTS-Leistungen müssen nach deutschen Kriterien numerisch benotet werden, die Nummern
werden dann nach dem vorgegebenen Schlüssel auf die ECTS-Buchstaben abgebildet.