LEA
Fakultät für Informatik der Technischen Universität München
Lehrstuhl für Effiziente Algorithmen
Postadresse: 80290 München; Hausadresse: Arcisstr.21, 80333 München

Übungen zur Vorlesung
Einführung in die Informatik IV


Hinweise zum Übungsbetrieb:

* Organisation des Übungsbetriebs: Dr. Werner Meixner
* Übungsleitung: Alexander Hall, Martin Raab, Thomas Schickinger
* Kontakt: Bei Fragen und Problemen wenden Sie sich bitte an Ihren Tutor/Ihre Tutorin. Sollte Ihnen diese(r) nicht weiterhelfen können, kümmert sich bei inhaltlichen Angelegenheiten die Übungsleitung um Ihr Problem. Bitte geben Sie Name, Matrikelnummer, Tutor und Tutorgruppe an, damit Ihre Anfrage zügig bearbeitet werden kann.

Bei organisatorischen Angelegenheiten wenden Sie sich bitte an Dr. Werner Meixner (Sprechstunde: Di, Do, jeweils 11-13h, außer 11.5.)

* Zeit und Ort:
Beachten Sie die Informationen zu den einzelnen Tutorgruppen.
* Abgabe: Die Hausaufgaben müssen bis Mittwoch, 9:25, der zweiten auf die Austeilung folgenden Woche im Briefkasten für Informatik IV (neben S0314) abgeben werden. Gruppenabgabe in Zweiergruppen ist möglich, allerdings nur innerhalb einer Tutorgruppe.

Die Lösungen von Computer-Aufgaben müssen jeweils ebenfalls bis Mittwoch der zweiten Woche, 9:25, vorliegen. Bitte beachten Sie, daß das Tool zur Lösung der Aufgaben erst am Mittwoch auf das neue Aufgabenblatt umgestellt wird. Sie haben also genau eine Woche Zeit, um Ihre Lösung elektronisch abzugeben.

* Leistungsnachweis: Einen Schein erhält, wer mindestens 40% der Punkte zu den Hausaufgaben erreicht und erfolgreich an der Semestralklausur teilnimmt.


Ankündigungen

* Die Klausureinsicht findet am Montag, den 7.8.00, von 9:00 - 11:00 Uhr in S2225 statt.
* Hier können Sie die Ergebnisse der Klausur erfahren. Wir weisen darauf hin, daß es keine Nachholklausur geben wird.
* Die Anmeldung zur Semestralklausur ist abgeschlossen. Sie können überprüfen, ob Sie zugelassen oder nicht zugelassen wurden.
* Die Klausur zur Einführung in die Informatik IV (SS 2000) findet statt am

Samstag, 29. Juli 2000, 9.00 bis 11.30 Uhr

in den Hörsälen S0320, S0314 und (gfs.) S1128.
Die Sitzverteilung wird durch Aushang an den Eingängen des Hörsaals S0320 15 Minuten vor Klausurbeginn bekanntgegeben.
An der Klausur können Sie teilnehmen, wenn Sie sich zur Teilnahme angemeldet haben (Natürlich müssen Sie auch die erforderliche Punktzahl in den Übungen erreicht haben.). Die Anmeldung erfolgt über das Internet

Dienstag, 18.7.00 bis Donnerstag 20.7.00.

(Verfahren Sie dazu analog wie bei der Einschreibung in die Übungen.)
Hilfsmittel sind nicht zugelassen (Bücher, Skripten, etc.) und dürfen auch nicht mit in die Hörsäle genommen werden. Allerdings dürfen Sie ein von Ihnen beschriebenes DIN A4 Blatt zur Klausur mitbringen und diese Notizen verwenden.
Weitere Einzelheiten zur Durchführung der Prüfung werden unmittelbar vor Klausurbeginn durch Ansage bekanntgegeben und sind zu beachten.
Halten Sie in der Prüfung Studentenausweis und Personalausweis bereit. Die Ausweise werden während der Prüfung kontrolliert.


Informationsblätter

* Infoblatt 1


Übungsblätter

* Übungsblatt 1
* Übungsblatt 2
* Übungsblatt 3
* Übungsblatt 4
* Übungsblatt 5
* Übungsblatt 6
* Übungsblatt 7
* Übungsblatt 8
* Übungsblatt 9
* Übungsblatt 10
* Übungsblatt 11
* Semestralklausur


Tutorgruppen

Anmeldung zu den Gruppen

Die Anmeldung ist vom 3.5.00, 9:00 Uhr bis zum 5.5.00, 12:00 Uhr freigeschaltet. Bitte beachten Sie, daß Sie ohne Anmeldung nicht am Übungsbetrieb teilnehmen können.

Wichtig: Grundsätzlich finden alle Tutorübungen am Mittwoch statt. Wählen Sie also bitte den Termin am Dienstag nur dann, wenn bei Ihnen eine begründete Ausnahme vorliegt, weswegen Sie keinen der Mittwochstermine wahrnehmen können.

Bitte überprüfen Sie Ihre Gruppenzuteilung.

Gruppe Zeit Raum Tutor
G1 Di,16.00-18.00 N0111 Werner Meixner
G2 Mi,11.15-13.15 N0111 Heiko Lötzbeyer
G3 Mi,11.15-13.15 N0116 Alexander Hall
G4 Mi,11.15-13.15 N0120 Werner Meixner
G5 Mi,11.15-13.15 N1124 Michal Mnuk
G6 Mi,11.15-13.15 2705a Alexander Pretschner
G7 Mi,11.15-13.15 2705 Martin Raab
G8 Mi,11.15-13.15 2710 Thomas Schickinger
G9 Mi,11.15-13.15 2555 Klaus Holzapfel
G24 Mi,11.15-13.15 N0118 Claus Schröter
GS1 Mi,11.15-13.15 S2229 Mark Scharbrodt
G22 Mi,11.45-13.45 2100 Michael von der Beeck
G10 Mi,14.15-16.15 N1124 Martin Marciniszyn
G11 Mi,14.15-16.15 2705 Birgit Schieder
G12 Mi,14.15-16.15 2705a Werner Meixner
G13 Mi,14.15-16.15 2710 Christian Wenz
G14 Mi,14.15-16.15 N0111 Alexander Hall
G15 Mi,14.15-16.15 N0116 Thomas Schickinger
G16 Mi,14.15-16.15 N0118 Martin Raab
G17 Mi,14.15-16.15 N0120 Klaus Holzapfel
G18 Mi,16.15-18.15 N0111 Stefan Schwoon
G19 Mi,16.15-18.15 N0116 Heiko Lötzbeyer
G20 Mi,16.15-18.15 N0118 Alexander Pretschner
G23 Mi,16.15-18.15 N0120 Birgit Schieder
GS2 Mi,16.15-18.15 S2229 Mark Scharbrodt


Informationen zu den Computeraufgaben

*

Die Bedienung des Tools für Computeraufgaben

  1. Loggen Sie sich auf einem sunhalle-Rechner ein (sunhalle1,...,sunhalle50) - auch per slogin von einem anderen Rechner.
  2. Starten Sie das Programm ~leaint/homework.
  3. Melden Sie sich mit Ihrem TU-Login und Ihrer Matrikelnummer an.
  4. Lösen Sie die Aufgaben. Auf der linken Seite des Fensters finden Sie eine Navigationsleiste, wo Sie die einzelnen Aufgaben durch Anklicken auswählen können. Alternativ können Sie sich auch mit dem Scrollbalken zu den einzelnen Aufgaben bewegen.
    • In die Eingabefelder können Sie ganze Zahlen eingeben.
    • Bei Multiple-Choice-Aufgaben klicken Sie die gewünschten Alternativen an (auch Mehrfachnennungen möglich).
  5. Wenn Sie fertig sind, klicken Sie auf "Fertig".

Hinweise:

  • Bis zum jeweiligen Abgabetermin können Sie das Tool beliebig oft starten. Dabei werden die zuletzt eingegebenen Lösungen angezeigt und können gegebenenfalls korrigiert werden.
  • Wichtig: Maßgeblich für die Punktevergabe ist der Stand zum Abgabetermin - wie auf dem Übungsblatt angegeben.
  • Bei Problemen wenden Sie sich an info4lea@in.tum.de.
  • Wenn sich das Programm nach dem Login mit der Meldung

    Program appears to be running. Start refused.

    beendet, können Sie das Problem beheben, indem Sie das Programm

    starten und den Anweisungen am Bildschirm folgen. Dieses Programm entfernt ein internes Lockfile.
*

Benutzung von SOLEA, dem Tool zur automatischen Korrektur von Programmieraufgaben

