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).
None