Oopm1516 Ex11

Zielsetzung für die Übung

  • Q&A

Klausur bezogene Fragen:

  • Welche Themen kommen in der Klausur vor?
    • Algebraische Spezifikation
    • Konkrete Syntaxdefinition
    • Rekursive Funktionen
    • Der Satz von Böhm-Jacopini
    • Suchen und Sortieren
    • Spezifikation abstrakter Datentypen
    • Implementation abstrakter Datentypen
    • Beweis von Eigenschaften
    • Testen von Programmen
    • Numerische Verfahren
    • Vor- und Nachbedingungen
    • Das Hoare-Kalkül
    • Komplexität von Algorithmen
    • Komposition und Vererbung
    • UML-Klassendiagramme
    • Generische Typen
    • Objektorientierte Verträge
  • Wird bei der 1/3 Regelung bei 10 Theorie und Praxisaufgaben auf oder abgerundet?
    • Es wird ABGERUNDET (zu gunsten des Studenten)

Inhaltliche Fragen::

  • Was sagt der Satz von Böhm-Jacopini aus?
    • kurz: Jede Funktion kann alleine mit Sequenzen, Verzweigungen und Iterationen dargestellt werden.
  • Ist in der Aufgabe 1 der Probeklausur ein Fehler?
    • Ja, -> anstatt x (richtig: function doubleSalary : Salary -> Salary)
  • Was ist bei der Komplexitätsbestimmung relevant?
    • kurz gefasst: Alle Schleifendurchläufe müssen in Abhängigkeit von n bestimmt werden. Aus dem größten Aufwand ergibt sich die Komplexitätsklasse.
  • Warum entspricht die Musterlösung der Aufgabe 2 "Konkrete Syntaxdefinition" der Probeklausur nicht dem aus der Übung und Vorlesung bekannten Format?
    • Die Musterlösung der Probeklausur entspricht in der Aufgabe 2 "Konkrete Syntaxdefinition" nicht der von uns eingeführten Schreibweise. Der Syntaxbaum wurde nur aus technischen Gründen in diese Bullet-Schreibweise überführt (was übrigens mit jedem Baum möglich ist). Wir erwarten weiterhin in Klausurlösungen gezeichnete Bäume. Es wurden keine Punkte dafür abgezogen, dass sich die Schreibweise an der bekannten Schreibweise aus der Übung orientiert hat und nicht an der hier verwendeten Bullet-Schreibweise.
  • Musterlösung Ass03 A1 richtig?
    • Ja, ist richtig. Man kann den Javacode mit prints versehen um dieses Ergebnis zu erhalten. In jeder Rekursionstiefe (Spalte) wird zuerst n-1 und dann n-2 vollständig abgearbeitet.

Zielsetzung für das Programmierpraktikum

  • Generizität
    • vorhandene generische Typen behandeln/besprechen
    • generischen Typen/Klassen erstellen