The objective of the course is to gain an in-depth knowledge of the fundamental concepts in distributed systems and to understand the practical techniques for building distributed systems and applications.