Functional Programming

Short Name
Funktionale Programmier.
Module Code
CS2333
Module Coordinator
  • Burkhardt Renz
Teacher
  • Prof. Uwe Meyer
  • Burkhardt Renz
  • Norman Ulbrich
Short Description
The course teaches the theoretical background of functional programming. The participants learn to apply the concepts to practical software projects.
Learning Objectives

The participants are able to apply the paradigm of functional programming to own software projects. They have a deep insight into the concepts of a functional programming language. The participants are capable of dividing complex problems by expressing and validating them in a functional way. They understood the theoretical background and are able to apply what they have learned to other programming languages.

Contents
  • Lambda calculus
  • Closures
  • Currying
  • Recursion
  • Higher-order functions
  • Referential transparency
  • Generators/infinite streams

Depending on the lecturer different languages are teached: Scheme, Scala, Clojure etc.

Duration in Semester
1
Instruction Language
German
Total Effort
6.0 CrP; an estimated 180 hours, of which approximately 60 are spent in class.
Weekly School Hours
4
Method of Instruction

Lecture 2 SWS, Exercises 2 SWS

Requirements for the awarding of Credit Points

Examination prerequisite: Group project to implement software using functional programming

Examination: Written or oral exam (The form of the examination will be announced to the students in a timely and appropriate manner)

Evaluation Standard
according to examination regulations (§ 9)
Availability
As Needed
References
  • R. Bird, P. Wadler: Einführung in die funktionale Programmierung, Hanser Verlag
  • B. O'Sullivan: Real world Haskell, O'Reilly
  • Piepmeyer, Lothar: Grundkurs funktionale Programmierung mit Scala Hanser
  • Odersky, Martin: Programming in Scala Artima
  • Bird, Scruggs, Mastropieri: Introduction to Functional Programming, Prentice Hall
  • S. Halloway, A. Bedra: Programming Clojure, 2nd Edition, O'Reilly
  • St. Kamphausen, T.O. Kaiser: Clojure, dpunkt.verlag