Coordinates

11 January 2013 (Friday), 2pm-6pm, M001

12 January 2013 (Saturday), 11am-3pm, M 001

Summary

This block course will provide a non-trivial introduction to functional programming in Haskell. The introduction is also useful for those who are interested in functional programming more broadly or in other specific functional programming languages such as F#, OCaml, or Scala. The course will cover all the basic of functional programming such as functions, datatypes, recursion, pattern matching, higher-order functions, and polymorphism, but it will also drill into slightly more advanced territory such as parser combinators, generic programming, type-class polymorphism, algebraic structures, equational reasoning, and applications to language processing.

Prerequisites

Attendees are supposed to be fluent in some modern programming language and to be somewhat aware of the basics of functional programming (such as the basic notion of functions in the lambda calculus). Usually, those basics would have been provided in courses such as introduction to CS, programming techniques and technologies, and programming language theory.