COMPSCI 401 (2025 Spring)
Course Description
Cloud computing is the delivery of computing resources or applications over a network, as a utility (like water or electricity). Cloud computing allows customers and enterprises to pay for resources they use, while not owning any infrastructure. Cloud computing has revolutionized how applications are delivered to users and enterprises, reducing costs, improving availability, allowing dynamic scaling on demand, and improving performance.
In this course, we will discuss the motivations and trade-offs of moving to the cloud. We will study the technologies behind the main components of cloud computing: infrastructure, resource sharing, development platforms, and applications. The cloud computing infrastructure is based on large data centers that benefit from economies of scale; resource sharing is achieved through efficient virtualization of compute, network, and storage; flexible and powerful frameworks provide development platforms supporting different paradigms for building applications. This course will cover these pieces in-depth and how they combine to support cloud computing. Students will also obtain hands-on experience with two programming assignments that will employ modern cloud computing technologies and exercise best programming/DevOps practices.
Course Schedule
Date | Class topics | Readings | Activities | Assignments due |
---|---|---|---|---|
Week 1 | Logistics, Motivation, Elastic Computing, Cloud Types, Infrastructure | [DC] Chapters 1-4 | Lectures, Lab 1 | SSH key due (Thursday) |
Week 2 | Distributed Computing: MapReduce, Google File System, PageRank, Spark | [DC] Chapter 11 | Lectures | Release Assignment 1 (Thursday) |
Week 3 | Virtualization I: VM, Container | [DC] Chapters 5-7 | Lectures, Lab 2 | Release Presentation Topics |
Week 4 | Virtualization II: Virtual Network, Virtual Storage Automation and Orchestration I: Automation with Ansible | [DC] Chapters 9, 10 | Lectures, Lab 3 | Assignment 1 due (Thursday) Release Assignment 2 (Friday) Lab 3 Solution |
Week 5 | Automation and Orchestration II: Orchestration with Kubernetes Programming paradigms I: DevOps | [DC] Chapters 12 - 14 | Lectures, Lab 4, Midterm | |
Week 6 | Programming paradigms II: Microservice, Serverless I | [DC] Chapter 15 | Lectures, Lab 5, Lab 6 | Assignment 2 due (Wednesday) |
Week 7 | Serverless II, Review | [DC] Chapters 16, 17, 18 | Lectures, Presentations | Presentation slides due (Thursday) |