Course description

The course introduces concepts of concurrency and parallelism through the programming language Haskell.

Concrete topics treated in this course include explicit management and synchronisation of threads, as well as higher-level concurrency and parallelism abstractions. These ideas appear not only in Haskell, but in other modern languages such as C#, Scala, and Swift. An important part of the course is devoted to reasoning about the properties of concurrent programs.

The language Haskell imposes a strong separation between pure computations, which are always safe to execute in parallel, and those with side-effects, which may result in non-deterministic behaviour when executed concurrently.


The load per week is 2 × 2 hour lectures and 2 × 2 hour working college. Attendance is not strictly mandatory, albeit recommended.


The final grade depends on the two exams and the assignments.

The final grade is computed as F = 0.5 × T + 0.5 × P. If you have done all of the practicals and exams, then the final result of the course is:

If you have not submitted one of the practical assignments, or have not taken any of the exams, then the final result is:

If you didn’t pass the course, you may do a retake if the final result is at least a 4 or AANV (see EER/OER). You may attempt the retake exam if T < 5. There will be a single retake exam covering the entire content of the course. Your final theory grade will then be whatever combination of the three exams that (a) covers the entire course content; and (b) gives you your highest final grade. That is:

You may attempt the retake practical if P < 5. For the practical retake you may resubmit one of the practical assignments you have previously attempted. If you choose the second or third practical, it must be done individually.

If F < 5.5 and T ≥ 5 and P ≥ 5 you may attempt both the practical and exam retakes.

Contact me to discuss transporting practical results from previous years.

Grading for 5EC for exchange students

Exchange students that leave before Christmas can follow this course for 5EC. The third practical assignment and the second exam are then not part of the course. The final grade is then computed with the following changes:

When performing a retake exam, its grade will replace the entire theory grade.