Distributed Computing(Fundamentals and Systems)

Through this course, students will learn fundamental algorithms and principles in distributed computing systems, such as logical clocks, consensus problem, failure detection, Byzantine agreement, distributed locking, and gossip protocols. They will also learn how to design and analyze distributed systems using these fundamental algorithms and principles through the study of a number of advance distributed systems.