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

Sommersemester 2009


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:  mittwochs 9:45 - 11:15 Uhr (2.E). dienstags 9:45 - 13:30 Uhr (2. und 3.E) im wöchentlichen Wechsel
Ort:  HG 040 VG 707
Lehrkraft:  H. Hansen


Aktuelle Informationen

14.7.2009
Leider werde ich am Mittwoch die Klausuren noch nicht korrigiert haben!

10.6.2009
Hier finden Sie jetzt die 2. Belegaufgabe. Weil ich die Aufgabenstellung erst heute veröffentliche, gilt für die Abgabe folgende Regelung: Wer seinen Beleg fertig hat, kann ihn bereits am 30.6. in der Übungsstunde abgeben. In dieser Stunde können auch letzte Fragen zum Beleg behandelt werden!

5.5.2009
Außerdem gibt es noch ein Problem: Die Abgabetermine der Übungen der Gruppen 1 und 2 habe ich
auf dem Übungsblatt offensichtlich vertauscht: Richtig muß es so heißen: Abgabe Gruppe 1 am 26.5. und Gruppe 2 am 19.5.!!!

5.5.2009
Leider kommen bei der Aufgabenstellung des ersten Belegs keine negativen Zufallszahlen vor! Aus diesem Grunde ist die Aufgabenstellung folgendermaßen zu ergänzen: Die zufällige Ermittlung der Vektoren für die Wege erfolgt, indem Zufallszahlen generiert und entsprechend skaliert werden. Zusätzlich wird zu jeder Zufallszahl ein zufälliger Boolescher Wert erzeugt, wobei "true" für einen positiven Wert und "false" für einen negativen Wert steht.

22.4.2009
Hier finden Sie jetzt die 1. Belegaufgabe.

22.4.2009
Zum
remote Testen steht Ihnen der Rechner uranus.f4.fhtw-berlin.de über einen ssh-Zugang zur Verfügung.

24.3.2009
Die Lehrveranstaltung beginnt am 1.4.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
1.4.
V

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

1.4.2009

Themen

7.4. Ü 2 Erste Anwendung: HalloWelt, erste Anwendung mit graphischer Benutzungsschnittstelle: HelloSwing    
8.4. V   Neue Begriffe in der Programmierung: Klasse, Objekt und Vererbung. Klasse als rechnerausführbare Beschreibung eines Konzepts (Begriffs) 22.4.2009

Entwicklung von Programmiersprachen

Klassen

14.4. Ü 1 siehe 7.4.    
15.4. V   Dokumentation von Java-Programmen; Konstruktor in der objektorientierten Programmierung; ein- und mehrdimensionale Felder in Java. 22..4.2009

Dokumentation

Konstruktor

Felder

Konventionen

21.4. Ü 2 Programmierung interaktiver Dialogelemente mit Swing; Bearbeitung von Kommandozeilenparametern; Dateneingabe am Terminal; Formatierung von Zahlenein- und -ausgaben; Internationalisierung von Zahlenformaten; Zeichnen mit Java-Programmen    
22.4. V   Ein- und Ausgabe von Java; Ausnahmebehandlung in Java 22.4.2009

Ein- und Ausgabe

Ausnahmebehandlung

28.4. Ü 1 siehe 21.4.    
29.4. V   Ausnahmebehandlung in Java (Fortsezung). Layoutmanager. Pakete.

11.5.2009

11.5.2009

Layoutmanager

Pakete

5.5. Ü 2 Zeichnen mit Java2D. Dateidialog von Swing.    
6.5. V   Ereignismodell des AWT und von Swing. Grafikprogrammierung mit AWT und Swing. Java2D API.

11.5.2009

11.5.2009

11.5.2009

Ereignismodell

Grafik

Java2D API

12.5. Ü 1 siehe 5.5.    
13.5. V   Umgebungsvariablen von Java: Properties und Systemproperties; Netzwerkbibliothek von Java; Klassnmethoden und Klassenvariablen: Sie sind unnötig!

10.6.2009

10.6.2009

10.6.2009

Properties

Netzwerkbibliothek

Klassenmethoden

