Uni-Logo Institut für Informatik - Arbeitsgruppe Software Engineering
Informatik B (SS 2010):
Objekt-orientierte Programmierung in Java
Dozentin Jun.-Prof. Dr.-Ing. Elke Pulvermüller
Übungsleiter Dipl.-Inf. Wolfgang Runte
Tutoren
Vorlesung
montags16:00 - 18:00 Uhr, Raum 66/E34
dienstags12:00 - 14:00 Uhr, Raum 66/E34
Übung
donnerstags12:00 - 14:00 Uhr, Raum 31/E06
donnerstags14:00 - 16:00 Uhr, Raum 31/E06
Beide Übungen haben den gleichen Inhalt.
Beginn Dienstag, 6. April 2010 (erste Übung am 15. April)
Prüfungstermin Freitag, 02.07.2010, 13:00 Uhr - 15:00 Uhr (s.t.!), Raum 01/E01+E02
Anmeldung über OPIuM erforderlich! Übersicht über die Ergebnisse
Wiederholungsprüfung Montag, 27.09.2010, 09:00 Uhr - 11:00 Uhr (s.t.!), Raum 01/E01-E02 (Achtung: Raumangabe wurde geändert!)
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
Vorlesungsmaterial Das Vorlesungsmaterial wird im Laufe des Semesters zusammengestellt und wöchentlich überarbeitet/ergänzt. Außerdem: Quelltexte aus der Vorlesung (und darüberhinaus).
Termine
Woche Montag Thema Dienstag Thema
1. 05.04.2010 Ostermontag 06.04.2010 Einleitung (Organisatorisches, Literatur, Inhalt)
2. 12.04.2010 Grundlegende objektorientierte Konzepte (Objekte, Klassen und Instanzen, Modellierungsprinzipien und UML, Identität, Sichtbarkeitsbereiche, Methodenparameter und Rückgabewert) 13.04.2010 Grundlegende objektorientierte Konzepte (Überladen von Methoden, Spezielle Methoden, Gleichheit bzw. Identität von Objekten, Klasseneigenschaften)
3. 19.04.2010 Grundlegende objektorientierte Konzepte (Der Singleton), Grundlagen der Software Entwicklung (Die Programmiersprache Java, Vom Programm zur Maschine) 20.04.2010 Grundlagen der Software Entwicklung (Abstraktion von der Plattform, Vom Problem zum Programm)
4. 26.04.2010 Grundlagen der Software Entwicklung (Vom Problem zum Programm, Programmiersprachenparadigmen), Wichtige objektorientierte Konzepte (Beziehungen: Vererbung) 27.04.2010 Wichtige objektorientierte Konzepte (Beziehungen: Vererbung, Typing: Type Casts, Dynamisches Binden)
5. 03.05.2010 Wichtige objektorientierte Konzepte (Typing: Dynamisches Binden, Substitutionsprinzip, Autoboxing), Wichtige objektorientierte Konzepte (Hilfsmittel zur Modularisierung: Abstrakte Klassen, Interface) 04.05.2010 Wichtige objektorientierte Konzepte (Hilfsmittel zur Modularisierung: Interface, Entwicklung mit Schnittstellen, Paket)
6. 10.05.2010 Wichtige objektorientierte Konzepte (Hilfsmittel zur Modularisierung: Paket, Beziehungen (2): Assoziation, Aggregation, Komposition, Benutzt-Beziehung/Using, Abgrenzung, Verfeinerungen der Beziehungen (mit UML), Abhängigkeit/Dependency) 11.05.2010 Wichtige objektorientierte Konzepte (Beziehungen (2): Dynamische Modellierung der Beziehungen: UML-Sequenzdiagramme), Zusätzliche objektorientierte Konzepte (Fehlerbehandlung: Zusicherungen/Assertions, Ausnahmen/Exceptions)
7. 17.05.2010 Zusätzliche objektorientierte Konzepte (Fehlerbehandlung: Ausnahmen/Exceptions, Fehler/Errors, Darstellung in UML, Laufzeitstapel/Stack Trace) 18.05.2010 Zusätzliche objektorientierte Konzepte (Generizität: Nutzen und mögliche Alternativen, Umsetzung, Erweiterungen, Modellierung in UML, Generizität bei Objekt- und Klassenmethoden, Polymorphie/Polymorphismus)
8. 24.05.2010 Pfingstmontag 25.05.2010 Zusätzliche objektorientierte Konzepte (Persistenz: Datei-/Verzeichnisverwaltung, I/O-Streams)
9. 31.05.2010 Zusätzliche objektorientierte Konzepte (Persistenz: I/O-Streams, Serialisierung) 01.06.2010 Zusätzliche objektorientierte Konzepte (Nebenläufigkeit: Threads, Java Threads, Thread Zustände)
10. 07.06.2010 Zusätzliche objektorientierte Konzepte (Nebenläufigkeit: Threads und Fehler, Synchronisation 08.06.2010 Zusätzliche objektorientierte Konzepte (Nebenläufigkeit: Synchronisation), Klassenbibliotheken (Klassenbibliotheken allgemein, Java Collection Framework (JCF), JCF Organisation und Aufbau, JCF Schnittstellen, JCF Implementierungen)
11. 14.06.2010 Klassenbibliotheken (JCF Implementierungen, JCF Algorithmen, Typsicherheit, Iteration: Das Entwurfsmuster Iterator, Exkurs: Entwurfsmuster, Iteration in Java, JCF Wrapper-Implementierung, Exkurs: Innere Klassen) 15.06.2010 Grafische Benutzeroberflächen (GUI, Abstract Window Toolkit (AWT), AWT-Komponenten im Package: Fenstertypen, AWT-Komponenten: Steuerelemente, Anordnung der AWT-Komponenten (Layout), Ereignisverarbeitung (Event Handling), Adapterklassen für Listener-Schnittstellen, Beobachter-Muster (Observer-Pattern), Swing)
12. 21.06.2010 Grafische Benutzeroberflächen (Model-View-Controller-Prinzip/Muster, MVC), Netzwerkprogrammierung (Netzwerke Grundlagen, Netzwerkprotokolle, Adressierung) 22.06.2010 Netzwerkprogrammierung (Adressierung, 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. 28.06.2010 Prüfungsvorbereitung (Plenum in Raum 66/E34) 29.06.2010 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.