Praxis der Funktionalen Programmierung - Zeitplan
Abschnitt 1: Einfache Programme (Grafik)
Themen:
- Parkettierungen
- klassische
- hyperbolische
- nichtperiodische
Bemerkung: das geschieht auch zu Ehren des berühmten Geometers Felix Klein.
Sein Erlanger Programm fordert, Geometrie als Theorie von Bewegunsgruppen
zu betrachten.
Klein gründete vor 150 Jahren das Leipziger Mathematische Institut.
- Wörter und Bäume
- Lindenmayer-Systeme
- vermeidbare Muster
- PCP
Bemerkung: hier verstecken sich einige offene Fragen aus der Theorie
Formaler Sprachen. Man kann mit den Programmen "experimentelle Mathematik"
betreiben und das gern zu einer Diplomarbeit ausweiten.
Fertigkeiten:
- Ausdrücke, Funktionsdefinitionen
- einfache Typen (Bool, Char, Integer)
- Listen
- naive IO
- unendliche Listen
- Typklassen
Abschnitt 2: Fortgeschrittene Programme (Musik)
Themen:
- Musik-(Midi-)Datenströme
- dafür eine Beschreibungssprache
- deren Semantik (Interpretation)
- deren Syntax (Parser)
Fertigkeiten:
- IO als [Antwort] -> [Frage]
- domainspezifische eingebettete Sprache entwerfen
- Konstruktorklassen
- Funktoren und Monaden
- Parserkombinatoren
Abschnitt 3: Reaktive Grafik (Spiele, Musik)
Themen:
- Einfache Spiele (Hex, Atari-Go)
- GUI für den Midi-Sequencer
Fertigkeiten:
- Begriffe (der Spiele) modellieren
- GUI mit FranTk bauen
- Echtzeit und Buffering
Abschnitt 4: Die Außenwelt (d. h. C)
Themen:
- Low-Level-Midi-Programmierung
- Low-Level-Grafik-Programmierung
- Jongliersimulator (= Musik-Sequencer mit neuem Backend)
Fertigkeiten:
- Haskell-C-Bindung mit greencard selbst definieren
- HOpenGL-Bindung benutzen
- Programm auf neuen Anwendungsbereich portieren