Exam Guide for Programming Paradigms - Functional Programming
Please read this guide carefully if you are sitting the
G51PGP Programming Paradigms exam during the 2016/17 academic
year, as it contains important information and resources to help you
with your revision.
-- Graham Hutton, May 2017
The functional programming component of the exam will be based purely on the
content of the printed lecture notes that were made available to all students
at the start of the module. These lecture notes comprised the
for the lectures and a summary of the
prelude. If you wish to have another copy of the slides and the
prelude you can print these yourself using the two preceeding links.
Note that the material on lazy evaluation (chapter 15) was not covered this year and
is not examinable, and that no additional material beyond the content of
the printed lecture notes will be included in the exam.
The functional programming component of the G51PGP exam comprises two programming
questions, each of which is worth 25 marks. Unlike in some previous years,
there is no multiple-choice or essay question. A copy of the Haskell standard
prelude will be provided during the exam.
Work through the slides for each of the
lectures, 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. However, you can't
learn Haskell just by reading! Trying out programming examples
for yourself in GHC
should be a central part of your revision process.
Work through the exercise
sheets that comprised the two courseworks. The three sheets in
the first coursework are designed to emphasise the most important
aspects of Haskell, while the second coursework is designed to
give experience of writing a simple Haskell program.
Work through the past exam paper provided below. Don't worry
if you can't do everything in the past exam, as it is designed
to differentiate between students and produce an average mark
across the class of around 60%. The questions tend to start
with a couple of easier parts, and then get more difficult as
the question progresses.
The module is based directly on the book
Programming in Haskell,
and the slides follow precisely the same structure and content as the book.
Purchasing or borrowing a copy of the book and reading it in combination
with the slides is strongly advised. Trying out some of the exercises
in the book is also highly recommended.
The core of the module is lectures 1-6, which are covered in pages
1-72 of the book. Make sure that you know this material well, and
in particular are able to write simple functions using list
comprehensions (lecture 5) and recursion (lecture 6), as these are
the fundamental skills that students are expected to be able to
demonstrate. A good knowledge of lectures 1-6 should be sufficient
to obtain a pass mark in the functional programming component of the exam,
but a number of other modules and modern programming languages build upon
the foundations laid in this module, so students should aim for a good knowledge
of all the examinable material rather than just passing the exam.
Exam paper for the last academic year: