Programmierparadigmen Klausur

· by

Inhalt
Dieser Artikel beschäftigt sich mit der Vorlesung „Programmierparadigmen“ am KIT. Er dient als Prüfungsvorbereitung. Ich habe die Vorlesungen bei Herrn Prof. Dr. Snelting im Wintersemester 2013/2014 gehört.

Behandelter Stoff

Vorlesung

Datum Kapitel Inhalt
23.10.2013 Funktionale Programmierung 10 Haskell: Quicksort, Listen, Filter, Cons-Operator
25.10.2013 Funktionale Programmierung 11 Haskell: filter, map, iter, foldr, foldl, Currying, Extensionalitätsprinzip, Kombinatoren (Summe, Produkt), flatten, cons, zip
30.10.2013 Funktionale Programmierung 12 Haskell: zipWith, short circuit evaluation, foldl, foldr, Unendliche Listen, Typen, Polymorphie
06.11.2013 Backtracking, Algebraische und rekursive Datentypen, map for trees, Typklassen
08.11.2013   Typklassen, Monaden
13.11.2013   Sichtbarkeitsbereich $\subseteq$ Gültigkeitsbereich; $\alpha$ / $\eta$-Äquivalenz, Redex; Funktion, die sich als eigenes Argument nimmt; $\lambda$-Kalkül ist Turing-mächtig
29.11.2013 Logische Programmierung Prolog
10.01.2014 Scala Kein ;, weniger verbose als Java, ...
15.01.2014 Scala Concurrency in Scala: Actors, react; MPI, OpenMP
22.01.2014 - X10: async, val, var
24.01.2014 - C (volatile)

Übungsblätter

Übungsblatt Inhalt
ÜB 0: Haskell Haskell installieren (siehe UbuntuUsers), Maximum dreier Zahlen berechnen
ÜB 1: Rekursive Funktionen in Haskell Potenzen, Primzahlen, Sortieren

Tutorium

16.12.2013

let f = \ x.plus x x in f (f c_2)    ^= (\ f. f (f c_2)) (\x. plus x x)

let wird wegen des Typsystems benötigt (let ist polymorph, \(\lambda\)-Term nicht).

let f = \x.1 in (f 7) + (f["a"])    ^= (\ f.   ) (\ x. 1)
    f: \alpha_5 -> int
    f: \forall \alpha_5. \alpha_5 \rightarrow int

Material

Klausurvorbereitung

Übungsbetrieb

  • Wo sind die Übungsblätter: Link
  • Abgabeform: auf Papier und via E-Mail
  • Abgabe: Datum steht auf den Übungsblättern; Ort: Kasten im Keller des Infobaus
  • Rücknahme: im Tutorium
  • Turnus: wöchentlich, erscheint am Donnerstag.
  • Übungsschein verpflichtend: Es gibt keinen Übungsschein.
  • Bonus durch Übungsschein: Es gibt keinen Klausurbonus.

Termine und Klausurablauf

Siehe Klausurtermine-Seite für zukünftige Termine (z.B. Programmierparadigmen am 23.09.2014)

Datum: Donnerstag, den 10. April 2014 von 14:00 bis 16:00 Uhr (Quelle)
Ort: Audimax (Quelle)
Punkte: 120
Punkteverteilung: Vermutlich etwas in dieser Richtung:

  • 25 Punkte: Haskell / Scala
  • 20 Punkte: Logische Programmierung
  • 25 Punkte: Typinferenz / Lambda-Kalkül
  • 10 Punkte: C
  • 10 Punkte: MPI
  • 10 Punkte: X10
  • 20 Punkte: Compilerbau

Bestehensgrenze: ?
Übungsschein: Gibt es nicht.
Bonuspunkte: Gibt es nicht.
Ergebnisse: stehen seit dem 17.04.2014 fest
Einsicht: am Mittwoch, den 30.04.2014, 14:00–16:00 Uhr in Raum 010, Informatikgebäude (Geb. 50.34) (bekanntgegeben über Vorlesungswebsite am 17.04.2014)
Erlaubte Hilfsmittel: (siehe Website)

Erlaubte Hilfsmittel für die Klausur sind alle Quellen in Papierform, insbesondere
  • Vorlesungsfolien der Veranstaltung Programmierparadigmen
  • Übungszettel und Beispiellösungen der Veranstaltung Programmierparadigmen
  • Bücher, Ausdrucke und beliebige eigenen Aufzeichnungen

Ergebnisse

Stehen seit dem 17.04.2014 fest.

Kritik

In der Vorlesung werden zu viele Inhalte behandelt. Eine Folge ist, dass nichts richtig behandelt wird. Außerdem erscheinen mir einige der Inhalte weder in der Wissenschaft noch in der Wirtschaft relevant zu sein (Prolog, X10). Ich würde vorschlagen, diese Inhalte zu entfernen. Wenn man der Meinung ist, dass man Parallelität mehr behandeln sollte, dann wäre vermutlich CUDA deutlich wichtiger als X10.