Emailadressen der Tutor:innen
Jonah Brüchert <jonahbeneb02@zedat.fu-berlin.de>
Fabian Halama <fabiah94@zedat.fu-berlin.de>
Rashid Harvey <rh0457fu@zedat.fu-berlin.de>
Jonas Schäfer <jschaefer@zedat.fu-berlin.de>
Lukas Schenkel <lukas47@zedat.fu-berlin.de>
Lennart Schütte <lennas02@zedat.fu-berlin.de>
Grundlagen der Berechenbarkeit:
- Lambda-Kalkül
- primitive Rekursion
- µ-Rekursion
Einführung in die Funktionale Programmierung (Haskell):
- Syntax (Backus-Naur-Form)
- primitive Datentypen, Listen, Tupel, Zeichenketten
- Ausdrücke, Funktionsdefinitionen, Rekursion und Iteration
- Funktionen höherer Ordnung, Polymorphie
- Typsystem, Typherleitung und –überprüfung
- Algebraische und abstrakte Datentypen
- Ein- und Ausgabe
- Such- und Sortieralgorithmen
Beweisen von Programmeigenschaften:
- Termersetzung
- strukturelle Induktion
- Terminierung
Implementierung und Programmiertechnik:
- Auswertungsstrategien für funktionale Programme
- Modularer Programmentwurf
Literatur
- Miran Lipovača: Learn You a Haskell for Great Good!, no starch press, 2011 http://learnyouahaskell.com/chapters
- Marco Block, https://link.springer.com/book/10.1007/978-3-642-04718-3 ;
- Simon Thompson: Haskell: The Craft of Functional Programming, 2nd Edition, Addison-Wesley, 1999
- Graham Hutton: Programming in Haskell, Cambridge University Press, 2007
- Bird, R./Wadler, Ph.: Einführung in Funktionale Programmierung, Hanser Verlag, 1982
- Hans Hermes: Aufzählbarkeit, Entscheidbarkeit, Berechenbarkeit, Springer-Verlag 1978