The course introduces the concepts and fundamental issues of the distributed systems. The system models and the communications in the distributed systems are discussed. The course covers the processes, naming and coordination in distributed systems.  Other issues such as: consistency and replication, security and fault tolerance are covered too.