19.5. Ü 2 Abgabe der 1. Belegarbeit    
20.5. V   Strukturen in der Objektorientierung: Spezialisierung-/Generalisierungsstruktur, Teil-von-Struktur, hat-Kenntnis-von-Struktur 10.6.2009 Strukturen in der Objektorientierung
26.5. Ü 1 Abgabe der 1. Belegarbeit
27.5. V   Strukturieren von Anwendungen: MVC-Model 10.6.2009 MVC-Model
2.6. Ü 2 EA von Java: Textdateien, Binärdateien, OSS-Dateien; Threads    
3.6. V   Threads: Motivation, Methoden der Klasse Thread, Erzeugen von Threads, Programmieren von threadsicheren Klassen, Threads und Swing. 10.6.2009 Threads
9.6. Ü 1 siehe 2.6.  
10.6. V   Schnittstellen und abstrakte Klassen: Vergleich.

10.6.2009

10.6.2009

10.6.2009

Schnittstellen

Java-Bibliotheken

Swing

16.6. Ü 2

Interaktives Zeichnen mit der Maus; Anwendung von JList und JTable; Beispiele für die Anwendung des Entwurfsmusters "Observer".

   
17.6. V   Grober Überblick über Java-Bibliotheken und Java-Editionen; Struktur und Inhalt der Swing-Bibliotheken.    
23.6. Ü 1 siehe 16.6.    
24.6. V   Mittel zur Optimierung (Laufzeit und Speicherplatz) von objektorientierten Programmen; Struktur und Verwendung der interaktiven Dialogelemente JList und JTable; Eigenschaften von JComponent; UML: Ziele und Diagrammarten.

30.6.2009

30.6.2009

30.6.2009

30.6.2009

JList

JTable

JComponent

UML

30.6. Ü 2 erste Abgabemöglichkeit für die 2. Belegarbeit    
1.7. V   Ziele von Java: Was wurde erreicht, was nicht? Vergleich von Java mit anderen OOPS.

30.6.2009

30.6.2009

30.6.2009

Ziele von Java

Unterschiede

Vergleich

7.7. Ü 1 Abgabe der 2. Belegarbeit    
8.7. V   betätigter Klausurtermin    
14.7. Ü 2 Abgabe der 2. Belegarbeit    
15.7. V   Nachbesprechung der Lehrveranstaltung    



Ü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 7.4.
(gerade Wochen)

  Übungsgruppe 2
Beginn am 14.4. (ungerade Wochen)
Benthin, Falco   Banach, Rafael
Domain, Robert   Deutschmann, Alexander
Eckert, Philipp   Gerstner, Christoph
Engler, Florian   Harder, Florian
Fank, Ramona   Harzbecker, Sascha
Frank, Allen   Krüger, Philipp
Galasinski, Ariel   Kruschinski, Andreas
Heinz, Alexander   Kuznecov, Andrej
Herrmann, Sven   Ladenthin, Tim
10  Jonas, Sascha   Martini, Enrico
11  Krick, Marianne   Neugebauer, Falk
12  Kröll, Sven   Neuhäuser, Moritz
13  Le, Nhu Tien   Nguyen, Quang Dat
14  Lehmann, Christian   Schackow, Andy
15  Marchlewitz, Thomas   Schlaps, Michael
16  Martiens, Axel   Schlegel, Robin
17  Mehlei, Nicolas   Schumann, Eric

18

Meister, Sergej   Steinke, Martin
19 Muthmann, Alexander   Weber, Raanan
20 Oder, Martin    
21 Simon, Franz    

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

22.4.2009
Hier finden Sie jetzt die 1. Belegaufgabe.

Beachten Sie bitte bei der Erstellung Ihrer Programme die Programmierrichtlinien.


Benotung

Mit seiner Eintragung in die Belegliste der Lehrveranstaltung akzeptiert jeder Student 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,0. 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 Testdaten sind Testdaten, d.h. das Programm muß natürlich nicht nur für diese Daten korrekte Ergebnisse liefern!!! (Allein schon diese Idee ist ja irrsinnig!)

Die verspätete Abgabe einer Belegarbeit führt (je nach Verspätung) 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.) Eine Verspätungswoche beginnt am auf die vorgesehene Abgabe folgenden Tag! Verspätungen um mehr als einen Übungstermin gibt es außer bei Krankheit nicht! Der Beleg ist dann nicht bestanden.

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 im Verwaltungsgebäude (Räume VG 207, VG 212, VG 218 und VG 225) 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 stehen ein Fileserver und ein Druckservice 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, 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!
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 14.07.2009 --- Email: Horst dot Hansen at FHTW-Berlin dot DE

<= Homepage von Horst Hansen <= Homepage des Servers