en | de

Functional Programming

bachelor program

VO2 + PS1  WS 2008/2009  703017 + 703018


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

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: type checking, type inference
week 11: lazy evaluation, infinite data structures
week 12: monads
week 13: 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).