Intended learning outcomes
Students who successfully complete this course unit will be able to:
- Correctly develop application-level programs for execution in multi-threaded environments, with emphasis on managed platforms such as the JVM (Java Virtual Machine) and the .NET platform. Identify and correctly handle concurrency scenarios, including the design of custom synchronizers and the guarantees provided by memory models.
- Correctly use the common application-level asynchronous programming models available, namely futures, asynchronous methods, coroutines, and reactive streams.