- Wintersemester 2023/24

Kontakt und Sprechstunden

Dominik Scheder

Haus G II, Zimmer 105

vorname.nachname@gmail.com

Teaching Assistant: Erik Schellenberger, vorname.nachname@stud.hszg.de

Kontaktieren Sie mich persönlich oder per E-Mail oder kommen einfach auf Verdacht vorbei.

Programmierparadigmen im Modulkatalog


Prüfung

  1. Vorleistung / Testat. Hierzu führen wir im Verlauf des Semesters zwei bis drei Programmierprojekte durch:

    • Ein Geometrie-Projekt in Kapitel 3.2. Abgabetermin: Sonntag, 3. Dezember 2023.
    • Eine Web-App zu Booleschen Formeln in Kapitel 4.8, auf der ein Nutzer Formeln eingeben kann, zu denen dann automatisch eine Wahrheitstabelle gebaut wird. Hauptherausforderung ist der Parser, also die Funktion, die einen String wie ((x & y) | (!z)) in ein passendes Elm-Objekt umwandelt. Abgabetermin: Sonntag, 21. Januar 2024.
    Herr Schellenberger (der TA) und ich werden Ihnen die graphische Oberfläche zur Verfügung stellen. Sie müssen dann nur die Programmlogik implementieren (Sie müssen also sich nicht um die graphische Darstellung kümmern).
  2. Bei bestandenem Testat mündliche Prüfung (20 Minuten). Zur Vorbereitung können Sie gerne die Testataufgaben vom Wintersemester 2022/23 nutzen. Damals haben wir auch noch Racket verwendet; ignorieren Sie die Racket-Aufgaben einfach.

Schwerpunkte der mündlichen Prüfung

Eine Schwerpunktliste für die Prüfung werde ich gegen Ende des Semesters hier hochladen, sobald klar ist, welche Themen wir geschafft haben, in dem Kurs zu behandeln. Grundsätzlich ist alles, was in der Vorlesung drangekommen ist, potentiell Prüfungsstoff. Insbesondere:
  • Kontrollstrukturen wie if ... then ... else ..., case x of ... und let ... in ....
  • Funktionsaufrufe. Signatur und Implementierung. Was sie bedeuten bzw. wie sie ausgewertet werden.
  • Semantik: Auswertung von Ausdrücken. Sie sollten einen Elm-Ausdruck zumindest konzeptuell von Hand auswerten können.
  • Rekursion. Bedeutung von Endrekursion.
  • Datentypen: primitive Typen, Tupel, Records und Custom Types (insbesondere mit Ladegut). Rekursive Datentypen wie Listen. Dekonstruktion (vgl. zweites Projekt:
        case f of 
            And g1 g2 -> 
                ...
  • Die Funktionen List.map, List.filter, List.foldl und das Prinzip des Currying.
  • Die Architektur von Elm-Apps mit Model, Msg, init, update, view.

Literatur

  • Programmierparadigmen: Eine Einführung auf der Grundlage von Racket. Wagenknecht, Christian. Auf springer.com online verfügbar, wenn Sie im Hochschulnetz sind.
  • Programmierparadigmen - Eine Einführung auf der Grundlage von Scheme. Wagenknecht, Christian. Wiesbaden: Vieweg+Teubner, 2004.
  • Online-Tutorial für Elm

Programmierparadigmen in früheren Jahren: