This module is an introduction to functional programming using the language Haskell. 40% coursework assessed via a single programming assignment in Haskell, and fully supported by weekly laboratory sessions.
The main topics covered are:
- Practical problem solving methods using functions, recursion, and lists
- Higher order functions for modelling templates in language design
- Integrating functional programming with object oriented programming
By the end you will appreciate the theory and have practical experience of functional programming problem solving, such as how to place eight Queens on a chess board such that no two are in check.
15 CATS (7.5 ECTS)