Module Number

Module Title

Functional Programming
Type of Module

Elective Compulsory
Work load
- Contact time
- Self study
180 h
Class time:
60 h / 4 SWS
Self study:
120 h
Duration 1 Semester
Frequency Each Semester
Language of instruction German
Type of Exam

Exam + exercise grade

Lecture type(s) Lecture, Tutorial

This course uses the Haskell programming language to explore fundamental and practical functional programming concepts. The first three weeks of the course introduce students to Haskell, after which more advanced ideas of the functional paradigm are addressed: algebraic data types; parametric polymorphism; type classes; domain-specific languages and their embeddings; monads; parallelism. The material will be taught by of slide sets, blackboard notes and live coding.


Students will be able to understand basic and advanced concepts of functional programming in Haskell. Students describe complex data structures using the Haskell type system and independently develop programs to solve challenging algorithmic problems. Advanced methods for the abstraction of both data (e.g. generalized algebraic data types) and behavior (e.g. Monad Transformer) can be analyzed and created. Students develop access to advanced literature and research topics in functional programming.

Allocation of credits / grading
Type of Class
Type of Exam
Exam duration
of Module (%)
Prerequisite for participation There are no specific prerequisites.
Lecturer / Other Grust

Bird: Thinking Functionally

Hutton: Programming in Haskell

Bird/Wadler: Introduction to Functional Programming

Last offered Wintersemester 2021
Planned for Sommersemester 2023
Assigned Study Areas BIOINFM2510, INFM2510, INFM3110, MDZINFM2510, MEINFM3210