Introduction to Functional Programming in Haskell

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.

Recommended preparation

Curriculum context

  • BSc CS students pass this block course as part of "programming paradigms".
  • Guests welcome.

Teaching material

Recommended textbooks

  • "Programming in Haskell" by Graham Hutton. Cambridge University Press, 2007. Information available online. Some physical copies available in the local library.
  • "Learn You a Haskell for Great Good" by Miran Lipovańća. no starch press, 2011. Information available online including the book in some format.