en | de

Functional Programming

bachelor program

VO2 + PS1  WS 2009/2010  703017 + 703018


The course provides an introduction to functional programming, covering both, practical examples using OCaml (a non-pure and strict functional language) and theoretical background.

week  1: historical overview, OCaml introduction
week  2: lists, polymorphism, higher-order functions
week  3: modules, strings
week  4: user-defined types, trees
week  5: sets, lambda-calculus
week  6: evaluation strategies, implementing lambda
week  7: induction, reasoning about functional programs
week  8: efficiency, tail-recursion
week  9: combinator parsing
week 10: types, type checking
week 11: type inference
week 12: lazy evaluation, infinite data structures
week 13: monads
week 14: advanced topics


Amongst other sources the course incorporates material from the following books (in order of relevance for this course):


The lecture (VO) and the exercise course (PS) are taught in German but the course material (slides, lecture notes, etc.) is in English since it is the de facto standard language in computer science. On demand also an English exercise course is possible (not in addition to but instead of a German one).