Last updated on 7th January 2016

Functional Programming

Graham Hutton
School of Computer Science
University of Nottingham

Module Information

The aim of this module is to teach the basic principles of functional programming, using the modern functional language Haskell. Broadly speaking, functional programming is a style of programming in which the primary method of computation is the application of functions to arguments. Among other features, functional languages offer a compact notation for writing programs, powerful abstraction methods for structuring programs, and a simple mathematical basis that supports reasoning about programs.


The coursework for the module comprises five exercise sheets and an extended programming exercise. The courseworks are assessed during the lab sessions, and will be released here at the appropriate points during the module.

Learning Material


      Book Cover

Lecture notes:

Useful Resources