CS4740: Cloud Computing
Spring 2024, UVA CS

Course Overview

“Computing may someday be organized as a public utility just as the telephone system is a public utility.”
–John McCarthy, 1961

In today’s digital age, cloud computing has fundamentally transformed how we work, communicate, and interact. By leveraging distributed systems, it provides flexible and scalable solutions that cater to various computing demands, from storing vast amounts of data to running complex applications.

This is an undergraduate-level course which explores system perspectives of cloud computing, including key concepts and principles in the design and development of cloud systems. This course primarily emphasizes the perspective of system providers rather than users. The lectures cover distributed system concepts such as distributed communication models, synchronization, consistency, fault tolerance, as well as introduction to influential cloud infrastructure and frameworks. Students gain practical experience through the study of algorithms and the project of building distributed applications.

Prerequisite: CS 2130 (Computer Systems and Organization). Solid system programming skills are strongly recommended as this course includes heavy coding assignments.

Class Info

  • Time/Location: MoWe 2:00pm - 3:15pm, Olsson Hall 011
    • Initial classes will be conducted online due to an unexpected delay in the lecturer’s travel schedule. Students have both options to join the class via a) classroom streaming (Olsson Hall 011) b) online Zoom meeting (link posted on the Canvas). Note that teaching will transition to in-person classes only once the lecturer is back on campus
  • Instructor: Chang Lou
    • Email: chlou@virginia.edu
    • Temp Office Hours: MoWe 9:00pm - 10:00pm (from 1/22), online, the Zoom link is posted on Canvas
    • Office Hours: MoWe 4:00pm - 5:00pm, Rice Hall 304
  • Staff list
  • Online Discussion


  • Midterm exam: 20%
  • Final exam: 20%
  • Projects: 60%


  • Students will implement several distributed system projects individually. See Project.
Violation of UVA Academic integrity: Copying codes from other students' solutions, online solutions or submissions from previous years are considered as academic code violations and will lead to consequences. Students may discuss the assignments with others or help debugging, but sharing or copying each others' codes is strictly prohibited.


This course is developed heavily based on influential Distributed System courses including UIUC CS425 Distributed Systems , MIT 6.5840 Distributed Systems, Princeton COS418 Distributed Systems and Columbia COMS4113 Distributed Systems Fundamentals. Many thanks to Prof. Indranil Gupta, Prof. Robert Morris, Prof. Michael Freedman, Prof. Kyle Jamieson, Prof. Wyatt Lloyd for generously sharing their materials. A special thank-you to Prof. Roxana Geambasu for sharing her invaluable lessons and teaching insights.