Module Number

INF3212
Module Title

Functional Programming
Type of Module

Elective Compulsory
ECTS 6
Work load
- Contact time
- Self study
Workload:
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
Content

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.

Objectives

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
Status
SWS
Credits
Type of Exam
Exam duration
Evaluation
Calculation
of Module (%)
Prerequisite for participation There are no specific prerequisites.
Lecturer / Other Grust
Literature

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