Parallel Functional Programming – Programming AssignmentsDAT280 / DIT261, LP4 2018
Home | Schedule | Labs | Lectures | Exam | AboutFire | Slack | TimeEdit | Links
Parallel Functional Programming – Programming AssignmentsDAT280 / DIT261, LP4 2018
Home | Schedule | Labs | Lectures | Exam | AboutFire | Slack | TimeEdit | Links
There are four compulsory programming (lab) assignments in total. You have to pass all of these to get a pass on the course. There are also some optional programming exercises (which we strongly advise you to do). Some labs have extra assignments. These are for your own pleasure; there are no bonus points awarded. You are supposed to work in pairs, so please find a lab partner! Only under highly unusual circumstances do we allow people not to work in pairs. Please contact us in that case. We never allow 3 or more people in a lab group.

It is advisable that both students in a group are at a similar level. Otherwise, there is a risk that the more experienced student will do most of the work, and the other student will not learn much.

If you need to find a lab partner, please use the slack of the course to advertise your availability.

Compulsory Labs

Lab A: Parallel Programming in Haskell

Lab B: Tutorial Writing and Data Parallel Programming

Lab C: Parallelizing a Sudoku Solver

Lab D: Map-reduce in Erlang

Programming exercises (advised but not compulsory)

Lab J: Parallel Functional Programming in Java 8

Lab S: Programming in Single Assignment C

The Fire System

All lab assignments must be submitted using an electronic submission system called "Fire".

Remember to register both yourself and your lab partner in your lab group before you submit! By default, the submission system does not accept a submissions made by a single person.

The Fire system

Lab Supervision

There are no pre-booked lab slots or supervision. To get help, you should go to the office of one of the TAs, Max and Markus, at their scheduled office hours (or in extremis at some other time agreed in advance by email).


Each lab (except the first one) has two deadlines.

First deadline:

Final deadline (typically 1 week after first deadline):

Submitting after a deadline is in principle unacceptable. It is much better to submit what you have before the deadline, even if you are not happy with it. If you have a good reason for an extension – contact us before the deadline.

If you do miss a deadline, you may get a new chance at the end of the course. Otherwise, there is always a new opportunity to finish the labs next year or at the time of the reexam in August.


Cheating on labs is unacceptable. Cheating means:

On the other hand, it is fully allowed to orally discuss assignments and solutions. The course slack can be used for general and specific questions, but of course not for posting parts of solutions.

If you have problems, you should talk to us instead of copying from others. If needed, you may get more time and more help. If this is not enough, it is advisable to redo the course next year. This option makes much more sense than cheating.

Some cheating can be detected by the lab graders, when they discover similar solutions (e.g. same code, but different comments, layout, variable names, etc.). At the end of the course, we will also use automatic software that checks for similarity between all submitted solutions.

If we detect cheating, we will report all parties to the relevant disciplinary board. Our fervent hope is that you will all be sensible so that no problems with cheating arise.