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.
Schedule
The load per week is 2 × 2 hour lectures and 2 × 2 hour working group. Attendance is not strictly mandatory, but strongly recommended.
Grading
The final grade depends on the two exams and the assignments.
-
The theory grade is T = 0.5 × grade of mid-term + 0.5 × grade of final exam. You need T ≥ 5 to pass the course.
-
The practical grade P = 0.2 × first practical + 0.4 × second practical + 0.4 × third practical. You need P ≥ 5 to pass the course.
Not participating in an exam means that you have a 0.0 for that exam. Not submitting a practical assignment means that you have a 0.0 for that assignment.
The final grade is computed as F = 0.5 × T + 0.5 × P. The final result of the course is:
-
Passed with grade F (rounded to one decimal place) if F ≥ 5.5 and T ≥ 5 and P ≥ 5.
-
Not passed with grade 5 if F ≥ 5.5 but T < 5 or P < 5
-
Not passed with grade 5 if 5.0 ≤ F < 5.5
-
Not passed with grade F otherwise
If you didn’t pass the course and your final grade is below 4, you are not eligible for any retake (see EER/OER).
If T < 5, you may attempt the retake exam. 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:
- T = MAX ( 0.5 × T1 + 0.5 × T2, 0.5 × T1 + 0.5 × T3, 0.5 × T2 + 0.5 × T3, T3 )
If P < 5, you may attempt the retake practical. For the practical retake you may resubmit one of the practical assignments you have previously attempted. If you choose the second or the third practical, you may start with your submitted work, but must do the retake individually. Teamwork will be treated as plagiarism.
If F < 5.5 and T ≥ 5 and P ≥ 5, you may attempt both the practical and exam retakes.
Contact the teacher to discuss lifting 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:
- The theory grade T is the grade of the first exam.
- The practical grade P is 0.333 × first practical + 0.667 × second practical.
When performing a retake exam, its grade will replace the entire theory grade.
Please contact the teacher if you want to make use of this arrangement.