Dozentin
Jun.-Prof. Dr.-Ing. Elke Pulvermüller
Übungsleiter
Dipl.-Inform. Wolfgang Runte
Tutoren
Christian Flothmann (cflothma "at" uos.de ),
Josephine Grauert (jgrauert "at" uos.de ),
Nico Marniok, B.Sc. (nmarniok "at" uos.de ),
Niels Meyering (nmeyerin "at" uos.de ),
Philip Münch (pmuench "at" uos.de ),
Anke Reinschlüssel ( "at" uos.de ),
Manuel Schwarz (manschwa "at" uos.de ),
Christoph Waßmuth (cwassmut "at" uos.de )
Vorlesung
Übung
Beide Übungen haben den gleichen Inhalt.
Beginn
Montag, 11. April 2011 (erste Übung am 14. April)
Prüfungstermin
Montag, 11.07.2011, 09:00 Uhr (s.t.!) - 11:00 Uhr,
Raum 01/E01+E02
Anmeldung über OPIuM erforderlich!
Übersicht über die Ergebnisse
Wiederholungsprüfung
Mittwoch, 14.09.2011, 09:00 Uhr (s.t.!) - 11:00 Uhr,
Raum 66/E33 und 66/E34
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 Press, 9., aktual. Auflage 2011,
1480 S., ISBN: 978-3-8362-1506-0; 49,90 €
(online und in der älteren 8. Auflage auch als Download verfügbar)
Krüger, G.; Stark, T.:
Handbuch der Java-Programmierung ,
Addison-Wesley, 6., aktual. Auflage 2009,
1356 S., ISBN: 978-3-8273-2874-8; 49,80 €,
Online-Vorschau
(in der älteren 5. Auflage ebenfalls online im Uni-Netz und als Download verfügbar)
Heinisch, C.; Müller, F.; Goll, J.:
Java als erste Programmiersprache ,
Vieweg+Teubner, 6., überarb. Auflage 2011,
xvi+1266 S., ISBN: 978-3-8348-0656-7; 39,95 €,
Online-Vorschau
Schiedermeier, R.:
Programmieren mit Java ,
Pearson Studium, 2., aktual. Auflage 2010,
480 S. ISBN: 978-3-8689-4031-2; 39,95 €,
Online-Vorschau
Middendorf, S.; Singer, R.; Heid, J.:
Java. Programmierhandbuch und Referenz ,
dpunkt.verlag, 3. Auflage 2002,
1151 S., ISBN: 978-3-89864-157-9; 50,00 €
(online verfügbar)
Eckel, B.:
Thinking in Java ,
Prentice Hall, 4th Edition 2006,
1520 S., ISBN: 978-0-1318-7248-6; 45,33 €,
Webseite
(die ältere 3rd Edition
aus dem Jahr 2002 ist als
Online-Vorschau ,
online im Uni-Netz und als
Download verfügbar)
Flanagan, D.:
Java in a Nutshell ,
O'Reilly, 5th Edition 2005,
1264 S., ISBN: 978-0-5960-0773-7; 31,95 €,
Online-Vorschau
(als Safari Book Online im Universitätsnetz freigeschaltet)
Flanagan, D.:
Java Examples in a Nutshell ,
O'Reilly, 3rd Edition 2004,
720 S., ISBN: 978-0-5960-0620-4; 30,99 €,
Online-Vorschau
(als Safari Book Online im Universitätsnetz freigeschaltet)
Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J.:
Entwurfsmuster. Elemente wiederverwendbarer objektorientierter Software ,
Addison-Wesley, 2010,
504 S., ISBN: 978-3-8273-3043-7; 49,80 €,
Online-Vorschau (Auflage von 2009)
Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J.:
Design Patterns, Elements of Reusable Object-Oriented Software ,
Addison-Wesley, 1994,
416 S., ISBN: 978-0-2016-3361-0; 48,90 €
weitere, online verfügbare Bücher
Vorlesungsmaterial
Das Vorlesungsmaterial wird im Laufe des Semesters zusammengestellt
und wöchentlich überarbeitet/ergänzt.
Foliensatz 1: Einleitung (Organisatorisches, Literatur, Inhalt)
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, Kapitel 7 - Klassenbibliotheken (JCF)
Vorlesungsskript, Teil 6: Kapitel 8 - Persistenz
Vorlesungsskript, Teil 7: Kapitel 9 - Nebenläufigkeit
Vorlesungsskript, Teil 8: Kapitel 10 - Grafische Benutzeroberflächen
Vorlesungsskript, Teil 9: Kapitel 11 - Netzwerkprogrammierung
Außerdem: Quelltexte aus der Vorlesung (und darüberhinaus).
Termine
1.
11.04.2011
Einleitung (Organisatorisches, Literatur, Inhalt ), Grundlegende objektorientierte Konzepte (Objekte, Klassen und Instanzen, Modellierungsprinzipien, Identität, Sichtbarkeitsbereiche, Methodenparameter und Rückgabewert )
12.04.2011
Grundlegende objektorientierte Konzepte (Überladen von Methoden, Spezielle Methoden )
2.
18.04.2011
Grundlegende objektorientierte Konzepte (Gleichheit bzw. Identität von Objekten, Klasseneigenschaften, Der Singleton )
19.04.2011
Grundlagen der Software Entwicklung (Die Programmiersprache Java, Vom Programm zur Maschine, Abstraktion von der Plattform, Vom Problem zum Programm )
3.
25.04.2011
Ostermontag
26.04.2011
keine Vorlesung
4.
02.05.2011
Grundlagen der Software Entwicklung (Vom Problem zum Programm: Modellierung mit UML, Modellierung mit EBNF und Syntaxdiagrammen, Muster in der Software-Entwicklung; Programmiersprachenparadigmen ), Wichtige objektorientierte Konzepte (Modularisierung, Abstraktion und Hierarchie; Vererbung )
03.05.2011
Wichtige objektorientierte Konzepte (Vererbung, Typing: Type Casts, Dynamisches Binden, Substitutionsprinzip, Autoboxing; Abstrakte Klasse, Interface )
5.
09.05.2011
Wichtige objektorientierte Konzepte (Interface, Entwicklung mit Schnittstellen, Paket, Beziehungen und ihre Modellierung: Assoziation, Aggregation, Komposition )
10.05.2011
Wichtige objektorientierte Konzepte (Beziehungen und ihre Modellierung: Benutzt-Beziehung/Using; Abgrenzung: Komposition, Aggregation, Using; Verfeinerung der Beziehungen (mit UML), Abhängigkeit/Dependency, Dynamische Modellierung der Beziehungen: UML-Sequenzdiagramme ), Fehlerbehandlung (Grundlagen der Fehlerbehandlung, Zusicherungen/Assertions )
6.
16.05.2011
Fehlerbehandlung (Ausnahmen/Exceptions: Exception-Behandlung in Java: Klassenhierarchie, Fehlerbehandlung in Java (catch), Werfen von Exceptions in Java (throw/s), Besondere Exception in Java: RuntimeException; Fehler/Errors, Zusicherungen und andere Erweiterungen in UML, Laufzeitstapel/Stack Trace )
17.05.2011
Generizität/Generics (Nutzen und mögliche Alternativen, Umsetzung, Erweiterungen: Mehrere Typparameter, Typeinschränkungen: Bounds; Modellierung in UML, Generizität bei Objekt- und Klassenmethoden ), Polymorphie/Polymorphismus (Arten von Polymorphie )
7.
23.05.2011
Klassenbibliotheken/JCF (Klassenbibliotheken allgemein, Java Collection Framework/JCF, JCF Organisation und Aufbau, JCF Schnittstellen, JCF Implementierungen )
24.05.2011
Klassenbibliotheken/JCF (JCF Algorithmen, JCF Typsicherheit, Iteration: Das Entwurfsmuster Iterator, Null Iterator und "Entwurfsmuster" Null Object, Iteration in Java; JCF Wrapper Implementierung, Exkurs: Innere Klassen )
8.
30.05.2011
Persistenz (Grundlagen der Persistenz, Datei-/Verzeichnisverwaltung: Dateien und Verzeichnisse in Java: File, Anlegen, Löschen, Umbenennen, Auflisten mit File; I/O-Streams: Arten von Streams in Java, Java Stream-Klassen: lesen, schreiben, Standard I/O-Streams )
31.05.2011
Persistenz (Fortsetzung I/O-Streams: Verknüpfen von Streams, Exkurs: Entwurfsmuster Decorator, I/O-Klassenhierarchie in Java (Auszug); Serialisierung )
9.
06.06.2011
Persistenz (Fortsetzung Serialisierung: Standardserialisierung in Java (Paket java.io), Alternativen zur Serialisierung in Java-Programmen )
07.06.2011
Nebenläufigkeit (Threads, Java Threads: Wir bauen einen Java-Thread, Beenden eines Threads, Spezielle Threads; Thread Zustände )
10.
13.06.2011
Pfingstmontag
14.06.2011
Nebenläufigkeit (Threads und Fehler, Synchronisation: Zugriffsprobleme, Kritischer Abschnitt, Abhilfe auf Sprachebene, Schützen kritischer Abschnitte mit Monitoren, Probleme der Synchronisation: Deadlocks, Synchronisation durch Kommunikation; Klassische Probleme in der Synchronisation: Producer-Consumer bzw. Bounded Buffer Problem )
11.
20.06.2011
Nebenläufigkeit (Fortsetzung Klassische Probleme in der Synchronisation: Producer-Consumer bzw. Bounded Buffer Problem, Dining Philosophers, Sleeping Barber; Java Threads: Thread Gruppen ), Grafische Benutzeroberflächen (Abstract Window Toolkit/AWT: Fenstertypen, Steuerelemente )
21.06.2011
Grafische Benutzeroberflächen (Fortsetzung Abstract Window Toolkit/AWT: Layout, Ereignisverarbeitung/Event Handling, Adapterklassen für Listener-Schnittstellen, Event-Dispatching-Thread; Beobachter-Muster/Observer Pattern, Swing )
12.
27.06.2011
Grafische Benutzeroberflächen (Model-View-Controller-Prinzip/Muster, MVC ), Netzwerkprogrammierung (Netzwerke Grundlagen, Netzwerkprotokolle, Adressierung )
28.06.2011
Netzwerkprogrammierung (Sockets, Client/Server, Implementierung in Java: Client-Seite, Server-Seite, UDP-Paket-Verbindung in Java; Höhere Kommunikation ), Grafische Benutzeroberflächen (GUIs und Programme im Web: Applets )
13.
04.07.2011
Prüfungsvorbereitung (Plenum in Raum 66/E33 )
05.07.2011
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.