CS590CC: Cloud Computing and Distributed Systems
Fall 2019





  Lectures: CS590CC: Cloud Computing Tu/Th 8:30am-9:45am in CMPSCI 142
V. Arun (office hours: Tu/Th: 9:45am-10:30am or by appointment)


This course will teach the principles and practice of distributed systems as applied in today's cloud computing environments. The course will cover fundamental concepts in distributed computing including distributed clocks, consistency, fault tolerance, and consensus. The course will also cover popular cloud computing service models, related programming models, datacenter architectures, software-defined networking, and security and privacy issues in public clouds. The course will expose students to public cloud platforms such as Amazon EC2, Google Cloud Engine, Microsoft Azure etc. The assignments in the course will include a nontrivial programming component that assumes familiarity with multithreaded programming and network programming. Prerequisite: COMPSCI 377 or an equivalent first course in operating systems.

Course Materials

This course will cover material from the following textbook: Distribtued Systems: Principles and Paradigms (3rd edition), Tanenbaum and Van Steen. You should purchase or otherwise have regular access to a copy of this textbook. The course material will additionally include class slides and selected research papers and notes posted on the schedule page.  


You must have completed an undergraduate course in operating systems equivalent to CMPSCI 377 at UMass Amherst. An undergraduate-level knowledge of networking (CMPSCI 453 at UMass) is also strongly encouraged. The course's programming assignments will assume familiarity with multithreaded programming and network programming. The programming assignments will require familiarity with Java.


Homeworks (4 to 5) 20%
Programming assignments (4 to 5) 40%
Midterm and final 30%
Class participation 10%

Academic Policy Please read and abide by the UMass Acadameic Honesty Policy. You must do all homework and programming assignments by yourself.