Concurrency
Beschrijving
Course goals
| Leerdoelen | Programmeer- opdrachten |
Toetsen |
| De student: | 10%+2x20% | 25%+25% |
| kan een ‘multi-threaded’ applicatie ontwerpen en implementeren, gebruikmakend van technieken en concepten als threadbeheer, en synchronisatie. | X | X |
| begrijpt het verschil tussen gelijktijdigheid (‘concurrency’) en parallellisme en hoe bijbehorende technieken worden toegepast om problemen op te lossen. | X | |
| kan de complexiteit (zoals ‘work and span’) van parallelle algoritmen berekenen. | X | |
| kan redeneren over eigenschappen van een gelijktijdig algoritme. | X |
Assessment
There are two exams, each covering half of the course and counting for half of the theory grade. The exams are closed-book and are done individually.
There are three practical assignments. The first is an individual assignment while the second and third are made in pairs or individually. The first assignment counts for 20% in the practical grade, and the others both count for 40%.
The final grade is the average of the theory grade and the practical grade. To pass the course, the theory grade and the practical grade must both be at least be a 5.0, and the final grade must at least be a 5.5.
Content
The course introduces concepts of concurrency and parallelism through the programming language Haskell.
Concrete topics treated in this course include explicit management and synchronization 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 behavior when executed concurrently.
Course form
Per week 2 × 2 hour lecture and 2 × 2 hour tutorial). Attendance is not strictly mandatory (albeit recommended).
Additional information
Reviews0 reviews
Heb jij dit vak gevolgd?
Deel je ervaring met toekomstige studenten. Inloggen met je Universiteit Utrecht mailadres duurt één minuut.
Schrijf een review