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.


Please read these early and carefully!

Deadlines are hard!

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.

Assignment 1 Date
Part I January 29th (course week 2)
Part II February 5th (course week 3)
Assignment 2 Date
Part I February 12st (course week 4)
Part II February 26th (course week 6)
Assignment 3 Date
Part I March 5th (course week 7)
Part II March 12rd (course week 8)

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

Final Deadline: March 19th (Sunday, exam week)


Assignments will be graded on a scale of 3 to 5 and will count towards your final grade on the course. Your last attempt has to be submitted before the final deadline. If you fail to do this, your submission will be rejected.

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.