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

Course Links

Course Overview

Title: Cloud Computing

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

Pre-requisites: A ā€œCā€ or better in 15-213, Knowledge in Java programming.

Description:

This on-line course gives students an overview of the field of Cloud Computing, its enabling technologies, main building blocks, and hands-on experience through projects utilizing a public cloud (Amazon Web Services). Cloud computing services are being adopted widely 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 are rented, rather than owned, by an end user as a utility.

The course will introduce this domain and cover the topics of data centers, virtualization, cloud storage, and programming models. As an introduction, we will discuss the motivating factors, benefits, challenges, 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. 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. Subsequently, students will learn about different cloud storage concepts including data distribution, durability, consistency and redundancy. HDFS, PVFS, HBASE, Cassandra and S3 will be presented as case studies. Students will understand the details of the MapReduce programming model and gain a broad overview of alternative programming models such as Spark, and GraphLab.

Students will work with Amazon Web Services, use them to rent and provision compute resources and then program and deploy applications that run on these resources. Students will develop and evaluate scaling and load balancing solutions. In addition, students will work with cloud storage systems and learn to develop different applications in several programming paradigms. The 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)

Teaching Assistants:
Anshima Gupta anshimag@andrew.cmu.edu
Chao Zhang chaozhan@andrew.cmu.edu
Cathy Bishop cbishop@rwanda.cmu.edu (Rwanda)
Debjani Biswas dbiswas@andrew.cmu.edu
Enrique Arango Lyons earangol@andrew.cmu.edu (Adelaide)
Eryue Chen eryuec@andrew.cmu.edu
Haoliang Quan hquan@andrew.cmu.edu
Gongxun Liu gongxunl@andrew.cmu.edu
Lei Wang leiwang@andrew.cmu.edu
Mayank Singh Shishodia mshishod@andrew.cmu.edu
Mengyu Yang mengyuy@andrew.cmu.edu
Mrigesh Kalvani mkalvai@andrew.cmu.edu
Prajwal Yadapadithaya pyadapad@andrew.cmu.edu
Pan Sun pans@andrew.cmu.edu
Ravi Chandra Bandlamudi Venkata rbandlam@andrew.cmu.edu
Rohit Upadhyaya rjupadhy@andrew.cmu.edu
Ru Jia rjia@andrew.cmu.edu
Satya Venkata Kamuju skamuju@andrew.cmu.edu
Siyuan Zhou siyuanz@andrew.cmu.edu
Suhail Rehman suhailr@andrew.cmu.edu
Tianqi Wen tianqiw@andrew.cmu.edu
Vinay Kumar Vavili vvavili@andrew.cmu.edu (Silicon Valley)
Zichang Feng zfeng@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 (videotaped) and Thursday at 4:30 PM Pittsburgh in GHC 4307.

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