By the end of the course you will be able to:
|
|
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.
|
|