WiSe 2014/15













Submodulnummer Veranstaltungsform Name LP SWS / Prüfungsdauer
0088cA.1.1.1 Vorlesung Funktionale Programmierung 0 4.0
0088cA.1.1.2 Seminar am PC Funktionale Programmierung 0 2.0
0088cA.1.1.3 Modulprüfung Funktionale Programmierung 9 0 min
Qualifikationsziele: Die Studentinnen und Studenten kennen die Grundbegriffe zu Algorithmen und der funktionalen Programmierung. Sie können am Ende des Moduls: Beschreibungen und Quelltexte elementarer Algorithmen lesen und verstehen, elementare Algorithmen funktional entwerfen, Anforderungen an funktionale Programme spezifizieren, Beschreibungen von Programmkomponenten verstehen und diese in eigenen Programmen benutzen, einfache Programme an geänderte Anforderungen anpassen, strukturierte Programme entwickeln, Eigenschaften von funktionalen Programmen formal beweisen. Sie verstehen die Begriffe Laufzeit und Korrektheit und können diese Begriffe einsetzen. Sie haben ein grundlegendes Verständnis der Berechenbarkeit.

Inhalte: Studentinnen und Studenten erlernen die Grundlagen des Programmierens im Kleinen. Es werden die Grundlagen der Berechenbarkeit (Lambda-Kalkül, primitive Rekursion, Fixpunkte), eine Einführung in die Theorie der Programmiersprachen (Syntax (Backus-Naur-Form), operationale Semantik, Daten und Programm) gegeben. Es werden Konzepte funktionaler Programmierung (z. B. elementare Datentypen, Ausdrücke, Funktionsdefinition, Rekursion, Funktionsabstraktion, Closure, Funktionen höherer Ordnung, universelle Polymorphie) und deren Ausführung (Auswertungsstrategien) eingeführt. Es werden Techniken zum Beweisen von Programmeigenschaften (Termersetzung, strukturelle Induktion, Terminierung, Church-Rosser-Theorem) und deren Anwendungen (Typsysteme, Typherleitung und Typüberprüfung) eingeführt. Grundlegende Abstraktionen wie algebraische und abstrakte Datentypen und modularer Programmentwurf, sowie Nebenwirkungen (z. B. durch Monaden) anhand von Ein- und Ausgabe werden behandelt.