Fortgeschrittenenpraktikum: Sommersemester 2000
Veranstaltung: 8761, 8. bzw. 4 stündig
Basis: Vordiplom
Zielgruppe: Studierende im Hauptstudium
Ort: Haus II, Preußerstraße 1-9, Raum 324 (vorraussichtlich)
Termin: Vorlesungsteil: Montags, 16:00 ct
Beginn: Montag, 10. April 2000
Bemerkung: den endgültigen Termin der Veranstaltung
müssen wird davon abhängig machen, wann wir Rechenzeit
am Grundausbildungspool bekommen!
Schließung der Accounts im GA-Pool:
[Inhalt]
[Organisatorisches]
[Gruppen]
[Unterlagen]
[Handouts]
[Aufgaben]
[Projektaufgabe Mist]
[obligatorische Links]
[Literatur]
[Software]
[Links]
Inhalt
Java ist eine moderne, objektorientierte
Programmiersprache. Sie
erlaubt es insbesondere, interaktive Programme zu schreiben, die in
Webseiten eingebettet werden können, sogenannte Applets. Im Rahmen
dieses Kompaktkurses soll in die Programmiersprache Java und die für
die Programmierung wichtigen Bibliotheken eingeführt werden.
Im Rahmen des Kurses sollen die folgenden Themen behandelt werden:
- Grundlagen der Java-Programmierung (Objekte, Vererbung,
Interfaces)
- Entwicklung einfacher Applets und Applikationen
- Verwendung des Java AWT (abstract windowing toolkits)
- Netzwerkprogrammierung in Java
- Das Sicherheitskonzept von Java
- Nebenläufigkeit (threads)
Der Kurs ist für Studierende mit Interesse an algorithmischen Problemlösen
und objektorientierter Programmierung gedacht. Der Kurs ist nicht als
Einführung in die Programmierung geplant, d.h. wir gehen davon aus, daß
Dinge wie Schleifen, Datentypen, Rekursion u.ä. im Prinzip bereits bekannt
sind und wir setzen ein wenig Erfahrung mit der einen oder anderen
Programmiersprache voraus. Vorkenntnisse in Java sind nicht notwendig.
Organisatorisches
Anmeldung:
Wir bitten um schriftliche (per email)
Anmeldung für den Kurs. Um die Vorraussetzungen der Teilnehmer abschätzen
und den Kurs evtl. darauf abrichten zu können, bitten wir (neben Name und
email-Adresse) um die Angabe folgender Daten:
- Name, email
- Semesterzahl
- Programmiererfahrung in C/C++/Java/sonstige?
Nachbereitung:
Wir sind an Rückmeldung/Meinungen zum Kurs etc. interessiert und haben
deswegen einen Fragebogen vorbereitet. Bitte ausf"ullen und uns zukommen
lassen.
Fragebogen
Aufgaben:
Kleinere Aufgaben werden wöchentlich ausgegeben. Später
wird es eine etwas anspruchsvollere Programmieraufgabe zu lösen geben. Die
Abgabefrist wird jeweils bekanntgegeben. Dabei werden
Arbeitsgruppen zu je zwei Teilnehmern gebildet, die zusammen die
Aufgaben bearbeiten. Bitte zur Abgabe die entsprechenden Anregungen
beachten. Ein sehr einfaches Beispiel eines Makefiles findet sich
hier
Abgabe:
Übungsgruppen
Die Aufgaben werden in 2er-Gruppen bearbeitet. Jede der Übungsgruppen
bekommt einen account (unix{nummer}) und damit die Möglichkeit, an
der Uni zu rechnen. Für den Rechnerzugang ist uns im
Grundausbildungspool Rechenzeit zugeteilt geworden, und zwar
Montags, 11.00-16:00. Hier die Liste der Übungsgruppen. Der account ergibt sich aus der
Gruppennummer durch Addition mit 10, also Gruppe 11 bekommt den
account unix21 etc. Denaben sind unix00 und
unix01 sind die Betreueraccounts, unix10 ein
Beispielbenutzer.
Unterlagen
Wir werden versuchen, Folien für den Kursteil bis zu jeweiligen Vorlesung
ins Netz zu legen. Die Vorlesung wird zunächst ähnlich einer vor 2 Jahren
gehaltenen Vorlesung vorgehen; wer will kann sich die damaligen Folien
etc. auf der alten Kursseite
anschauen.
|
Schnappschuß der Kursfolien
(hier zum Papiersparen 4fach verkleinert)
|
Hier ein erster HTML-Versuch
(experimentell, Javacode, Umlaute und einige Macros sind noch nicht
konvertiert)
|
Handouts
Aufgaben
1.
|
Klassen, Vererbung, Datentypen
|
17. April, hier ein paar nachträgliche Lösungshinweise zu den Pizzaaufgaben
|
2.
|
OO II, Ausnahmebehandlung
|
8. Mai
|
3.
|
I/O
|
15. Mai
|
4.
|
Gui/ OO
|
22. Mai (für die 4stündigen), Zu der Aufgabe mit den Expressions hier
wenig Code, den Sie als Augangspunkt
benutzen können, und hier der Code für Mengen
und hier auch noch die leere Menge, Sets gibt es natürlich auch in der Library, die kann man auch verwenden
|
5.
|
OO/Threads
|
29. Mai (für die 4stündigen)
|
6.
|
Netzwerke/OO
|
19. Juni (für die 4stündigen)
|
7.
|
Datenbanken/OO
|
3. Juli (für die 4stündigen).
Hier Code für die booleschen
Ausdrücke ohne Negation, dazu das Interface
B_ExpressionVisitor.java und zwei seiner Implementierungen
BoolEval_V.java (für Aufgabe 3 auf Zettel 6 und Aufgabe 2 auf
Zettel 7).
|
Die Informationen für die gemeinsame Projektaufgabe wird auf einer
eigenen Seite gesammelt.
Obligatorische Links
Literatur
Aus der unübersehbaren Fülle an Büchern über Java, hier eine kleine
subjektive Auswahl (siehe auch Handout 1):
- Java in a Nutshell. David Flanagan, O'Reilly, 1999. 3rd edition. Auch als online Reference Manual für (leider nur) Java 1.1
Hervorrangend zum Nachschlagen
- Java:
Software Solutions , John Lewis und William Loftus. Addison-Wesley, 1997.
Gutes einführendes Lehrbuch
- Java Enterprise in a
Nutshell, David Flanagan, Jim Farley, William Crawford und Kris
Magnusson, 1999
Referenz für Enterprise-APIs (RMI, JDBC, IDL etc.), die Java-Beispiele
sind kostenlos herunterladbar.
- Das Java Tutorial von Sun, Mary Campione und Kathy Walrath
- The Java Language Specification, James Gosling, Bill Joy und Guy Steele, Addison-Wesley, 1996
Die Referenz für alle, die es genau wissen wollen.
- A Little Java, a Few Patterns, M. Felleisen und D. P. Friedmann, MIT Press, 1998
Das etwas andere Javabuch, das einzige ohne API, ohne Applets,
ohne Windowing Toolkit. Empfehlenswert.
weitere Information zu im Kurs verwendeter Software
Links
Ein ungeordnete Sammlung von Links
- Java Workshop
-
Increasing Java's expressiveness with ThisType and match-bounded polymorphism , Kim Bruce, 1997
- Pizza, Sprachentwurf zur Erweiterung von Java
- GJ, Generic Java
- Weitere
Buchempfehlungen, nach Themen geordnet
- Gamelan
- einer der umfangreichsten Java-sites
-
Thinking in Java, Bruce Eckel, Prentice Hall, 1998
- Ein weiteres fettes Lehrbuch, vollständig online
- Geschichte von Java:
in Stichpunkten,
ausführlicher,
oder hier?
- Große Sammlung von Java-Links
- Eine detaillierte Kritik an C++, Ian Joyner, 1996 (HTML hier )
- Ein paar
kritische Bemerkungen zu Java
- Folien zum Thema
-
Typsicherheit von Java?
[Inhalt]
[Organisatorisches]
[Gruppen]
[Unterlagen]
[Handouts]
[Aufgaben]
[Projektaufgabe]
[obligatorische Links]
[Literatur]
[Software]
[Links]
Bei Fragen, email an kst@informatik.uni-kiel.de oder
ms@informatik.uni-kiel.de
Maintained by: Martin Steffen
Last modified: Fri Jul 21 16:21:36 MET DST 2000