Dibo


Teaching

 
 


 

Programmierkurs Java (WS 97/98)

Auf diesen Seiten finden sich allgemeine und aktuelle Informationen und Termine zum Programmierkurs Java, der im Wintersemester 1997/1998 gehalten wurde.

Für Fragen, Kommentare, Hinweise, Verbesserungsvorschläge etc. bitte EMail an boles@informatik.uni-oldenburg.de senden.

Organisatorische Hinweise

Organisation der Vorlesung
Struktur der Vorlesung
Skript zur Vorlesung
Übungen und Musterlösungen
Software
Nützliche Links

Organisation der Vorlesung


Übersicht

1. Organisatorisches

Dozent/Übungen:

Dietrich Boles (OFFIS O71, 0441/9722-212, Sprechstunde: MI nach den Übungen)

Sekretariat: Frau Martsfeld (OFFIS O48, 0441/9722-201)

Internet/WWW-Informationen:

siehe unter: http://www-is.informatik.uni-oldenburg.de/~dibo/teaching/java9798

Tutoren:

Andre Eßer, Lutz Harders, Matthias Köster, Michael Pensler, Michael Weers

Vorlesung:

MI, Dietrich Boles, 16-18 Uhr, HS G (Erste Vorlesung: 15.10.97)

Übungen:

MI, Dietrich Boles und Tutoren, A4 2-221,8-10 Uhr, ab 29.10.

Hier werden die Inhalte der Vorlesung in Diskussionen zwischen dem Lehrenden bzw. den Tutoren und den Studierenden wiederholt bzw. vertieft. Außerdem werden Lösungen zu ausgewählten Übungsaufgaben vorgestellt.

Verfügungszeit:

DI, Tutoren, ab 21.10., A4 2-220, 14-18 Uhr, keine Einteilung

Hier stehen Tutoren allen Studenten für Fragen zur Vorlesung, zu den Aufgaben, den Rechnern, für Hilfestellungen und bei Verständnisproblemen direkt am Rechner zur Verfügung. Jeder Studierende kann zu beliebigen Zeiten die Verfügungszeit nutzen. In der Verfügungszeit am 21.10. wird eine allgemeine Einführung in die Rechnerbenutzung erfolgen.

Zweiergruppenbetreuung:

DO und FR, Tutoren, ab 23.10., A4 2-220, Einteilung Aushang 16.10., Anwesenheitspflicht!

Jede Gruppe von je zwei Studierenden präsentiert ihre Lösungen der Übungsaufgaben ihrem Tutor am Rechner. Dafür stehen 25 Minuten zur Verfügung. Jeder Zweiergruppe ist ein fester Tutor und eine feste Korrekturzeit zugeteilt. Einteilung und Terminvergabe erfolgt in der Vorlesung am 22.10.. In der Zweiergruppenbetreuung am 23.10. können spezielle Fragen bzgl. der Rechnerbenutzung gestellt werden.

Übungszyklus:

Ausgabe der Übungszettel MI in der Vorlesung. Überprüfung der Lösungen jeweils am DO in der nächsten Woche im Rahmen der Zweiergruppenbetreuung.

Scheinvergabe:

Einen Schein erwerben die Studenten, die die Klausur bestehen. Zur Klausur werden die Studenten zugelassen, die auf jedem Übungsblatt mindestens die Hälfte der Übungsaufgaben richtig bearbeitet haben.

Klausur:

2-stündig: Donnerstag, den 19.02.1998 (Nachklausur: Freitag, den 17.04.98)

2. Literatur

Middendorf, S., Singer, R. und Strobel, S.: "Java: Programmierhandbuch und Referenz", dpunkt-Verlag, DM 88,00 (für Anfänger)

Flanagan, D.: "Java in a Nutshell, Second Edition", O'Reilly, DM 40,00 (für Fortgeschrittene)

3. Rechner

A4 2-205, A4 2-220, A4 2-215 (Digital-Rechner)

Java läuft auf den ALPHA-Rechnern der ARBI (Namen = europäische Hauptstädte)

Struktur der Vorlesung

  • 15.10.1997:
    • Organisatorisches
    • Die Programmiersprache JAVA

  • 22.10.1997:
    • Programmierung: Algorithmus, Sprachen, Werkzeuge
    • Das Hamster-Programmiermodell

  • 29.10.1997:
    • Rechner
    • Compiler
    • Syntaxdiagramme

  • 05.11.1997:
    • Variablen
    • Werte
    • Elementare Datentypen
    • Operatoren
    • Ausdrücke
    • Deklarationen

  • 12.11.1997:
    • Anweisungen
    • Kontrollstrukturen

  • 19.11.1997:
    • Prozeduren
    • Funktionen
    • Gültigkeitsbereich

  • 26.11.1997:
    • Lebensdauer
    • Rekursion
    • Zuweisungen (Ergänzungen)
    • Typumwandlungen

  • 03.12.1997:
    • Zusammengesetzte Datenstrukturen
    • Referenzdatentypen
    • Arrays / Verbünde

  • 10.12.1997:
    • Klassen und Objekte I

  • 17.12.1997:
    • Klassen und Objekte II
    • Strings
    • Objektorientierte Softwareentwicklung

  • 14.01.1998:
    • Vererbung

  • 21.01.1998:
    • Abstrakte Klassen
    • Interfaces

  • 28.01.1998:
    • Pakete
    • Zugriffsrechte

  • 04.02.1998:
    • Exceptions

  • 11.02.1998:
    • Ein- und Ausgabe
    • Threads
    • Graphisch-interaktive Benutzerschnittstellen
    • JAVA-Applets

