Introduction

COMP2221: Functional programming #

This is the course webpage for the functional programming part of COMP2221. It collects the exercise sheets, syllabus, and lecture slides. The source repository is hosted on GitHub.

The goal of the course is to provide an introduction to the functional programming language, Haskell. We will introduce the language and also try and show how developments in Haskell are adopted by other (perhaps more mainstream) languages, and why you might care.

Course organisation #

The course starts on Monday, the 8th of January 2024, at 3 pm in PH8.

Lectures #

Lectures take place in the first half of term 2 as follows:

Date/timeLocation
Monday 3pm–4pmPH8
Friday 10am–11amPH8

Furthermore, there is a revision lecture in the first week of term 3.

Practical sessions #

Practical sessions start in the second week of term 2. The practical sessions cover the exercises and take place as follows:

Date/timeLocation
Monday 1pm–3pmCB-LG001
Tuesday 11am–1pmCB-LG001
Tuesday 11am–1pmRH-0003
Tuesday 4pm–6pmRH-0003
Friday 4pm–6pmRH-0003

Further practical sessions take place in the first week of term 3 to cover the content of the mock exam.

Discussion forum #

I have set up a discussion forum where you can ask, and answer, questions. You’ll need a GitHub account to use it, but you’ve all got one of those already, right? Note that this repository and forum is publicly visible.

Office hours #

Please email me to arrange a meeting.

Other feedback routes #

Feel free to ask questions in the live sessions if you want, I will try and get to them all. You can of course, always email me.

Further resources #

A recommended textbook for the course is Graham Hutton’s Programming in Haskell. Some hardcopies are available in the library.

In addition, there a number of excellent introductory Haskell tutorials, which you may find enlightening (if you don’t like my explanations).

The Haskell wiki links to a number of tutorials.

A slightly cutesy, but nonetheless well-explained, introduction is provided by learn you a Haskell.

Acknowledgments #

The material on this website, and the website itself, were developed by Lawrence Mitchell, who delivered the Functional Programming course at Durham University in 2021 and 2022. Currently, the website is maintained by Laura Morgenstern.