"Programmierung III (Objektorientierte Programmierung)" (B3AI1)
im Studiengang "Angewandte Informatik"

Wintersemester 2009/2010


Gliederung

Termine Aktuelle Informationen Materialien Online-Dokumente zu Java
Vorlesungen und Übungen Übungsgruppen Belegarbeiten Benotung
Durchführung der Übungen und Belegarbeiten Durchführung der Klausur Literatur  

Termine


Seminaristischer Unterricht Übung 
Zeit:  donnerstags 12:00 - 13:30 Uhr (3.E). donnerstags 13:45 - 17:00 Uhr (4. und 5.E) im wöchentlichen Wechsel
Gruppe 1: ungerade Wochen
Gruppe 2: gerade Wochen
Ort:  Raum C 258 Labor C 640 L
Lehrkraft:  H. Hansen


Aktuelle Informationen

18.1.2010
Da wir in der letzten Woche in der Übung mit dem Beispielprogramm zum interaktiven Zeichnen nicht ganz fertig geworden sind, finden Sie hier jetzt die von mir fertiggestellten Quellprogramme!

16.12.2009
Hier finden Sie jetzt die 2. Belegaufgabe. Als Testdaten können Sie zunächst diejenigen von der 1. Belegarbeit verwenden.

26.11.2009
Wegen einer Inkonsistenz zwischen der Beschreibung des Datenformats in der Aufgabenstellung und den bereitgestellten Dateien findet sich hier eine aktualisierte Version der Daten!

12.11.2009
In diesem Zip-Archiv finden Sie jetzt die versprochenen Daten für Punkte und Transformationen in einer deutschen und einer englischen Version. Außerdem können Sie die Datei "Test.rc" zum Testen Ihres Programmes verwenden. Wenn Ihr Programm mit dieser Eingabedatei nicht zurechtkommt, liegt das an Ihrer Implementierung!

5.11.2009
Inzwischen gibt es eine überarbeitete Fassung der ersten Belegaufgabe. Bitte vernichten sie die alte Version!

29.10.2009
Hier finden Sie jetzt die erste Belegaufgabe! Die versprochenen Daten werden nachgeliefert!

18.9.2009
Die Lehrveranstaltung beginnt am 8.10.2009 mit der Vorlesung! Für die Übungsgruppen gilt die durch das LSF festgelegte Einteilung!


Vorlesungs- und Übungstermine, Folien

Hier finden Sie alle Vorlesungs- und Übungstermine mit den geplanten Inhalten.

Alle Folien zur Lehrveranstaltung werden nach und nach hier im als PDF-Dateien zur Verfügung gestellt, wobei 4 Folien auf einer Druckseite angeordnet sind, um bei einem eventuellen Ausdruck Papier zu sparen.

Datum
Art
Gruppe
Themen
Version vom
Foliensatz
8.10.
V

Organisation: Festlegungen zur Benotung, Klausur, usw. Besprechung der Vorkenntnisse
Inhalte der Lehrveranstaltung; Objektorientierung: Einordnung in der Entwicklung von Programmiersprachen.; andere Programmierparadigmen

8.10.2009

Themen

Programmiersprachen

8.10. Ü 1 Ausfall der Übungen, da Labore noch nicht fertig.    
15.10. V   Neue Begriffe in der Programmierung: Klassen und Objekte 14.10.2009 Klassen
15.10. Ü 2 Erste Anwendung: HalloWelt, erste Anwendung mit graphischer Benutzungsschnittstelle: HelloSwing    
22.10. V   Dokumentation von Programmen; ein- und mehrdimensionale Felder in Java; Konstruktoren in Java.

29.10.2009

29.10.2009

29.10.2009

Dokumentation

Felder

Konstruktoren

22.10. Ü 1 siehe 15.10.    
29.10. V   Ein- und Ausgabe von Java; Pakete

29.10.2009

11.11.2009

Ein- und Ausgabe

Pakete

29.10. Ü 2 Arbeiten mit Kommandozeilenparametern; Lesen vom Terminal; Formatierte und länderspezifische Ein- und Ausgabe in Java; Arbeiten mit Textdateiein: Ein- und Ausgabe    
5.11. V   Ausnahmebehandlung; Klassenvariablen und Klassenfunktionen; Netzwerkbibliotheken; Properties

11.11.2009

11.11.2009

11.11.2009

11.11.2009

Ausnahmebehandlung

Klassenfunktionen

Netzwerk

Properties

