Functional Programming

Module code: CO2107

Functional programming is one of the many programming paradigms available (others being object-oriented, functional etc.) - functional programming is declarative, designed on the concept of mathematical functions. In this module you will learn how to program in Haskell, which exemplifies the functional style. The flavour of functional programming is very different from that in an imperative language. Much of the irrelevant detail has been swept away.

In this module you will:

  • Demonstrate skilled use of basic functions and techniques to solve simple problems, with some practical applications
  • Define, in detail - numbers, lists, recursions and patterns
  • Explain high order functions and Haskell's mechanism for defining new datatypes
  • Explain Haskell monads
  • Solve simple and complex programming problems


  • 20 hours of lectures
  • 10 hours of tutorials
  • 20 hours of practical classes/workshops
  • 100 hours of guided independent study


  • Coursework (40%)
  • Exam, 2 hours (60%)