The course covers fundamental models for distributed systems, inter process communication and how to handle synchronization, consistency, replication, fault tolerance and security in a distributed system. The course consist of a series of lectures and seminars that include practical assignments.