Functional Programming 2015, TDA 452, DIT 142

Last updated 19-10-2015

Handy shortcuts

RSS Feed Widget

Purpose of the course

The course is an introduction to Functional Programming for students who know how to program. The students come mainly from the masters program at Chalmers and the University of Göteborg. Please note that you cannot include this course as part of a degree which already contains TDA555 (Introduction to Functional Programming). The contents are too similar (although the exam for this course is more demanding). If you took TDA555 or similar please consider TDA342 Advanced Functional Programming

Practical information

Monday Tuesday Wednesday

(To be decided; from week 2)

Contents of the course

These are from TDA452 2014. Content will be similar for this year. The timing needs to be adjusted for the new study schedule. Minor updates will be made as we go along.

Week 1:

Week 2:

Week 3:

Week 4:

Week 5:

Week 6:

(2014 we had a Guest lecture by Anton Ekblad, who told us about Haste, Haskell for Web Applications. Haste is the recommended approach to build simple GUIs for your project. It is also a cool research project in its own right. Anton will give us a tutorial on getting simple stuff done with Haste, and give us some insights into why it exists and where the project is going.)

Week 7+:

No lectures (Project work!)

Revision: coding of last year's exam will be made available online in early January.

Recent exams

Lab Assignments

In the table below you will find links to lab assignments which have to be handed in. For each assignment have a submission deadline at which you must submit your solutions. Your first submission is expected to be a serious attempt to complete the lab. If your submission does not pass (incorrect or simply badly coded) then you must resubmit. You have until the final deadline. The final deadline is absolute: it is the last possible date to hand in your solutions. If your solutions are not passed you get no further chances this term.

Note that the deadlines are firm and are controlled strictly by the lab reporting system. Therefore you must submit by the deadlines.

Submission deadline Final deadline (parts A & B)
Lab 1 Wednesday 2015-11-04 Friday 2015-11-12
Lab 2A Wednesday 2015-11-11
Lab 2B Wednesday 2015-11-18 Friday 2015-11-28
Lab 3A Wednesday 2015-11-25
Lab 3B Wednesday 2015-12-02 Friday 2015-12-13
Lab 4 Proposal Friday 2015-12-04
Lab 4 Project Friday 2015-12-16

Lab 4 is a mini project, to be presented to the graders around 16-18 December (date to be confirmed). A project proposal (a brief description of the plan) is to be submitted latest Friday 4 December for feedback (if necessary). In 2014 about 50% of the projects were required to make some small changes for later submission. See the lab description for more information.


Please read this link about how to get help!

Evgeny and Gregoire have open office hours listed below when you can drop in and ask questions about the lab assignments.

These drop-in times are valid from Monday of week 2.

Haskell Documentation and Other Resources

Haskell Installation (GHC) on your own machine

We recommend installing the Haskell Platform. Quote: The Haskell Platform is the easiest way to get started with programming Haskell. It comes with all you need to get up and running. Think of it as "Haskell: batteries included".

More Reading

Old exams (TDA 451)

Even older exams. These are a bit different from the current style, but there are some useful examples to be found.


The examination of the course has two parts: the weekly assignments and a written exam in the end of the course. To pass the course it is necessary to pass all home assignments and the exam. The exam dates are announced on the student portal .

Length: 4 hours

Some advice which you shouldn't really need: