There are three programming assignments, which you should do in pairs. If you have a good reason for doing the assignments by yourself, please contact the lecturer.


Deadlines are hard! Please read these early and carefully!
Assignment 1 Date
Part I Sunday, January 28th (course week 2)
Part II Sunday, February 4th (course week 3)
Assignment 2 Date
Part I Sunday, February 11th (course week 4)
Part II Sunday, February 25th (course week 6)
Assignment 3 Date
Part I Sunday, March 4th (course week 7)
Part II Sunday, March 11th (course week 8)
Final Deadline: Monday, March 19th (exam week)

Your first serious attempt has to be submitted before the first deadline. Your last attempt has to be submitted before the final deadline. If you fail to do this, your submission will be rejected.

If you for some reason cannot make the deadline, contact us before the deadline, and tell us what your reason is, together with a realistic proposal of a new personal deadline for you. You may then get an extension of the deadline.


Assignments will be graded on a scale of 3 to 5 and will count towards your final grade on the course.

Assistants will send you feedback between three to four working days after submission.

On cheating

Cheating is taken very seriously! Cases being suspected of cheating will be reported to the Disciplinary Commitee for further investigation. In the worst case, this can lead to the student's exclusion from services such as lectures, computer rooms and exams.

Legit cooperation

Not all the form of cooperation among students are considered cheating. Here follow the rules of cooperation between students in this course.

Violating any of these rules might not be considered cheating by itself, but violating any of these rules without informing the lecturer is definitely considered cheating.

Remember: it is equally wrong to give your code to another student as it is to use another student's code.

It is possible that exceptions to these rules are granted, but only you should talk to the lecturer as soon as the problem arises.

GHC setup for Chalmers machines

The labs in this course require you to use a fairly recent version of GHC. Unfortunately, the version provided by default on the Chalmers machines is quite ancient. If you want to use the Chalmers machines for your lab work, you will need to add the directory /chalmers/sw/unsup64/phc/b/binh to your $PATH.

One way to achieve this is to run the following in a terminal:

echo 'export PATH=/chalmers/sw/unsup64/phc/b/binh:$PATH' >> $HOME/.bashrc

After executing the above command, close your terminal window and open a new one. Then check that everything works as expected:

ghc --version

GHC should then print:

The Glorious Glasgow Haskell Compilation System, version 7.10.2

If the version printed is 7.10.2, then you're all set up and good to go. Note that you only need to perform this setup once on your Chalmers account, as these changes persist across reboots.