FURCHURS WEBSITE
m@il schicken
Inhalt |  Informatik  |  Reisen |  über mich |  Historie auf dieser Seite:

Tutorien

Im Laufe der verschiedenen Semester haben wir verschiedene Tutorien gehalten. Die Texte zu den dort behandelten Themen sind (zum Teil) auch zu verstehen, wenn man an der Veranstaltung nicht teilgenommen hat.

Hier finden sich (fast) alle Beispiele, die wir im Tutorium Java behandelt haben. Anhand dieser Beispiele wurden ausgewählte Konzepte der Programmiersprache Java erläutert, ich hoffe, daß auch jemand der nicht das Tutorium besucht hat diese Beispiele interessant findet. Wenn Du noch Fragen hast oder Fehler findest, dann schickt mir doch bitte eine mail.

Tutorium WS2000/01
Tutorium SS2001
Tutorium WS2001/02
Bio-Inf. SS2002

zu den Vorträgen

Tutorium WS2000/01

Dieses Tutorium fand für das erste Semester der Informatik statt.

Für das Tutorium Java haben wir hier eine Reihe von kleinen Beispielprogrammen, die auch in der Veranstaltung durchgesprochen wurden, bereit gestellt. Desweiteren finden sich hier einige kleine Dokumentationen. Diese geben einen kurzen Überblick über die grundlegensten Dinge, die man wissen muß um ein Java-Programm schreiben zu können:

Die erste Dokumentation bietet einen kleinen Überblick über die Werkzeuge und die Begrifflichkeiten, die zum Java Programmieren gehören.

Einführung.pdf (95kb)[PDF]

Die zweite Dokumentation ist wesentlich ausführlicher und umfasst annähernd den Stoff des ersten Semesters. Thomas Krieger hat diese schöne Zusammenfassung geschrieben. Ich habe sie nur in PDF formatiert. Lesenswert!

Java-Begriffe, Syntax und Tips (119kb)[PDF].

Für alle, die Intresse an den Quellcodes der im Tutorium besprochenen Beispiele haben hier sind die beiden Beispiele:

Jabberwok.zip (10kb)[ZIP]
Calc.zip (5kb)[ZIP]

Diese beiden ZIP Files enthalten alle Versionen die im Tutorium erarbeitet wurden. Sie sind vollständig dokumentiert. Im Kopf steht der (Lern-) Inhalt der jeweiligen Stunde.

Helge Janicke
Niels-Peter de Witt
Thomas Krieger

Tutorium SS2001

Dieses Tutorium fand für das zweite Semester der Informatik statt.


Themen:

  1. Was ist ein package?
  2. Streams und Reader.

Übung:

  1. Erstellen eines eigenen package.
  2. Erstellen einer Klasse IOTools in diesem package.
  3. Erstellen einer Methode boolean fileCopy(String source, String dest) die eine Datei (source) in eine Datei (dest) kopiert und bei Erfolg den Wert "true" zurückliefert.
Beispiel zum Download: IOTools_1.java (2k)
Termin 27.03.2001

Themen:

  1. CLASSPATH setzen.
  2. Streams und Reader - Der BufferedReader.
  3. Tester Klasse.
  4. Abfrage auf bereits existierende Ausgabedatei.
  5. if Abfrage mit Methoden die bereits einen boolschen Wert (true oder false) zurückliefern.

Übung:

  1. Erstellen einer Tester Klasse, die zwei Aufrufparameter erhält. Den Namen der Quelldatei, sowie den der Zieldatei.
    Wenn weniger Parameter angegeben werden, soll eine Funktionsanleitung ausgegeben werden.
  2. Erweitern des Readers auf einen BufferedReader (siehe Java API ).
  3. Erstellen einer Methode boolean fileCopy(String source, String dest, boolean overwrite) die eine Datei (source) in eine Datei (dest) kopiert und bei Erfolg den Wert "true" zurückliefert. Die Datei soll nicht kopiert werden, wenn die Ausgabedatei (dest) bereits existiert und der Parameter overwrite den Wert false hat. Die Abfrage ob eine Datei existiert kann mit Hilfe der Klasse java.io.File realisiert werden.
  4. Statt if ( boolscheMethode() == true ) { ... kann man auch einfach schreiben:
    if ( boolscheMethode() ) { ....
Beispiel zum Download: IOTools_2.java (2k)
Termin 03.04.2001

Themen:

  1. Paketklassen
  2. Exceptions
  3. throw, throws, try und catch
  4. Abfangen von Exceptions, die Subklassen von anderen möglichen Exceptions sind

Übung:

  1. Entfernen der System.err.println(...) Aufrufe.
  2. Auftretende Fehler nicht mehr abfangen, sondern an aufrufende Methode delegieren.
  3. Prüfen ob Quelldatei vorhanden ist. Wenn nicht vorhanden eine neue java.io.FileNotFoundException generieren.
Beispiel zum Download: IOTools_3.java (2k)
Termin 10.04.2001

Themen:

  1. Ableiten einer Klasse
  2. Überschreiben von Methoden
  3. Blockweises Kopieren.
  4. Statische Klassen und das überschreiben statischer Methoden
  5. API lesen :o))))

Übung:

  1. Die Klasse BetterIOTools programmieren.
  2. Mit statischen Methoden "auf die Schnauze fallen" ;o)

Anmerkung zu der Aufgabe:
Die meisten der Methoden wurden als Klassen-Methoden implementiert. Der Ansatz nur die eigentliche Kopier-Methode zu überschreiben funktioniert nicht, wenn es sich um statische Methoden handelt. Dies liegt daran, das der JAVA Compiler statische Methoden schon zur Optimierung früh bindet - d.h. beim Übersetzen. Dies verhindert, daß die Vererbungstruktur erst zur Laufzeit erneut aufgelöst wird.
Wird in der Klasse BetterIOTools die statische Methode fileCopy(..) überschrieben, so hat ein Aufruf der in der Klasse IOTools_03 definierten fileCopy(..) Methode mit Überschreib-Prüfung keine Änderung erfahren. Dies läßt sich leicht testen, indem man anstatt des Kopieralgorithmus eine einfache Ausgabe auf der Konsole macht.
Der erläuterte Mechanismus der Vererbung funktioniert allerdings, wenn man alle verwendeten Methoden nicht statisch (also als Objekt-Methoden) deklariert.
Dazu muß natürlich auch in der Tester Klasse erst noch ein Exemplar der Klasse BetterIOTools erzeugt werden, über das dann auf die Methoden zugegriffen werden kann.

Beispiel zum Download: BetterIOTools.java (2k)
Termin 24.04.2001

Themen:

  1. Ein Modell für ein Schachprogramm entwerfen
    Zu Entwerfen ist nur eine Verwaltung, wir wollen nur ein Konzept, daß die Verwaltung eines Schachbretts simuliert.

Übung:

Sammeln der Anforderungen.
Wie lassen sich diese Anforderungen realisieren. (Hausaufgabe :o)))) )

Termin 8.05.2001

Themen:

  1. Ein Modell für ein Schachprogramm entwerfen (Teil 2)
    Vorstellen der erarbeiteten Konzepte (waren ja nicht so viele :(((( )
  2. Interfaces und Abstrakte Klassen
  3. Arrays (was sind und wie verwendet man ~)
  4. Accessor-Methoden

Übung:

Aufbau des Konzepts.
Darstellen der benötigten Methoden (Schnittstelle)

Implementation des erabeiteten Konzepts.

Termin 15.05.2001

Tutorium WS01/02

Dieses Tutorium findet für das zweite Semester der Informatik statt, behandelt aber auch alle Grundlagen.
Der Termin ist Montags um 13:40 in Raum E215 (der große Rechner-Raum E&I Trakt)

Zum Ablauf:

Wie bieten Euch ein umfassendes Tutorium über die Grundlagen der Objektorientierung und der Umsetzung von Nassi-Schneiderman Konstrukten in Java. Die (vielleicht schon bei einigen verblasste ;o) ) Theorie wird angesprochen, sowie anhand von praktischen Beispielen geübt. Der Inhalt der jeweiligen Veranstaltung (und auch ein kleines bißchen mehr) kann in den Zusammenfassungen (siehe unten) nachgelesen werden. Zu den Zusammenfassungen gibt es Aufgaben, die wir auch nachkontrollieren. Diese sind natürlich kein Zwang, aber für euch eine gute Chance auf Fehler hingewiesen zu werden.

Wir erwarten von Euch, daß ihr regelmäßig zum Tutorium kommt.
Ihr Fragen stellt, sobald ihr etwas nicht versteht.
Die Zusammenfassung lest und die kleinen Aufgaben am Ende macht.


Helge Janicke
Niels-Peter de Witt

 download Tutorium_Teil_1.pdf (194k)[PDF]
	

Termin 22.10.2001

 download Tutorium_Teil_2.pdf (105k)[PDF]

Termin 29.10.2001

Für die Bio-Informatiker Semester SS2002

Die erste Aufgabe:

Schreibt ein Programm, daß Ausdrücke in Postfix Notation auswertet. Ein Beispiel dafür wäre:

2 3 + 4 - = 1

Für die erste Aufgabe ist es ausreichend Zahlen im Intervall [0;9], also einzelne Ziffern auszuwerten. Zu erstellen sind folgende Programmteile:

  1. Struktogramm
  2. Code-Entwurf (Umsetzung des Struktogramms, kein lauffähiger Code. Funktionalität wird durch Ausgaben oder Kommentare repräsentiert.
  3. Umsetzung in lauffähigen Code.

Hier ein PDF Dokument, daß die Postfix-Notation kurz erläutert und Lösungen zu den obigen Aufgaben liefert.

download Aufgabe 1 (104kB)[PDF]
Helge Janicke
Karsten Wolke
letzte Änderung dieser Seite:  20.03.2002 20:59
nach oben