Nummer

INF3212
Titel

Funktionale Programmierung
Art der Vorlesung

Wahlpflicht
ECTS 6
Arbeitsaufwand
- Kontaktzeit
- Selbststudium
Arbeitsaufwand:
180 h
Kontaktzeit:
60 h / 4 SWS
Selbststudium:
120 h
Veranstaltungsdauer 1 Semester
Häufigkeit des Angebots Jedes Semester
Unterrichtssprache Deutsch
Prüfungsform

Klausur + Übungsnote

Lehrform(en) Vorlesung, Übung
Inhalt

Diese Lehrveranstaltung nutzt die Programmiersprache Haskell, um grundlegende und praxisrelevante Konzepte der funktionalen Programmierung zu explorieren. Die ersten drei Wochen des Kurses führen die Teilnehmer in Haskell ein, danach werden weiterführende Ideen des funktionalen Paradigmas thematisiert: algebraische Datentypen; parametrische Polymorphie; Typklassen; domänenspezifische Sprachen und ihre Einbettung; Monaden; Parallelität. Das Material wird mittels Foliensatz, Tafelanschrieben und \emph{Live Coding} vermittelt.

Qualifikationsziele

Die Studierenden können grundlegende und weiterführende Konzepte der funktionalen Programmierung in Haskell nachvollziehen. Die Studierenden beschreiben komplexe Datenstrukturen mit den Mitteln des Haskell-Typsystems und entwickeln selbständig Programme, um anspruchsvolle algorithmische Probleme zu lösen. Fortgeschrittene Methoden zur Abstraktion sowohl von Daten (bspw. generalisierte algebraische Datentypen) als auch von Verhalten (z.B. Monad-Transformer) können analysiert und neu geschaffen werden. Die Studierende erschließen sich den Zugang zur weiterführenden Literatur und zu Forschungsthemen in der funktionalen Programmierung.

Vergabe von Leistungspunkten/Benotung
Lehrform
Status
SWS
LP
Prüfungsform
Prüfungsdauer
Benotung
Berechnung
Modulnote (%)
Teilnahmevoraussetzungen Es gibt keine besonderen Voraussetzungen.
Dozent/in Grust
Literatur / Sonstiges

Bird: Thinking Functionally

Hutton: Programming in Haskell

Bird/Wadler: Introduction to Functional Programming

Zuletzt angeboten Wintersemester 2021
Geplant für Sommersemester 2023
Zugeordnete Studienbereiche BIOINFM2510, INFM2510, INFM3110, MDZINFM2510, MEINFM3210