Universität des Saarlandes Java II - Wintersemester '10/'11 Deutsches Forschungszentrum für künstliche
                Intelligenz


In dieser Vorlesung werden Werkzeuge und Bibliotheken vorgestellt, die für die Arbeit mit Java, vor allem im computerlinguistischen Bereich, von Bedeutung sind. Außerdem werden Programmierfähigkeiten in Java anhand von Beispielen aus dem Bereich computerlinguistischer Algorithmen vertieft.

Vorlesung: Mo 08:30 - 10:00 Dozenten: Ulrich Schäfer ulrich.schaefer(at)dfki.de
Bernd Kiefer bernd.kiefer(at)dfki.de
Übung: Fr 10:15 - 11:45 Dozent: Jörg Steffen joerg.steffen(at)dfki.de

Für die Zulassung zur Abschlussklausur müssen die wöchentlichen Übungen zu mindestens 75% bearbeitet werden und mindestens 50% der möglichen Punkte erreicht werden. Die Übungen können in Gruppen bis zu 3 Personen gemeinsam bearbeitet werden.

Die erste Vorlesung findet am Montag, dem 25. Oktober um 8:30 Uhr im Geb. C7.2, Konferenzraum 2.11 statt. Teilnehmern dieses Kurses wird dringend empfohlen, sich in der Mailingliste java-kurs anzumelden, da aktuelle Informationen auch über diese Liste verteilt werden.

Zum gemeinsamen Softwareverwaltungssystem dieses Kurses geht's hier (passwortgeschütztes Trac/Subversion).
Alle Teilnehmer und Dozenten können durch die Mailingliste java-kurs @ dfki.de erreicht werden.


Die Folien werden nach der jeweiligen Vorlesung auf dieser Seite verfügbar gemacht. Zur Vorbereitung auf die Sitzungen und zur Vertiefung der behandelten Themen können Sie die Links nutzen.

Folien Programmieraufgaben Links Sonstiges
1 Encodings und Unicode Übung 1 (Encodings)
Musterlösung
Links utf8.txt   latin1.txt   deja5euros.txt
Alles zusammen in template_ue01.zip
(rechte Maustaste + "Speichern unter...")
Java Coding Standards
Eclipse Introduction
Checkstyle Konfiguration
Code Formatter Konfiguration
2 Strings und Regexps Regular Expressions Tutorial concat.java
3 JAXP I: XML, DTD, SAX, DOM Übung 2 (SAX, DOM)
Musterlösung
Links template_ue02.rar
katzen.xml
4 JAXP II: XPath, XSLT Übung 3 (XPath, XSLT)
Musterlösung
Links
jEdit-Installation mit XML/XPath/XSLT-Plugins
template_ue03.zip
sentences.xml
5 JavaCC Übung 4 (JavaCC)
Musterlösung
Links
JavaCC-Plugin für Eclipse (download, dann in Eclipse über das Menü Help/Software Updates/Add Site/Local bzw. Archive... öffnen und installieren, Eclipse neu starten; JavaCC wird über das Kontextmenü mit rechter Maustaste auf einer *.jj-Datei gestartet)
template_ue04.rar
inventory.xml
chaincalc.jj
6 Design Patterns Übung 5 (Kühlschrank Teil 2)
Musterlösung
Links
MARY 4.1.1 Installer
template_ue05.rar
inventory.xml
7 Apache Commons, Logging, Ant Übung 6 (Kühlschrank Teil 3)
Musterlösung
Links
template_ue06.rar
8 Fiese Sachen mit Objekten: Reflection, JNI, Profiling, XML-RPC Übung 7 (Kühlschrank Teil 4)
Musterlösung
Links
Log4J manual
Apache Ant manual
Apache XML-RPC
template_ue07.rar
9 Graphen und Suche I Übung 8
Musterlösung
Source Template
10 Graphen und Suche II Übung 9
Musterlösung
Priority Queue: Fibonacci-Heaps
Implementierung von Hashtabellen
Source Template
11 Endliche Automaten
Union-Find Datenstrukturen
Übung 10
Musterlösung
Source Template
12 CF-Parsing Übung 11
Musterlösung
Source Template
13 Part-of-Speech Tagging Links zu Literatur
 


Literatur:

Zur Vorbereitung auf die Vorlesungen und zur Vertiefung der behandelten Themen können Sie die Links nutzen.

Kathy Sierra, Bert Bates: Head First Java, 2 Rev Ed, O'Reilly Media, Inc, USA (United States), 2005.
In der Computerlinguistik-Bibliothek zum Ausleihen.

Guido Krüger: Handbuch der Java-Programmierung, 5. Auflage, 2007,   HTML-Ausgabe, freier Download: http://www.javabuch.de
Das bekannteste deutsche Java-Buch -- manche lieben es, manche hassen es; aber guter Hypertext-Index

Christian Ullenboom: Java ist auch eine Insel, 8. Auflage, 2009.
Ebenfalls freier HTML-Download, noch mehr Seiten (1475)... www.galileocomputing.de/openbook/javainsel8/

Bruce Eckel: Thinking in Java (gibt's auch für C++)
Viele gute Tips, auch zu allgemeinen Programmierfragen, und vor allem auch online umsonst verfügbar auf www.mindview.net.
Allerdings im Moment noch auf dem Stand von Java 1.4 (neuere Version in Arbeit).

The Java Language Specification
"Written by the inventors of the technology". Freier PDF- und HTML-Download

Java-Doc bei Sun Microsystems
Die beste Quelle, wenn man an konkreten Feldern, Methoden und Klassen interessiert ist; sollte man erst benutzen, wenn die Prinzipien von Java verstanden wurden

The Java Tutorials
Tutorials zu Java APIs und speziellen Aspekten der Sprache, auch als Buch und Download verfügbar.

Walt Savitch: Java: An Introduction to Problem Solving and Programming, (4th ed. 2005, Prentice Hall, 1309pp)
Savitchs Bücher findet man unter www.cse.ucsd.edu/users/savitch/index.html
Hervorragendes praktisches Buch (tolle Berwertungen bei amazon.com) von einem der Götter der Mathematischen Linguistik, das eine Einführung in die Programmierung darstellt und dabei Java verwendet; teuer!

David Flanagan (1999). Java in a Nutshell. A Desktop Quick Reference. O'Reilly, Beijing, 3th edition.
HTML-Version der 3. Auflage; hier finden sich auch andere Java-Bücher (Foundation Classes, Enterprise)

Scott Ambler Writing Robust Java Code    Version vom 15.Januar 2000 www.ambysoft.com/downloads/javaCodingStandards.pdf
Hier finden sich die Coding-Konventionen, die wir auch benutzen wollen! Das Buch Vermeulen et al. unten ist eine etwas neuere Version des Dokuments von Ambler, das man kaufen kann


Weitere Literatur:
Ken Arnold, James Gosling & David Holmes (2000). The Java Programming Language. Addison-Wesley, Boston, 3rd edition.
Friedrich Esser (2001). Java 2. Designmuster und Zertifizierungswissen. Galileo Press, Bonn.
Allan Vermeulen et al. (2000). The Elements of Java Style. Cambridge University Press, Cambridge.
Swing Tutorial

Nützliche Links eher für Programmieranfänger:


Weitere interessante Links: