Cloud Computing

Undergraduate, University of Maryland, CS, 2024

The course explores several fundamental topics of cloud computing, including IaaS (e.g., Open Stack, Kubernetes), key big data platforms, and data center networking. The course combines group reading and discussion of influential publications in the field, lectures by the instructor, talks by invited speakers, and a large project. Students will be a part of an agile development team, with extensive experience with GitHub, agile tools, and various technologies. Each course project is solicited from open-source community and will be mentored by an industry leader and/or engineer, or a senior graduate student/postdoc. A project is expected to be done by teams of 3 to 5 students working with a mentor. Projects may use public clouds from our industry partners (e.g., Microsoft Azure).


  • Thank you Microsoft Azure and Red Hat for agreeing to share their cloud development experience with our students!
  • Thank you Microsoft for agreeing to sponsor our course projects with Azure credits!
  • Please enroll CMSC498B and email the instructor for any questions.
  • An updated speaker list and project descriptions will be available before the semester starts.


Tentative Syllabus

Week 1Course OverviewHow to Read, You and Your ResearchProject Template, Project Management Guidelines, Example Projects
Week 2Overview of Cloud ComputingThe Datacenter as a ComputerSign up for projects
Week 3Overview of VirtualizationXen, Container-based OS virtualizationProject descriptions Due
Week 4Agile MethodsAgile-1, Agile-1.1 Agile-2Invited lectures (Microsoft)
Week 5Distributed SystemsGoogle File System, MapReduceLecture
Week 6Datacenter ArchitecturesVL2, AquilaInvited talk
Week 7Storage SystemsCeph, Flat Datacenter Storage 
Week 8Resource ManagementBorg, Mesos, KubernetesInvited talk
Week 9Big Data FrameworksSpark, HiveSprint project demos
Week 10Datacenter NetworkingDCTCP, P4Invited talk
Week 11Resource DisaggregationInfiniSwap(slides), LegoOSSprint project demos
Week 12Distributed Systems II (Thanksgiving)Dynamo, KafkaSprint project demos
Week 13Beyond the CloudServerless, Sky ComputingSprint project demos
Week 14Final Presentations  
Week 15Final Project Review  


  • CMSC 330: Organization of Programming Languages
  • CMSC 351: Algorithms


In addition to paper readings, there will be a major project, starting from the course beginning, with a mentor, from industry, senior graduate student, or one of the instructors.

The project is due by the end of the exam week. The project presentations will be given in the form of a final poster and a demo. There will also be demos scheduled throughout the course to demonstrate regular progress.

Some example final demos:


  • 35%: Project Progress Report Team members typically receive the same project grades, but individual grades may be scaled based on feedback we solicit from your mentor and teammates.
    • 10%: project description
    • 20%: bi-weekly project demo and status (4 x 5%)
    • 5%: project quizzes (checking if you listened to your classmates’ presentations)
  • 20%: Midterm Exam
  • 25%: Final project result and report
  • 20%: Paper quizzes, Piazza discussion, and required project forms
    Brief quizzes on reading assignments will be open during first 5 minutes of class.

Evaluation of the project will involve evaluation of your demo, poster, bi-weekly status reports, code reviews, and mentor and project partner reviews.

Course Mechanics

  • Style: In each topic, the instructor will give one or two introductory lectures, followed by paper discussions by class participants. In addition, there will be one capstone project. Students will be required to read and review papers before the class.

  • Capstone Project: The project is a teamwork. Projects may use the public clouds via our industry partners (e.g., Microsoft Azure, Amazon AWS.) The project presentations will be given in the form of a final poster and a demo. There will also be demos scheduled throughout the course to demonstrate regular progress.

  • How to Review Papers: Write a review in four sections, including summary, paper strengths paper weaknesses, and detailed comments.

    • Summary (points in sentence or bullet form): What program? Core novel ideas or technical contributions? Summarize approach, mechnisms, or main findings.
    • Strengths/Weaknesses: 2-4 points each.
    • Detailed comments: Be constructive. Imagine conversation w/ authors. For example,
      • Problem: What is it? Is it new? Is it real? Is it important?
      • Solution: What is the technique(s)? Is it novel? How is it compared to past solutions? What is the intuition(s)?
      • Implementation/evaluation: Does it have a real system prototype? Is the evaluation dataset(s) representative? Does the evaluation cover all aspects?
      • Looking forward: Can you come up with a new/different/better solution? Can you find a new/related problem to solve?