Einführung in die Informatik: Programmierung und Software-Entwicklung (WS 02/03)
fachübergreifende Vorlesung für Studenten mit Nebenfach Informatik, V2Ü3
Vorlesung: Prof. Dr. Martin Hofmann
Übungen: Dr. Ralph Matthes
Martin Lange
Tutoren: Christian Dax
Oleksandr Domin
Adham Haddad
Iryna Khoma
Tobias Schmarsow
Ting Wu
und Robert Reitmeier:
Termine
Vorlesung Mi, 14-16 Audimax, Hauptgebäude Hofmann ab 16.10.
Übung Mi, 16-17 Audimax, Hauptgebäude Hofmann ab 16.10.
Übung Do, 14-16 (14:30) 214, Hauptgebäude Matthes/Lange ab 24.10.
Übung Do, 16-18 (16:15) 214, Hauptgebäude Matthes/Lange ab 24.10.
Übung Fr, 10-12 (10:15) 214, Hauptgebäude Matthes/Lange ab 25.10.
Übung Fr, 16-18 (16:15) 214, Hauptgebäude Matthes/Lange ab 25.10.
Rechnerraumbetreuung CIP-Pools, Oettingenstrasse 67 Tutoren ab 21.10.
Die Übung am Mittwoch dient der Vertiefung und Diskussion des Stoffes, der zuvor in der Vorlesung
behandelt wurde. Sie wird häufig mit der Vorlesung verschmolzen
werden.
In den vier inhaltsgleichen Übungen am Donnerstag und Freitag werden
wöchentlich Aufgaben behandelt, die auf die abzugebenden
Practicals vorbereiten. Bedenken Sie, daß Sie in
Übungen mit geringeren Teilnehmerzahlen noch mehr Gelegenheit
haben, Ihre individuellen Fragen zu stellen - besonders am
Freitagnachmittag.
Nach dem 22.1. findet keine Rechnerraumbetreuung mehr statt!
Die Betreuung beschränkt sich nicht auf den Umgang mit
dem Computer. Natürlich werden Fragen zu Java entgegengenommen. Bei
konkreten Problemen mit den Practicals findet man hier am ehesten Rat.
Aktuelles
- Die Scheine können ab Montag, dem 17.2.03, im Sekretariat des Lehrstuhls (Zimmer Z1.05, Oettingenstr. 67)
abgeholt werden. Studenten der BWL, VWL und Wirtschaftspädagogik erhalten keine Scheine. Die Liste mit deren Ergebnissen
wird direkt an das entsprechende Prüfungsamt gesandt.
- Die Liste der Klausurteilnehmer mit den entsprechenden Noten finden Sie
hier.
- Eine Auflistung
derjenigen Abschnitte aus [Horstmann], die in der Vorlesung bisher behandelt wurden.
Inhalt
- Grundkonzepte und Methoden der Programmierung und des System-Entwurfs
- Objektorientierte Programmierung mit Java
- Grundlegende Algorithmen
Folien zur Vorlesung
Bemerkung: Der Stand der Folien ist der vom Tag der
Vorlesung. Organisatorische Angaben entnimmt man besser dieser Webseite.
- Folien zur Vorlesung am 16. Oktober als PDF,
PS, PS mit 4
Folien pro Seite, PDF mit 4 Folien pro
Seite (nur zum Ausdrucken gedacht)
- Folien zur Vorlesung am 23. Oktober als
PDF, PS,
PS mit 4 Folien pro
Seite, PDF mit 4 Folien pro
Seite
JAVA-Archiv zur Zentralübung am 23.10.
(nicht am Bildschirm anzeigbar, sondern nur abspeicherbar), zu
entpacken mit jar -xvf zue2310.jar (falls Sie den Dateinamen
nicht geändert haben). Darin enthalten ist bereits
ConsoleReader.java aus dem
Buch von Horstmann (2. Auflage).
- Folien zur Vorlesung am 30. Oktober als PDF,
PS, PS mit 4 Folien pro Seite,
PDF mit 4 Folien pro Seite
- Folien zur Vorlesung am 6. November als PDF,
PS, PS mit 4 Folien pro Seite,
PDF mit 4 Folien pro Seite
- Folien zur Vorlesung am 13. November als PDF,
PS, PS mit 4 Folien pro Seite,
PDF mit 4 Folien pro Seite.
Die Dateien ZufallsIrrfahrt.java,
Gitter.java,
Betrunkener.java,
die in der Vorlesung entwickelt wurden.
- Folien zur Vorlesung am 20. November als PDF,
PS,
PS mit 4 Folien pro Seite,
PDF mit 4 Folien pro Seite.
- Folien zur Vorlesung am 27. November als PDF,
PS,
PS mit 4 Folien pro Seite,
PDF mit 4 Folien pro Seite.
- Folien zur Vorlesung am 11. Dezember (enthalten diejenigen vom 4. Dez.) als PDF,
PS,
PS mit 4 Folien pro Seite,
PDF mit 4 Folien pro Seite,
PDF mit 4 Folien pro Seite gezippt.
Die Dateien
Bankkonto.java,
Festgeldkonto.java,
Girokonto.java,
Sparkonto.java,
Geom.java,
Life.java,
Spielfeld.java,
Zelle.java.
- Folien zur Vorlesung am 18. Dezember als PDF,
PS,
PS mit 4 Folien pro Seite,
PDF mit 4 Folien pro Seite.
Die Dateien Main.java,
MyListener.java,
BankGUI.java,
BankkontoGUI.java,
WindowCloser.java,
die in der VL entwickelt wurden. Hier mit geringfügig erweiterter Funktionalität.
Die Bankkontoklassen aus der VL vom 11.12. als Package bankkonto:
Bankkonto.java,
Sparkonto.java,
Girokonto.java,
Festgeldkonto.java.
Bitte in ein Unterverzeichnis bankkonto
kopieren.
- Folien zur VL vom 8.1. als pdf .
Das Beispiel "Rechnung": rechnung
. Das Beispiel "Geldautomat": atm
. Jeweils die Dateien in ein Unterverzeichnis des gleichen
Namens wie die package (also rechnung oder atm) kopieren.
- Vorlesung am 15.1. (kein neuer Stoff für die Klausur): die Vorlesungsbeschreibung, alle Beispiele inkl. Vorlesungsbeschreibung als JAR
- Folien zur Vorlesung am 22. Januar als PDF,
PS,
PS mit 4 Folien pro Seite,
PDF mit 4 Folien pro Seite,
PDF mit 4 Folien pro Seite gezippt.
Klausur
Die Klausur findet statt am 5. Februar 2003 im Auditorium Maximum
(also dem üblichen Hörsaal für die Vorlesung).
Einlaß in den Hörsaal ist um 14:30 Uhr, der Beginn der
Bearbeitungszeit um 14:50 Uhr. Stellen Sie sicher, daß Sie
keinesfalls erst nach 14:45 Uhr den Hörsaal betreten, da Sie dann
bereits die Ausgabe der Klausurangaben behindern.
Bearbeitungszeit ist 120 Minuten. Keinerlei Hilfsmittel sind
erlaubt. Bringen Sie aber unbedingt passende Schreibgeräte mit.
Ohne eine Klausurzulassung ist keine Teilnahme möglich; die Liste der
derzeit zugelassenen Übungsteilnehmer wurde am 28.1., 21:20 Uhr,
an dieser Stelle veröffentlicht. Die Basis der Zulassung ist
ankündigungsgemäß eine sinnvolle Bearbeitung der
Practicals. Das wurde bei Practical 3 sehr großzügig zu Ihren
Gunsten interpretiert. (Die spätere Korrektur kann für sich
alleine zum Ergebnis "nicht bestanden" kommen, was Ihrem
Klausurergebnis nicht mehr schadet.) Die Ergebnisse der
Practicals können grundsätzlich nicht in das Klausurergebnis
einbezogen werden.
Ein amtlicher Lichtbildausweis und Ihr Studentenausweis sind unbedingt
zur Klausur mitzubringen. Dazu die Berechtigungskarte für
Studierende von BWL, VWL und Wirtschaftspädagogik (also
denjenigen, für die die Klausur Teil der Diplomhauptprüfung ist).
Eine Wiederholungsklausur ist nicht vorgesehen. Wenn Sie zeitgleich
eine andere Klausur schreiben, uns vor der Klausur davon
schriftlich (z.B. per Email)
informieren und uns anschließend eine schriftliche Bestätigung
(unterschrieben und nicht als Email)
seitens der Veranstalter der anderen Klausur zukommen lassen,
daß Sie dort auch mitgeschrieben haben, so können wir eine
andere Lösung suchen.
Sollten Sie aus gesundheitlichen Gründen am Mitschreiben verhindert
sein, so müssen wir auf der unverzüglichen Vorlage eines
ärztlichen Attests bestehen. Auch dann werden wir einen Weg
der Leistungsfeststellung finden.
Klausurergebnisse
Organisatorisches
- Es gibt ein Diskussionsforum,
in dem Probleme und Fragen im Zusammenhang mit der Vorlesung besprochen werden können. Fragen können per Mail
an einfinfo@tcs.informatik.uni-muenchen.de gestellt
werden. Antworten sind sehr willkommen! Um die Antworten
den Fragen automatisch zuordnen zu lassen, sollte man als
Betreff die Zeichenkette "Re: ", gefolgt durch den Originalbetreff, angeben. Es empfiehlt sich sehr, die Beiträge
von Zeit zu Zeit zu lesen, vor allem bevor Sie selbst einen verfassen, der sich mit einem Problem befasst, welches
dort schon diskutiert wurde.
Übungen
- elektronisches Abgabesystem: Verfolgen
Sie diesen Link
zur Anmeldung und zur Abgabe des aktuellen
Practicals. Beachten Sie, dass das Anmelden Teil des
Practicals 0 ist, d.h. dass Sie sich bis zum 30.10. angemeldet
haben müssen. Falls Sie sich nur bei Ihrem Namen vertippt
haben, dann nehmen Sie bitte mit uns Kontakt auf.
- Practicals
- Practical 0,
als PS-Datei, (nicht bewertet)
- Ausgabe: 16.10.02
- Abgabe: spätestens 30.10.02, 14:00 Uhr
- das Beispielprogramm Versuch.java
- Klassenname:
Versuch
- Practical 1,
als PS-Datei
- Ausgabe: 30.10.02
- Abgabe: spätestens
18.11.02, 21:00 Uhr (ursprünglicher Termin war
13.11.02, 14:00 Uhr; zum Änderungsgrund siehe das Diskussionsforum)
- die Grafikklasse GraphicsWindow.java.
Es ist unnötig, sich den Quellcode anzusehen. Dagegen empfiehlt sich der Blick
in die Dokumentation (die man sich mit
javadoc aus der Quelldatei herstellen kann). Bitte holen Sie sich die aktuelle
Version 1.1, die gegenüber der Fassung vor 31. Oktober 20 Uhr 40 erheblich weniger
CPU-Ressourcen verbraucht.
- Demonstration des gewünschten Programms:
Practical1Demo.jar (nur zum
Herunterladen, Entpacken und Laufenlassen mittels java Dreiecke); bitte laden
Sie auch hier die neue Fassung herunter, falls Sie die von vor 31. Oktober 20 Uhr 40
haben (die neue JAR-Datei hat 6606 Bytes, die alte hatte 6971 Bytes).
- Practical 2,
als PS-Datei
- Ausgabe: 27.11.02
- Abgabe: spätestens 11.12.02, 14:00 Uhr
- Das Archiv Practical2Demo.jar mit den Beispielprogrammen.
Aufruf durch java -classpath Practical2Demo.jar Breitensuche
oder
java -classpath Practical2Demo.jar Tiefensuche
.
- Klassenname:
Practical2
- Die Version 2 der Grafikklasse
GraphicsWindow
.
- Die Klassen LIFO und FIFO
zum Erzeugen von dynamischen Datenstrukturen.
- Die Klasse TimeWaste zum Verschwenden von Zeit.
- Practical 3,
als PS-Datei,
als PS-Datei mit 2 Seiten pro Blatt,
als PDF-Datei mit 2 Seiten pro Blatt
(Tippfehler: Auf Seite 4, 18te Zeile von unten muss es statt setEnable heißen
setEnabled, was durch die Dokumentation von java.awt.Component sofort klar wird;
Dank an Wolfgang v. Welck für den Hinweis im Diskussionsforum.)
- wöchentliche Übungsblätter
- am 24./25.10.: das Aufgabenblatt,
als PDF,
das JAR-Archiv mit den Lösungen
(entpacken mit
jar xvf Uebung1.jar
).
- am 31.10.: das Aufgabenblatt,
als PDF,
das JAR-Archiv
mit den Lösungen
- am 7./8.11.: das Aufgabenblatt,
als PDF, sowie Beispielimplementierungen
Student.java und
StudentHaupt.java
- am 14./15.11.: das Aufgabenblatt,
als PDF, sowie die Beispielprogramme
Variablen.java und
Rueckgabe.java.
- am 21./22.11.: das Aufgabenblatt,
als PDF, sowie die Beispielprogramme
Umkehrung5.java,
Umkehrung.java,
Teiler.java und
Enthalten.java.
- am 28./29.11.: das Aufgabenblatt,
als PDF, sowie die Beispielprogramme
Primzahlen.java,
Pascal.java.
- am 5./6.12.: Aufgabe: Implementierung von LIFO und FIFO mittels Arrays.
Mögliche Lösungen
LIFO.java,
FIFO.java.
(Können Sie testen mit der Demo zu Practical
2.)
- am 12./13.12.: das Aufgabenblatt,
als PDF, sowie
die Beispielprogramme zum Herunterladen als jar-Datei (die zugleich Implementierungen von Practical 2 enthält)
- die Probeklausur vom 18.12. als PDF und
PS.
Beachten Sie: Die Probeklausur stellt eine mögliche Klausur dar, wie sie am 18.12. hätte gestellt
werden können, z.B. wenn zwei Klausuren im Semester stattgefunden hätten.
- am 19./20.12.: Inhalt der Übung war eine Vorstellung von Practical
3 mit Vorführung, die Ausgabe von Objekten (Methode
toString() der Klasse Object, Beispielprogramm Ausgabetest.java) und die Besprechung der Klasse
BankkontoGUI.java der Vorlesung vom 18. Dezember
(kommentierte Datei
als JAR).
- am 9./10.1.: Das Projekt Bankautomat von Horstmann, S.587-605,
wurde nochmals knapp in UML dargestellt, dann das Package
atm eingerichtet und die Klasse
atm.KeyPad komplett implementiert.
- am 30./31.1.: Die Türme von Hanoi als Jar-Datei.
- am 6./7.2.: Die auf der Klausurangabe abgedruckten Programme als
JAR-Datei (die Klausur wurde in den Übungen an jeden Interessenten
ausgegeben).
Links
Literatur
- Cay Horstmann, Computing Concepts with Java 2 Essentials, John Wiley & Sons, New York, 2000,
ISBN 0-471-34609-8, 2. Auflage Achtung: Gemeint ist nicht
die dritte Auflage, die sich in vielen Details von der
zweiten Auflage unterscheidet. (Natürlich lehrt auch
die dritte Auflage die Konzepte und Methoden, um die es hier
geht. Die zweite Auflage gibt es noch z.B. bei buch.de.) Nach Hinweis eines Studierenden gibt es Exemplare für ca. 40 Euro bei der Buchhandlung "Computerbücher am Obelisk", Barerstrasse 34 (Stand 7.11.) .
- H.-P. Gumm, M. Sommer, W. Hesse, B. Seeger, Einführung in die Informatik, Oldenbourg, 2002,
ISBN: 3-486-25635-1
Die Universitätsbuchhandlung Lachner ist über einen eventuellen gesteigerten Bedarf an Exemplaren
dieser Bücher informiert worden.
Martin
Lange und Ralph
Matthes
Last modified: Fri Feb 28 16:27:55 CET 2003