Informatics 1 - Functional Programming

From HaskellWiki
Revision as of 01:42, 20 October 2016 by Dguthrie (talk | contribs) (Updated the page with recent and relevant information for the 2016 course.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The course Informatics 1 - Functional Programming is the first programming course taught to students at the School of Informatics of the University of Edinburgh.


For the year 2016, the course lecturer is Don Sannella [1].


The course consists of 20 lectures and 10 tutorials spread over the length of the first semester of the year (September–December). Each tutorial has its own set of exercises, and examination is by two programming tests.

Students' background

The course is aimed primarily at students with no prior programming experience.



The course textbook is Simon Thompson: Haskell, the Craft of Functional Programming. It is also recommended that students explore Miran Lipovača: Learn You a Haskell for Great Good, which is free online, as well as readily available from book shops. [2]


The text editor used in the course is Emacs in Haskell mode.

Students may also be interested in running Xmonad, which is written in Haskell, to show their devotion to the cause.


Most exercises require students to verify their code using QuickCheck, where writing appropriate test properties is part of the challenge. In addition, some tutorial exercises use OpenGL graphics, and depend on the following packages:

Previous incarnations of the course relied on GLFW instead of GLUT. QuickCheck can be installed via Cabal, the Haskell package and build system.

GHC Installation

For some brief notes on installing ghc on windows see Informatics 1 Windows Installation


Information about the tutorials is available here, including groups and times.

In addition to the regular tutorials, advanced tutorials are held starting week 4. This is a drop-in session for students who want extra challenges and in-depth work. These sessions are quite popular, so it is expected that students have made an attempt at some of the optional exercises, so that we can fit students in the small tutorial room who will get value from the session.


There are several ways of getting help with your FP course (or with any aspect of the informatics 1 coursework). Some of these involve using Internet Relay Chat, or IRC.

The Informatics 1 channel is #inf1 on Here you will find fellow 1st year students who are all doing the same work as you, along with a variety of higher students who will help you. There are several first years as well as several people in older years (and indeed, those who have left school) who idle on the channel, and will be more than happy to answer any problems, or just talk about life, experience, and advice.

You can also get a lot of help from CompSoc, which is the university-wide Computing Society. You will find members on IRC channel #compsoc.

Peer support is available in the form of INF-PALS. Please see [3].