Übungen zu Übersetzerbau

Übungsmodus

  • Es gibt sieben (7) Übungen.
  • Die ersten sechs (6) davon sind obligatorisch.
    Die siebte Übung ist optional und kann die Note nicht mehr verschlechtern.
  • Pro Übung können maximal 24 Punkte erreicht werden.
  • Abgeschriebene Übungen führen bei allen Beteiligten sofort zu einem negativen Schein.
  • Die Übungsabgabe erfolgt in unregelmässigen Abständen jeweils bis Mittwoch um 20:15.
    Zu spät abgegebene Übungen werden nicht gewertet (0 Punkte auf diese Übung).
  • Ist mehr als eine Übung (oder die 6. Übung) mit 0 Punkten bewertet, wird ein negativer Schein ausgestellt.
  • Aufgrund von Einsparungsmaßnahmen können nicht mehr alle Übungen von den Tutoren korrigiert werden. Es wird folgendes Schema angewandt:
    Die 1., 6. und 7. Übung werden komplett korrigiert. Von den Übungen 2-5 werden nach dem Zufallsprinzip Stichproben korrigiert, von jedem Studenten jedoch mindestens eine der vier.
    Bei den nicht korrigierten Übungen werden sog. Abgabechecks durchgeführt und Bonuspunkte vergeben.
  • Für die Note wird der Punktedurchschnitt der korrigierten Übungen berechnet:
    (Summe der korrigierten Punkte + Summe der Bonuspunkte) / Anzahl der korrigierten Übungen
  • Notenschlüssel:
    ab Pkte Note
    21 Sehr gut (1)
    18 Gut (2)
    15 Befriedigend (3)
    12 Genügend (4)
    0 Nicht genügend (5)
  • Ab zwei abgegebenen Übungen wird ein Schein ausgestellt (positiv oder negativ).

Abgabe

Auf Papier

  • Titelblatt = vollständig ausgefüllter Angabezettel
  • Inhalt = ausgedruckter Quellcode, Dokumentation, Skizzen, ...
  • auf Papier sollen nur solche Teile abgegeben werden, die in der aktuellen Angabe gefordert bzw. für die aktuelle Übung geändert oder hinzugefügt wurden
  • alles außer dem Quellcode (Doku, ...) soll nur auf Papier abgeben werden
  • Keine Testfälle abgeben (auch nicht eigene)
    Eigene Testfälle sind zur Verbesserung der Musterlösung und zukünftiger Übungsangaben jederzeit willkommen: einfach direkt an die Übungsleiter schicken.

Elektronisch

  • Hier per HTTP abgeben.
    Hier finden Sie ein Liste der bereitsabgegebenen Übungen, um zu überprüfen, ob Ihre UE-Abgabe tatsächlich angekommen ist.
  • Nach Ablauf der Abgabefrist ist keine Abgabe mehr möglich (auch nicht per Mail an die Übungsleiter).
  • Anmeldung
        Login: kMatrNr
        Passwort: lt. Email
  • Pro Übung kann nur eine Datei abgegeben werden, die Sie aber bis zum letzten Abgabetermin (siehe Angabezettel bzw. Homepage) jederzeit wieder überschreiben können.
  • Die Abgabedatei muss ein ZIP-Archiv mit sämtlichen Quellcodedateien des lauffähigen Compilers sein. Daher auch unveränderte Angabe-Dateien mit abgeben!
  • Im ZIP-Archiv muss die Verzeichnis-Struktur (ssw/mj/...) enthalten sein.
  • Keine Testfälle abgeben (auch nicht eigene)
  • Keine Klassendateien (*.java) oder Projekt-Dateien abgeben.
  • Die Übungen 1 und 7 sind nicht elektronisch abzugeben, sondern nur auf Papier.

Bewertung der Übungen

Die Übungen werden nach folgenden Regeln bewertet:

  1. Zweifel an der Urheberschaft: Alle Beteiligten erhalten einen negativen Schein.
  2. Keine Abgabe (= zu späte Abgabe): 0 Punkte.
  3. Elektronische Abgabe oder Papierabgabe fehlt: 0 Punkte.
  4. Quellcode kompiliert nicht: 0 Punkte.
  5. JUnit-Testfälle laufen nicht, terminieren nicht (Endlosschleife) oder zeigen Errors: 0 Punkte.
  6. Wenn die Übung für einen Abgabecheck vorgesehen ist, werden Bonuspunkte vergeben:
    • Testfälle laufen ohne Failures: 3 Bonuspunkte.
    • Testfälle zeigen maximal 5 Failures: 2 Bonuspunkte.
    • Testfälle zeigen maximal 15 Failures: 1 Bonuspunkt.
    • Testfälle zeigen mehr als 15 Failures: Die Übung wird vom Tutor korrigiert.
  7. Wenn die Übung nicht für einen Abgabecheck vorgesehen ist, oder mehr als 15 Failures aufgetreten sind, wird die Übung vom Tutor korrigiert und mit Feedback-Kommentaren zurückgegeben. Es werden zwischen 0 und 24 Punkten nach den unten angegebenen Korrekturrichtlinien vergeben.
  8. Ist mehr als eine Übung (oder die 6. Übung) mit 0 Punkten bewertet, wird ein negativer Schein ausgestellt.

Richtlinien für Punkteabzüge

Fehler in der Funktionalität (Abzug je nach Art des Fehlers)

Die JUnit-Testfälle werden auch von den Tutoren verwendet. Bei den korrigierten Übungen sind sie jedoch nur eine Hilfestellung für die Tutoren, Punkte werden für die eigentlichen Fehler im Programmcode abgezogen, die zu den Failures führen. Es gibt daher keinen Zusammenhang zwischen der Anzahl der JUnit-Failures und der Anzahl der abgezogenen Punkte. Auch bei Übungen ohne JUnit-Failures können Punkte abgezogen werden.

Programmierung (jeweils -1 bis -3 Punkte)

  • Lösung nicht klar strukturiert
  • Zu komplizierte Lösung
  • Komplexität der Ausdrücke
  • Wahl der Datentypen (z.B. float statt int)
  • Nur verwendete Objekte deklarieren bzw. importierten
  • Unnötige Zuweisungen
  • "Toter" Programmcode
  • Umständliche Formulierungen, zum Beispiel:
    • Vergleiche auf true oder false:
      if (a == true)
      if (a == false)
    • sinnlose Verzweigungen:
      if (a) return true; else return false;
      if (a) return false; else return true;
  • Konkatenation von Strings in Schleifen ohne StringBuilder:
    while (...) { aString = aString + getString(...); }
  • Zugriff auf Schleifenlaufvariable nach Verlassen der Zählschleife (for)
  • Veränderung der Schleifenlaufvariable in der Zählschleife

Programmierstil (jeweils -1 Punkt)

  • Audruckslose Namen für Variablen und Felder
  • Schlechte optische Aufbereitung des Programmtextes (z.B. Einrückungen)
  • Schlechte oder sinnlose Kommentierung (Qualität geht über Quantität)
  • Konstante Werte im Programmtext statt benannter Konstanten
  • Unleserliche Ausdrücke (z.B. wegen fehlender Klammerung)
  • Wahllose Mischung deutscher und englischer Bezeichner
  • Schlechter oder inkonsistenter Stil (siehe Stilrichtlinien)

Generell: Bei keiner einzelnen Aufgabe werden mehr Punkte abgezogen, als erreicht werden können.