Skript zur Vorlesung

Ein vollständiges Skript zur Vorlesung wird es nicht geben. Hier werden nur teilweise Unterlagen zur Verfügung gestellt. Es wird allen Studierenden empfohlen, die Vorlesungen und insbesondere die Übungen regelmäßig zu besuchen und mitzuschreiben.

Übungen

Musterlösungen zu ausgewählten Aufgaben

Klausuren / freiwillige Aufgaben zum Üben

Software

An dieser Stelle wird Software zur Verfügung gestellt, die im Rahmen der Übungen benötigt wird. Die tar-Files enthalten jeweils ein README-File mit näheren Informationen sowie Beispielprogramme.
  • Reversi-Spiel von Matthias Köster (Mensch gegen Mensch)
  • andere Reversi-Spiele im WWW:

  • Objektorientierte Modellierung: reversi-2.tar

  • Objektorientierte Modellierung: hamster.tar

  • Objektorientierte Modellierung: kalah.tar
    Kalah-Spielregeln

  • BinTree.java

  • Set.java

  • Bruch.java

  • Hamster-Laufzeitumgebung
    Für diejenige unter Euch, die sich die Hamster-Laufzeitumgebung zu Hause installieren wollen, stelle ich hiermit alles notwendige zur Verfügung. Hierzu müßt Ihr folgende Schritte durchführen:
    • JDK auf Eurem Rechner installieren
    • hamster.tar.gz auf Euren Rechner laden
    • File dekomprimieren: gunzip hamster.tar.gz
    • File enttaren: tar xvf hamster.tar
    • das erzeugte Verzeichnis muß den Namen 'hamster' behalten !
    • das Vater-Verzeichnis von 'hamster' in CLASSPATH-Variable aufnehmen
    • go-Befehl im Unterverzeichnis 'bin' an Euer jeweiliges Betriebssystem anpassen (schaut Euch den Befehl mal an)
    Beispiel:
    • Ihr befindet Euch im Verzeichnis /ab/xy (Beispiel /user/stud/s97/mueller/java). Laden der Datei hamster.tar.gz
    • Aufruf von: gunzip hamster.tar.gz
    • Aufruf von: tar xvf hamster.tar
    • es wird ein Unterverzeichnis mit dem Namen 'hamster' erzeugt, dort liegt dann der ganze Kram (bitte README-Datei lesen)
    • '/ab/xy' (Beispiel: '/user/stud/s97/mueller/java') in CLASSPATH-Variable aufnehmen
    • wenn Ihr ein anderes Betriebssystem als UNIX nutzt, m"u"st Ihr den go-Befehl im Unterverzeichnis 'bin' zunächst anpassen
    • danach kann die Hamster-Laufzeitumgebung mit '/ab/xy/hamster/bin/go' (Beispiel: '/user/stud/s97/mueller/java/hamster/bin/go') aufgerufen werden.
    • Viel Spaß !

  • Java-Package dibo (oder: Terminal.java)
    Für diejenige unter Euch, die die Übungsaufgaben zuhause bearbeiten wollen, stelle ich hiermit das Java-Package 'dibo' zur Verfügung. Bei der Installation müßt Ihr folgende Schritte durchführen:
    • Wenn nicht bereits vorhanden, das JDK auf Eurem Rechner installieren
    • dibo.tar auf Euren Rechner laden
    • File enttaren: tar xvf dibo.tar
    • das erzeugte Verzeichnis muß den Namen 'dibo' behalten !
    • das Vater-Verzeichnis von 'dibo' in CLASSPATH-Variable aufnehmen
    • im Verzeichnis 'dibo' existiert eine Datei 'Terminal.README', die folgende Informationen enthät:
      //-------- Anmerkung -------------
      
      Bei der Nutzung des ARBI-Rechnerclusters 
      nehmen Sie bitte folgendes Verzeichnis 
      in den CLASSPATH auf:
      
        /user/fb10/dibo/java
      
      //-------- Klasse Terminal ------
      
      package dibo;
      
      public class Terminal {
      
        public static PrintStream out = 
          System.out;
      
        /*
          die folgenden Funktionen lesen jeweils 
          eine Zeile bis zum  vom Terminal 
          ein und liefern den entsprechenden Wert 
          zurueck.
          Tritt irgendein Fehler auf, wird 
          '\0', 0, 0.0 bzw. "" geliefert.
        */
      
        public static char readChar();
        public static short readShort();
        public static int readInt();
        public static long readLong();
        public static float readFloat();
        public static double readDouble();
        public static String readString();
      
      }
      
      //-------- Beispielprogramm ---------
      
      import dibo.*;
      
      public class Probe {
      
        public static 
          void main(String[] args) {
      
          try {
      
            Terminal.out.print("Enter: ");
            double zahl = Terminal.readDouble();
            Terminal.out.println("str: <" + 
                                 zahl + ">");
      
          } catch (Exception e) {}
      
        }
      
      }