MPCS 51083 Cloud Computing (Autumn 2022)

Section 1
Instructor(s) Vasiliadis, Vasilios (vas)
Location RY 277
Meeting Times Thursday 6pm - 9pm
Fulfills Elective Specialization - Application Development (APP-2)


Cloud computing is being widely adopted by enterprises of all sizes due to the low initial investment required, attractive operating costs, and elastic capacity that can best serve the highly variable demands of modern applications. Software engineers must be familiar with cloud computing technologies since many new applications they develop will be deployed “in the cloud”, and existing applications will often require integration with cloud-hosted services to take advantage of new capabilities.

This course provides an introduction to cloud computing with specific consideration for development of highly scalable (or so-called “web-scale”) web applications that leverage cloud infrastructure and platform services (IaaS and PaaS). We will also introduce software-as-a-service from the perspective of a consuming application. The course will emphasize practical applications of cloud computing technologies, with sufficient exploration of their theoretical underpinnings to inform architectural, design, and implementation decisions. We will use commercial cloud offerings provided by Amazon Web Services to build and deploy "real” cloud-hosted applications.

Please refer to the instructor's website for important details on how this course will be conducted:

Course Prerequisites

Core Programming

Other Prerequisites

This is a coding-intensive course and requires strong familiarity with Python and use of Linux commands, as well as simple shell scripts. Brief overviews of the various tools used will be provided and core concepts will be introduced as they are needed to complete assignments. Knowledge of web application development is not required, but students with little or no web development experience may find some assignments particularly challenging. Note: Students in past courses have struggled to keep up with homework assignments due to limited experience with Python and knowledge of the Linux command line. See the notes on this page for more detail on expected knowledge:

This course requires competency in Unix and Linux. Please plan to attend the MPCS Unix Bootcamp ( or review the UChicago CS Student Resource Guide here:

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 50103-1 -- Mathematics for Computer Science: Discrete Mathematics
  • MPCS 53014-1 -- Big Data Application Architecture
  • MPCS 51082-1 -- Introduction to Unix Systems

Eligible Programs

Masters Program in Computer Science MS in Computational Analysis in Public Policy (Year 2) MS in Molecular Engineering MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 1: Research-Oriented) Bx/MS in Computer Science (Option 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors)