This course page was updated until March 2022 when I left Durham University. For future updates, please visit the new version of the course pages.

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 will run over five weeks on Mondays (4pm) and Fridays (1pm) starting on 10th January 2022 in D110 (Archaeology).

In the first two weeks of term (weeks beginning 10th and 17th January), the lectures are online only.

You can attend remotely over zoom, and will need to be authenticated with your Durham account.

Meeting ID: 947 3789 7412
Passcode: 756154

Running code #

I will do a bunch of live coding during the lectures. You’re encouraged to play around with things afterwards to make sure you understand stuff. All of the code will appear in the course repository in ./code/lectures/2021-22/.

Practical sessions #

There are five weeks of practical sessions which will start in the first week of term. We’ll cover the exercises, and any other queries you might have.

In the first week of term (week beginning 10th January), practicals are online only.
Monday 2pm–4pmE216A
Thursday 11am–1pmRH025
Friday 2pm–4pmRH025
Friday 2pm–4pmRH025

You can attend remotely over zoom, and will need to be logged in with your Durham account.

Meeting ID: 995 6258 9739
Passcode: 283067

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 #

Open office hours (no appointment needed) will be advertised here.

If you need to get in touch some other time, please email me to arrange something.

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. Finally, I’ve set up a feedback submission form (which records responses anonymously, though you’ll need to be signed in with you Durham account) for you to optionally comment on things that were good, bad, or you didn’t understand about the lectures.

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.