Table of Contents
Fetching ...

Teaching Cloud Infrastructure and Scalable Application Deployment in an Undergraduate Computer Science Program

Aditya Saligrama, Cody Ho, Benjamin Tripp, Michael Abbott, Christos Kozyrakis

TL;DR

The paper tackles the gap in undergraduate cloud education by describing the design and inaugural offering of a 10-week course that treats cloud deployment as a software engineering practice. It combines provider-agnostic lectures with hands-on, IaC-centered assignments using AWS CDK, complemented by a final project that emphasizes scalable, secure cloud deployments. Key contributions include a detailed account of curriculum structure, infrastructure for course delivery, autograders and policy checks, and reflections on successes and challenges such as debugging, architectural freedom, and billing management. The work demonstrates a practical approach to equipping undergraduates with cloud-native design and deployment skills, and provides open-source course materials to help other institutions replicate or adapt the program for scalable, real-world impact.

Abstract

Making successful use of cloud computing requires nuanced approaches to both system design and deployment methodology, involving reasoning about the elasticity, cost, and security models of cloud services. Building cloud-native applications without a firm understanding of the fundamentals of cloud engineering can leave students susceptible to cost and security pitfalls. Yet, cloud computing is not commonly taught at the undergraduate level. To address this gap, we designed an undergraduate-level course that frames cloud infrastructure deployment as a software engineering practice. Our course featured a number of hands-on assignments that gave students experience with modern, best-practice concepts and tools including infrastructure-as-code (IaC). We describe the design of the course, our experience teaching its initial offering, and provide our reflections on what worked well and potential areas for improvement. Our course material is available at https://infracourse.cloud.

Teaching Cloud Infrastructure and Scalable Application Deployment in an Undergraduate Computer Science Program

TL;DR

The paper tackles the gap in undergraduate cloud education by describing the design and inaugural offering of a 10-week course that treats cloud deployment as a software engineering practice. It combines provider-agnostic lectures with hands-on, IaC-centered assignments using AWS CDK, complemented by a final project that emphasizes scalable, secure cloud deployments. Key contributions include a detailed account of curriculum structure, infrastructure for course delivery, autograders and policy checks, and reflections on successes and challenges such as debugging, architectural freedom, and billing management. The work demonstrates a practical approach to equipping undergraduates with cloud-native design and deployment skills, and provides open-source course materials to help other institutions replicate or adapt the program for scalable, real-world impact.

Abstract

Making successful use of cloud computing requires nuanced approaches to both system design and deployment methodology, involving reasoning about the elasticity, cost, and security models of cloud services. Building cloud-native applications without a firm understanding of the fundamentals of cloud engineering can leave students susceptible to cost and security pitfalls. Yet, cloud computing is not commonly taught at the undergraduate level. To address this gap, we designed an undergraduate-level course that frames cloud infrastructure deployment as a software engineering practice. Our course featured a number of hands-on assignments that gave students experience with modern, best-practice concepts and tools including infrastructure-as-code (IaC). We describe the design of the course, our experience teaching its initial offering, and provide our reflections on what worked well and potential areas for improvement. Our course material is available at https://infracourse.cloud.
Paper Structure (22 sections, 2 tables)