This course provides an in-depth exploration of distributed systems, focusing on the principles, algorithms, and architectures that enable multiple computers to collaborate and operate as a unified system. Students will learn the theoretical foundations and practical applications of distributed computing, emphasizing synchronization, coordination, and fault tolerance.