Achtung: Bei der Hausaufgabe 4 auf Blatt 3 haben sich leider beim Beispiel zwei kleine Fehler eingeschlichen: Die "4" in der vierten Zeile muß in eine "5" geändert werden! Ausserdem sollte man das Wort in der letzten Zeile z.B. in "aa" ändern.

Benutzen Sie bitte zum Programmieren das jdk 1.1.6. Wenn Ihr Programm fehlerfrei läuft, schicken Sie das Java-Sourcefile an die Adresse

solea@in.tum.de

ACHTUNG: die Datei darf keine als public deklarierte Klasse enhalten. Neu: die Datei darf mehrere Klassendeklarationen enthalten. Nur die letzte Klasse in dieser Datei darf eine main-Prozedur enthalten. Desweiteren bitte keine packages definieren. Man muss das Programm unabhängig vom Klassennamen mit javac source.java übersetzen können (source.java ist der Name unter dem der Sourcecode von SOLEA abgespeichert wird). Das Classfile muss dann mit java klassenname ausführbar sein. Wobei "klassenname" der Name der letzten Klasse in source.java ist.

Der Sourcecode wird automatisch compiliert und auf einer (großen!) Eingabedatei getestet. Wenn ihr Programm das richtige Ergebnis liefert, wird es akzeptiert, ansonsten bekommen Sie eine Mail mit einer kurzen Fehlerbeschreibung (Compiler-Fehler, Time-Out, falsches Ergebnis, ...).

In der ersten Zeile des Programms sollte der Name des Problems (bei Hausaufgabe 4 auf Blatt 3 "CYK") und Ihre Matrikelnummer stehen (bitte Spaces nicht vergessen). Das Programm sollte im Body der Mail sein, nicht als Attachment, es sollte sich also auch nur um eine Datei handeln!

Schicken Sie das Programm unbedingt von Ihrem Uni-Account aus, da sonst der Login nicht korrekt erkannt wird! Wir empfehlen, zum Verschicken mailx (also mailx solea@in.tum.de < source.java) zu verwenden, da zum Beispiel bei der Verwendung von netscape häufig das Problem auftrat, daß zusätzliche Zeilenumbrüche in den Code eingefügt wurden, die meist zu Compilerfehlern führen.

Der Body der Mail könnte also z.B. so aussehen:


// CYK 12345678

import java.io.*;
import java.util.*;

class JamesBrown {
  boolean isDead;
};

class JustATest {
  private static PrintStream out;
  private static StreamTokenizer tok;

  public static void main(String[] args) throws java.lang.Exception {
    int n;
    String s;
    JamesBrown jb = new JamesBrown();

    // irgendwas einlesen
    tok = new StreamTokenizer(new BufferedInputStream(System.in, 100000));

    tok.nextToken();
    n = (int) tok.nval;
    jb.isDead = (n == 1);
    tok.nextToken();
    s = tok.sval;

    // Schmarrn ausgeben
    out = System.out;

    out.println("hmmm ... ob das wohl akzeptiert wird?");
  }
}; 

Wenn Ihr Programm nicht gleich als korrekt erkannt wird: nicht gleich verzweifeln, ausrasten oder News-Flames starten :-), sondern erstmal genau das Ausgabeformat prüfen und unbedingt eigene Beispieleingaben erzeugen. Insbesondere sollte man sich Gedanken über etwaige Randfälle machen. Mit eine der Herausforderungen bei den SOLEA-Aufgaben (und auch sonst beim Programmieren) ist es, sich gute Testfälle zu überlegen.

Es wird eine automatische Prüfung auf doppelt, dreifach ... abgegebene Lösungen vorgenommen. Dabei werden auch leicht abgewandelte Lösungen erkannt! Wenn ein solcher Fall auftritt, erhält jeder der Betroffenen 0 Punkte.

Gruppenabgabe: Gegenwärtig ist es nicht möglich, Programmieraufgaben in Gruppen abzugeben. Insbesondere dürfen die Programme deshalb auch nicht gemeinsam implementiert werden (über den Algorithmus kann man aber natürlich diskutieren). Wenn Sie gemeinsam an der Implementierung arbeiten, wird dies höchstwahrscheinlich dazu führen, daß Ihre Lösungen als Duplikate identifiziert werden.


Sonstiges

* Zugriff auf interne Seiten: Bei einigen Seiten zum Übungsbetrieb ist der Zugriff aus datenschutzrechtlichen Gründen nur aus der Domäne .informatik.tu-muenchen.de erlaubt.