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.
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:
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|
Students in this course will encounter the following tools on a weekly basis:
The full text of the above policies can be found here.
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.
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.
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!