This course introduces the main principles and concepts underlying distributed systems: architecture, hardware concepts, processes, communication, naming, synchronization. Students will be familiar with some of the main paradigms in distributed systems. This course covers general introductory concepts in the design and implementation of distributed systems.

On the completion of the course, students will understand the fundamentals and applied techniques in distributed systems.