This is an introductory course on distributed systems. This course introduces the principles of distributed systems as well as some of the current influential large-scale distributed systems such as Google file system, MapReduce, Amazon Dynamo etc. To make the course more concrete, this course uses a series of labs requiring the students to build real distributed systems.
This course emphasizes on the general principles of building distributed systems in addition to introducing important practical distributed systems. For example, the various kinds of distributed consistency protocols will be discussed and such principles can be adopted in many kinds of real distributed applications. The current systems used by Googe, Amazon, Microsoft will be introduced.
Evaluation is based on homework assignments, the labs together with the final exam.