CS4740 Cloud Computing

Neal Magee, Ph.D. email
Solution Architect, Research Computing
University of Virginia, Fall 2022

Course Description

This course investigates the architectural foundations of the various cloud platforms and examines both current cloud computing platforms and modern cloud research. Student assignments utilize the major cloud platforms. Prerequisite: CS 2150 with grade of C- or higher.

Cloud Computing has become an everyday term, but its meaning often remains unclear - it could mean Dropbox, Gmail, iCloud, Heroku, Carbonite, etc. For the purposes of this course, "cloud computing" makes up a specific way of creating, managing, and interacting with publicly-accessible, API-driven, computing infrastructure and services, so-called IaaS (Infrastructure as a Service).

We will discuss the technical, business, and practical reasons that cloud computing emerged, and the ways it has evolved in the last 15 years. Attention will be paid to the ways cloud computing - by empowering users to create and use infrastructure on demand and at scale - places additional risks and requirements upon the user, such as cost, security, and operational viability.


Fall 2022 - This course will be held in-person

This course is being offered in-person, Tuesdays/Thursdays from 11:00am-12:15pm in Thornton Hall E303. Map location

Office hours will be held online. Visit the #office-hours channel in Discord and we will use zoom breakouts as needed.


This course will emphasize hands-on experience in the creation, management, and consumption of cloud-based services. For the purposes of getting started I will assume that you fit roughly into at least one of three categories as you approach the subject:

  1. Developer
  2. Systems Administrator / Systems Engineer
  3. Data Scientist / Researcher

While some students often have some experience working in the cloud through projects or internships, we will make no assumptions about any previous experience with cloud concepts or services. Students of this course will learn how to create dynamic, secure, cloud resources according to best practices, with an emphasis upon creating reusable snippets of infrastructure-as-code.


Component Weight Notes / Due
Student Survey First week of class
Readings and supplemental material Weekly before class
Labs 20% Complete 10 required lab assignments
Programming Assignments 40% Complete 4 separate programming projects
Mid-Term Exam 20% October, 2022
Final Exam 20% December, 2022

Course Elements


Students in this course will encounter the following tools on a weekly basis:


  1. Disabilities or Learning Needs
  2. Religious Accommodations
  3. Career Development
  4. Student Support
  5. Harassment, Discrimination, & Interpersonal Violence

The full text of the above policies can be found here.

Honor Policy

The course will be conducted according to the UVA honor system. Programming assignments and exams are to be completed by the individual (no group collaborations). You will sign an honor pledge for all assignments, quizzes, and exams; more importantly, I expect you to adhere to the intent of the pledge. Cooperative efforts at understanding the material and technologies of the course are encouraged.

All suspected violations will be forwarded to the Honor Committee, and you may, at my discretion, receive an immediate zero on that assignment regardless of any action taken by the Honor Committee.

If you believe you may have committed an Honor Offense, you may wish to file a Conscientious Retraction by calling the Honor Offices at (434)924-7602. For your retraction to be considered valid, it must, among other things, be filed with the Honor Committee before you are aware that the act in question has come under suspicion by anyone. More information can be found at http://honor.virginia.edu. Your Honor representatives can be found at: http://honor.virginia.edu/representatives.

Illness & Other Absences

Students who are feeling unwell should not attend class. This includes fevers, nausea, or other symptoms of COVID-19 (as well as other common illnesses.) You will not be penalized for your absence. Please contact the instructor or a TA to notify them and coordinate on assignments and/or instructional content. It is highly recommended that you work with other students to get lecture notes from classes missed.

Other Details

Support or Contact

If you have a question about any aspect of this course - a particular topic, method, concept, etc. - please contact the TAs or instructor via Discord or email. It is often the case that you're not the only one having trouble understanding it!