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

DateClass topicsReadingsActivitiesAssignments due
Week 1Logistics, Motivation, Elastic Computing, Cloud Types, Infrastructure[DC] Chapters 1-4Lectures, Lab 1SSH key due (Thursday)
Week 2Distributed Computing: MapReduce, Google File System, PageRank, Spark[DC] Chapter 11LecturesRelease Assignment 1 (Thursday)
Week 3Virtualization I: VM, Container[DC] Chapters 5-7Lectures, Lab 2Release Presentation Topics
Week 4Virtualization II: Virtual Network, Virtual Storage
Automation and Orchestration I: Automation with Ansible
[DC] Chapters 9, 10Lectures, Lab 3Assignment 1 due (Thursday)
Release Assignment 2 (Friday)
Lab 3 Solution
Week 5Automation and Orchestration II: Orchestration with Kubernetes
Programming paradigms I: DevOps
[DC] Chapters 12 - 14Lectures, Lab 4, Midterm 
Week 6Programming paradigms II: Microservice, Serverless I[DC] Chapter 15Lectures, Lab 5, Lab 6Assignment 2 due (Wednesday)
Week 7Serverless II, Review[DC] Chapters 16, 17, 18Lectures, PresentationsPresentation slides due (Thursday)