Principles and Applications of Concurrent Programming
The aim of the course is to introduce the principles of concurrency and concurrent programming languages. The main contents are processes, concurrency, synchronous and asynchronous communication, non-determinism, shared variables and resources, deadlock, safety and liveness, event-driven multithreads, real-time distributed and concurrent systems, concurrent programming languages (Java, CSP).