Last updated on 30th July 2015

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.

If you are resitting the module, please read the resit exam guide carefully, as it contains important information and resources to help you with your revision.


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.

Five exercise sheets:

Extended programming exercise:

Learning Material


      Book Cover

Lecture notes:

Useful Resources