5.11. Ü 1 siehe 29.10.    
12.11. V   Formatierung von Ein- und Ausgaben in Java; Neue Strukturen in der Objektorientierung: Spezialisierung/Generalisierung, Teil-von-Struktur, hat-Kenntnis-von-Struktur. 16.12.2009 Strukturen in der Objektorientierung
12.11. Ü 2 Ein- und Ausgabe mittels OSS; Graphischer Dateiauswahldialog von Swing; Grafik: Zeichnen mit Swing.    
19.11. V   MVC in der Programmierung; Ausprägung von MVC in Swing; Ereignismodell von Swing.

16.12.2009

16.12.2009

MVC

Ereignismodell

19.11. Ü 1 siehe 12.11.    
26.11. V   LayoutManager von Swing; Programmieren von Anwendungen mit eigener Grafik unter Verwendung von Java2D.

16.12.2009

16.12.2009

16.12.2009

LayoutManager

Grafik

Java2D

26.11. Ü 2 Abgabe der 1. Belegarbeit    
3.12. V   Threads in Java: Motivation, Definition von Threads, Methoden der Klasse Thread, Synchronisation von Threads, Threads und Swing 16.12.2009 Threads
3.12. Ü 1 Abgabe der 1. Belegarbeit    
10.12. V   Fortsetzung von Threads. Schnittstellen in Java: implizite und explizite Schnittstellen; Schnittstellen als Typen; "Simulation" von Mehrfachvererbung durch Schnittstellen. 16.12.2009 Schnittstellen
10.12. Ü 2 Arbeiten mit Threads: Erzeugen von Threads, Synchronisation von Threads; Verwenden des neuen grafischen Kontextes "Graphics2D": Koordinatentransformation zwischen Anwendungskoordinatensystem und Fensterkoordinatensystem.    
17.12. V   Grobe Übersicht über Bibliotheken von Java; Übersicht über die Swing-Bibliotheken; Klasse JComponent

16.12.2009

16.12.2009

16.12.2009

Bibliotheken von Java

Swing

Klasse JComponent

17.12. Ü 1 siehe 10.12.    
7.1. V   Klasse JList; Klasse JTable.

28.1.2010

28.1.2010

Klasse JList

Klasse JTable

7.1. Ü 1 HTML-Browser von Swing; Verwendung von JList; Interaktives Zeichnen mit Hilfe von Mausereignissen.    
14.1. V   Optimierung von objektorientierten Programmen; UML: Diagrammarten.

28.1.2010

28.1.2010

Optimierung

UML

14.1. Ü 2 siehe 7.1.    
21.1. V  

Ziele von Java; Unterschiede zwischen C++ und Java; Vergleich von Eigenschaften von C++, Java, C# und Delphi.

28.1.2010

28.1.2010

28.1.2010

Ziele von Java

Unterschiede

Vergleich von ausgesuchten objektorientierten Programmiersprachen

21.1. Ü 1 Überwachen von Ladevorgängen für Ressourcen mittels des MediaTrackers; Verwendung der Klasse JTable; Implementierung des Entwurfsmusters "Beobachter" mittels der Klasse Observable und der Schnittstelle Observer; Abspielen von Audio in Java.    
28.1. V   Komponentenbasierte Programmierung am Beispiel von Java: Java Beans und Enterprise Java Beans.

28.1.2010

28.1.2010

Java Beans

Enterprise Java Beans

28.1. Ü 2 siehe 21.1.    
4.2. V   bestätigter Klausurtermin    
4.2. Ü 2 Abgabe der 2. Belegarbeit    
11.2. V   eventuell Klausureinsicht und Nachbesprechung der Lehrveranstaltung    
11.2. Ü 1 Abgabe der 2. Belegarbeit    



Übungen


Hier finden Sie die Übungsbeispiele für die Übungen.


Übungsgruppen

Die Übungsgruppeneinteilung erfolgt prinzipiell durch das LSF-System.

In der folgenden Tabelle finden Sie nach Beginn der Lehrveranstaltung zu Ihrer Erinnerung die Teilnehmer der beiden Übungsgruppen. Bitte denken Sie daran, daß diese Einteilung für die Abgabe der Belegarbeiten verbindlich ist.
Wer nicht in der für seine Gruppe geplanten Woche abgibt, der gibt verspätet ab - mit entsprechenden Konsequenzen für die Benotung!
 

Nr 

Übungsgruppe 1
Beginn am 8.10.
(gerade Wochen)

  Übungsgruppe 2
Beginn am 15.10. (ungerade Wochen)
Acksel, Robert   Bräuer, Bodo
Becker, Daniel   Ellmer, Daniel
Bortfeld, Laurence   Karsten, Marcel
Brandt, Sebastian   Konitzer, Wojciech
Busch, Alex   Kulpe, Tim
Drechsler, Christian   Langer, Lars
Hindrichsen, Eric   Letellier, Julien
Hofmann, Noah   Lindner, Marco
Horn, Peter   Mertinal, Mariano
10  Kappe, Leonard   Mutschmann, Michael
11  Knebel, Thomas   Paasch, Marcel
12  Krüger, Philipp   Pflug, Ronny
13  Loges, Rolf   Rekowski, Dario
14  Müller, Johannes   Rötz, Patrick
15  Müller, Tim   Rüschenberg, Stefan
16  Neidt, Enrico   Schäfer, Sebastian
17  Nestler, Mathias   Schlitter, Jan

18

Nguyen, Quang Dat   Stellbrinck, Leonard
19 Studer, Lukas   Truong, Nguyen Xuan Thao
20 Suess, Christoph-Josef   Werner, Kevin
21     Wilhelm, Alena
22     Ziebler, Steffen

Online-Dokumente zu Java

Sie sollten daran denken, daß es keinen Sinn macht, ein Java-Programm zu schreiben, ohne in einem Browser parallel die jeweils zur verwendeten Java Version zugehörige Online-Dokumentation von Java zur Verfügung zu haben. Diese finden Sie über den Verweis "Informationen" auf der ersten Seite unseres Studiengangs. Wir arbeiten dieses Semester mit der Version 1.6, die Sie auch von der Firma Sun kostenlos herunterladen und auf Ihrem eigenen Rechner zu Hause installieren können.


Im WWW gibt es eine Vielzahl von Tutorials und Beispielprogrammen, die helfen können, Fragen zu beantworten.
Suchen Sie sich Passendes und benutzen Sie es. Für gute Tips bin ich immer zu haben.


Belegarbeiten

Beachten Sie bitte bei der Erstellung Ihrer Programme die Programmierrichtlinien.


Benotung

Mit seiner Belegung der Lehrveranstaltung akzeptiert jeder Studierende die folgenden Festlegungen:
Die in der Vorlesung und in den Übungen erworbenen Kenntnisse werden getrennt benotet. Die Gesamtnote zur Veranstaltung ergibt sich dann als das (nach den Stundenanteilen) gewichtete Mittel aus den beiden Noten. In dieser Veranstaltung gehen also beide Noten mit jeweils 50 % ein.

Die Note zu den Übungen ergibt sich zu 50 % aus der Note der 1. Belegarbeit und zu 50 % aus der Note der 2. Belegarbeit.

Zur Notengebung beachten Sie bitte die Festlegungen aus der Rahmenprüfungsordnung der FHTW:

Wenn also alle Anforderungen für die gestellte Aufgabe erfüllt sind, so wird das mit der Note 3,0 bewertet. Wenn die Durchführung der Aufgabe sehr sauber und sorgfältig erfolgt ist, führt das zur Benotung 2,3. Wenn über die Anforderungen hinaus mehr oder besonders gute Leistungen erbracht wurden, so führt auch das zu einem Notenbonus. Was derartige besondere Leistungen sein könnten, wird vom Dozenten bei Ausgabe der Belegarbeit in der Vorlesung erläutert.
Wenn nicht alle Anforderungen erfüllt sind, so hat das Notenabschläge zur Folge. Eine Aufgabe gilt als nicht gelöst, wenn das Programm falsche Ergebnisse produziert oder "abstürzt" — somit Note 5. Vom Dozenten bereitgestellte Daten sind Testdaten, d.h. das Programm muß natürlich nicht nur für diese Daten korrekte Ergebnisse liefern!!!
Eine verspätete Abgabe führt zu einem Notenabschlag von mindestens 2 Stufen. (Eine befriedigende Lösung (Note 3,0), die zu spät abgegeben wird, wird also z.B. mit 3,7 bewertet.) Verspätete Abgaben müssen innerhalb der auf den Abgabetermin folgenden Woche erfolgen. Noch spätere Abgaben gibt es nicht — die nicht erbrachte Teilleistung wird mit der Note 5 bewertet.

Achtung!

Eine erfolgreiche Teilnahme an der Lehrveranstaltung setzt voraus, daß beide Belegarbeiten bearbeitet und jede mit der Note 4 oder besser bewertet wird. Die Klausur muß ebenfalls mit der Note 4 oder besser bewertet sein.
Das heißt also, daß die Lehrveranstaltung vollständig wiederholt werden muß, wenn eine der Belegarbeiten nicht mit ausreichend beurteilt wurde bzw. wenn die Klausur und eventuell die Nachklausur schlechter als ausreichend ausgefallen ist.


Durchführung der Übungen und Belegarbeiten

Jeder Teilnehmer der LV erhält eine Benutzerkennung und ein Paßwort. Unter dieser Benutzerkennung kann er seine Übungsaufgaben bearbeiten. Die Übungsräume stehen derzeit von 8.00 - 18.00 Uhr für die Bearbeitung der Belegarbeiten zur Verfügung, sofern sie nicht durch eine andere Veranstaltung belegt sind. Es steht ein Fileserver zur Verfügung.

Alles, was im Rahmen der LV an Texten, Programmen und Daten anfällt, kann auf dem privaten Nutzerbereich auf dem Fileserver im jeweiligen Teilnehmerverzeichnis abgelegt werden. Bitte beachten Sie, daß Sie für Ihre auf dem Fileserver abgelegten Daten selbst verantwortlich sind. Die Laboringenieure des Studiengangs "Angewandte Informatik" führen zwar regelmäßige Backups durch - dennoch kann nicht gewährleistet werden, daß bei Hardwareproblemen die aktuellsten Dateien wieder hergestellt werden können. Deshalb sollten Sie selbst durch Kopien auf anderen Medien oder per Netzwerk für die Verfügbarkeit Ihrer Daten sorgen! (Datenverlust als Ausrede für verspätete Abgabe ist also ein denkbar ungeeignetes Argument.)

Jeder Student muß Übungsaufgaben als Belegarbeiten zur Benotung abgeben. Die Belegarbeiten können in Gruppen von maximal zwei Studenten gemeinsam bearbeitet und abgegeben werden. Die Belegarbeiten werden dem Dozenten persönlich abgegeben, wobei eine Vorführung des jeweiligen Programmes an einem Laborrechner unter dem Betriebssystem Linux im für die Lehrveranstaltung vorgesehenen Raum erfolgt. Wenn ein Beleg von zwei Studenten gemeinsam fertiggestellt wurde, so müssen beide bei der Abgabe in der Lage sein, alle Fragen des Dozenten zum Beleg zu beantworten - also auch jeweils zum durch den anderen Studierenden bearbeiteten Teil!
Verspätete Abgaben werden nur bei Krankheit akzeptiert - im anderen Fall führen sie zu einer schlechteren Bewertung.


Durchführung der Klausur

In der Klausur sind keine Hilfsmittel zugelassen.


Literatur

Inzwischen gibt es eine große Auswahl an englisch- und deutschsprachigen Büchern zur objektorientierten Programmierung und zu Java. Die folgende Liste ist nur eine kleine Auswahl daraus. Sie gliedert sich in drei Teile: Allgemeine Bücher zur Objektorientierung (Analyse, Design, Programmierung, Unified Modeling Language), Bücher zu Java und (als Ergänzung für Interessierte) zu C++.
In der letzten Tabellenspalte sind die für die Vorbereitung der Lehrveranstaltung verwendeten Bücher mit einem "X" gekennzeichnet.
Wenn Sie sich ein Buch zu Java kaufen, achten Sie darauf, daß es nicht im Wesentlichen aus einem Abdruck der Java Dokumentation bestehen, die Sie sowieso online finden (und die sich von Version zu Version ändert)!
Eine gute Übersicht über aktuelle Titel zur objektorientierten Programmierung erhalten Sie bei Lehmann's Online-Bookshop , inzwischen aber vermutlich auch bei anderen Buchhandlungen.

Autor  Titel  Erscheinungsort  ISBN  WWW-Seite für die LV verwendet 
Lehrbücher zur "Objektorientierung" 
Coad, P., Yourdon, E.  Objektorientierte Analyse Pretice Hall Verlag, 1994 3-930436-07-8    X
Coad, P., Yourdon, E.  Objektorientiertes Design Pretice Hall Verlag, 1994 3-930436-09-4    X
Fowler, M., Scott, K.  UML konzentriert Addison-Wesley Verlag, 1998 3-8273-1329-5    X
Craig, Iain The Interpretation of Object-Oriented Programming Lanugages, 2nd ed. Springer-Verlag 1-85233-547-5 www.springer.de X
Deutsche Lehrbücher und Manuals zu Java 
Eckstein, R, Loy, M., Wood, D.  Java Swing  O'Reilly & Associates Inc., 1998  3-56592-455-X    X
Ullenboom, Ch. Java ist auch eine Insel   3-89842-174-0 www.galileocomputing.de/openbook/javainsel  
Krüger, G.  Handbuch der Java-Programmierung, 3. Auflage Addison-Wesley, 2002 3-8273-1949-8


Letzte Änderungen am 28.01.2010 --- Email: Horst dot Hansen at HTW-Berlin dot DE

<= Homepage von Horst Hansen <= Homepage des Servers