Functional Programming

Exam Guide


Please read this guide carefully if you are sitting the Programming Paradigms exam in 2024, as it contains important information and resources to help you with your revision.

Graham Hutton, University of Nottingham

Assessment Format

The exam this year is an in-person written exam that must be completed in a 2-hour period. It is a closed book exam, i.e. no materials can be taken into the exam.

The functional programming component of the exam will be an essay question.

Examinable Material

The essay question will be based on the lecture slides, lecture videos, and summary of the Haskell standard prelude that was provided, and will involve writing Haskell code.

Electronic copies of all of these materials are also available on Moodle.

Study Advice

Work through the lecture slides and lecture videos, and make sure that you are able to understand and reproduce most of the examples, as these or variations on them often come up in the exam in some form. However, you can't learn Haskell just by reading! Trying out examples for yourself in GHC should be a key part of your revision process.

Review your solutions to the exercise sheets and coursework. The three one-page exercise sheet are designed to emphasise the most important aspects of Haskell, while the main coursework is designed to give experience of using several features of Haskell in combination.

The module is based directly on the book Programming in Haskell, and the slides follow the same structure and content. Reading the book in combination with the slides would be helpful to your revision. Trying out some of the exercises in the book is also recommended.

The core of the module is the first half of the course (up to the lecture on recursion), which is covered in chapters 1-6 of the book. Make sure that you know this material well, and are able to write simple functions using list comprehensions and recursion, as these are the fundamental skills for the module. A sound knowledge of this material should be sufficient to obtain a pass mark in the functional programming component of the exam, but to obtain a good mark you will need to be familiar with all of the examinable material. Moreover, a number of other modules and programming languages build upon the foundations laid in this module, so it important to understand all the concepts rather than just aiming to pass the exam.

Past Paper

Exam paper for the last academic year: