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, Microsoft Azure Educator Grant Award and a Google Cloud Platform grant.
Course Links
- Webpage: http://www.cs.cmu.edu/~msakr/15619-s21/
- Canvas Course: https://canvas.cmu.edu/courses/20975
- OLI Portal: http://oli.cmu.edu accessed through the Canvas Course
- TheProject.Zone: https://TheProject.Zone/s21-15619
- Piazza: https://piazza.com/cmu/spring2021/1531915619/home
Course Overview
Title: Cloud Computing
Units: 15-319: 12 units; 15-619: 15 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).
Students will utilize MapReduce, interactive programming using Jupyter Notebooks, and data science libraries to clean, prepare and analyze a large data set. Students will orchestrate the deployment of auto-scaled, load-balanced and fault-tolerant applications using virtual machines (VMs), Docker containers and Kubernetes, as well as serverless computing through Functions as a Service. Students will explore and experiment with different distributed cloud-storage abstractions (distributed file systems and databases) and compare their features, capabilities, applicability and consistency models. In addition, students will develop different analytics applications using batch, iterative and stream processing frameworks. The 15-619 [graduate] students will participate in a team project, which entails designing and implementing a complete web-service solution for querying big data. For the team project, the student teams are evaluated based on the cost and performance of their web service.
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. 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. Finally, students will learn 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).
Logistics
Teaching Staff:
Prof. Majd F. Sakr msakr@cs.cmu.edu, GHC 7006, x8-1161 Office hours: Tuesday, 3-4pm (Pittsburgh)
Teaching Assistants:
Marshall An <haokanga@andrew.cmu.edu>
Mingxiao An <mingxiaa@andrew.cmu.edu>
Archit Arora <archita@andrew.cmu.edu>
Diti Bagga <dbagga@andrew.cmu.edu>
Jiameng Du <jiamengd@andrew.cmu.edu>
Yilin Fan <yilinfan@andrew.cmu.edu>
Siddharth Kandimalla <skandima@andrew.cmu.edu>
Juncong Li <juncongl@andrew.cmu.edu>
Daria Mashanova <dmashano@andrew.cmu.edu>
Andre Michell <amichell@andrew.cmu.edu>
Shuqi Min <shuqim@andrew.cmu.edu>
Aditi Paul <aditip@andrew.cmu.edu>
Yugant Rana <yrana@andrew.cmu.edu>
Shakul Ramkumar <shakulr@andrew.cmu.edu>
Kailas Shekar <kshekar@andrew.cmu.edu>
Zijian Shen <zijians@andrew.cmu.edu>
Baljit Singh <baljits@andrew.cmu.edu>
Yifan Song <yifanson@andrew.cmu.edu>
Zhenye Tan <zhenyet@andrew.cmu.edu>
Xinyi Tao <xinyit@andrew.cmu.edu>
Adam Zhang <yufanz@andrew.cmu.edu>
Office Hours: TAs hold office hours remotely, office hours are posted on Piazza and here.
Weekly Overviews: The weekly course overview will be video recorded every Tuesday morning.
Tentative Schedule
The detailed schedule of content and quizzes is on OLI. The detailed schedule of the projects is on TheProject.Zone.