This online course is available to students from Carnegie Mellon's global campuses. Download a PDF Version of the syllabus.

This class is supported in part by an AWS Educate grant and a Microsoft Azure Educator Grant Award.

Course Links

Course Overview

Title: Cloud Computing

Units: 15-319: 9 units; 15-619: 12 units.

Pre-requisites for undergraduate students: A grade of "C" or better in 15-213.

Pre-quisites for graduate students: Knowledge of computer systems, programming and debugging, with a strong competency in at least one language (such as Java/Python), and the ability to pick up other languages as needed.

Description:

This project-based on-line course focuses on skill building across various aspects of cloud computing. We cover conceptual topics and provide hands-on experience through projects utilizing public cloud infrastructures (Amazon Web Services (AWS), Microsoft Azure and Google Cloud Platform (GCP)). The adoption of cloud computing services continues to grow across a variety of organizations and in many domains. Simply, cloud computing is the delivery of computing as a service over a network, whereby distributed resources and services are rented, rather than owned, by an end user as a utility.

Conceptually, the course will introduce this domain and cover the topics of cloud infrastructures, virtualization, software defined networks and storage, cloud storage, and programming models (analytics frameworks). As an introduction, we will discuss the motivating factors, benefits and challenges of the cloud, as well as service models, service level agreements (SLAs), security, example cloud service providers and use cases. Modern data centers enable many of the economic and technological benefits of the cloud paradigm; hence, we will describe several concepts behind data center design and management and software deployment. Next, we will focus on virtualization as a key cloud technique for offering software, computation and storage services. We will study how CPU, memory and I/O resources are virtualized, with examples from Xen and VMWare, and present real use cases such as Amazon EC2. Within the same theme of virtualization, students will also be introduced to Software Defined Networks and Storage (SDN and SDS). Subsequently, students will learn about different cloud storage concepts including data distribution, durability, consistency and redundancy. We will discuss distributed file systems, NoSQL databases and object storage. HDFS, CephFS, HBASE, MongoDB, Cassandra, DynamoDB, S3, Swift and Ceph Object Gateway will be presented as case studies. Finally, students will understand the details of the MapReduce programming model and gain a broad overview of the Spark, GraphLab programming models as well as message queues (Kafka) and stream processing (Samza).

For the projects, students will work with Amazon Web Services, Microsoft Azure and Google Cloud Platform, use them to rent and provision compute resources and then program and deploy applications that run on these resources. Students will develop and evaluate virtual machine (VM) and container scaling, elasticity and load balancing solutions. In addition, students will work with cloud storage systems and learn to develop different applications using batch, iterative and stream processing frameworks. 15-619 students will have to complete an extra project which entails designing and implementing a complete web-service solution for querying big data. For the extra project, the student teams are evaluated based on the cost and performance of their web service.

Logistics

Teaching Staff:

Prof. Majd F. Sakr
msakr@cs.cmu.edu, GHC 7006, x8-1161
Office hours: Tuesday, 3-4pm (Pittsburgh)

Prof. Seth Goldstein
seth@cs.cmu.edu, GHC 7111, x8-3828
Office hours: Wednesday, 3-4pm (Pittsburgh)

Teaching Assistants:
Haokang An <haokanga@andrew.cmu.edu>
Tianyu Chen <tianyuc@andrew.cmu.edu>
Cameron Dashti <cdashti1@andrew.cmu.edu>
Tze Yew Brian Ty Ho <tzeyewbh@andrew.cmu.edu>
Mrigesh Kalvani <mkalvai@andrew.cmu.edu>
Nikhil Khani <nkhani@andrew.cmu.edu>
Wendong Li <wendongl@andrew.cmu.edu>
Zhiqiao Lin <zhiqiaol@andrew.cmu.edu>
Jialing Liu <jialingl@andrew.cmu.edu>
Siyao Lyu <slyu@andrew.cmu.edu>
Chung-Yu Shao <cshao@andrew.cmu.edu>
Shyama Sankar Vellore <svellore@andrew.cmu.edu>
Cheng Wang <chengw1@andrew.cmu.edu>
Yang Wang <yangw3@andrew.cmu.edu>
Pengfei Wang <pengfeiw@andrew.cmu.edu>
Hochuen Wong <hochuenw@andrew.cmu.edu>
Ran Xian <rxian@andrew.cmu.edu>
Ruirui Xiang <ruiruix@andrew.cmu.edu>
Mengyun Yang <mengyuny@andrew.cmu.edu>
Shuqin Ye <shuqiny@andrew.cmu.edu>
Hongbao Zhang <hongbaoz@andrew.cmu.edu>
Yang Zhang <yangz4@andrew.cmu.edu>

Office Hours: Pittsburgh TAs hold office hours mostly on the fifth floor of GHC, office hours are posted on Piazza and here.

Recitations: Every Tuesday at 8 AM ET (videotaped) and Thursday at 4:30 PM ET Pittsburgh in GHC 4307 (SV Campus SV 118).

Tentative Schedule

The detailed schedule of content and quizzes is on OLI. The detailed schedule of the projects is on TheProject.Zone.

Image of Schedule