Welcome to CS 199 - Applied Cloud Computing at the University of Illinois Urbana-Champaign!

Informal Course Description

Cloud computing is increasingly becoming an area of interest in the tech industry. In this course, we will introduce service-level technologies including Hadoop, Spark, distributed databases and more. We will also introduce students to the concepts IaaS (Infrastructure as a Service), Cloud Functions, and containerization. This course will be hands-on and focussed on applications of cloud computing; students will be using a cluster to explore cloud based technologies.

After taking this course, students will be experienced with cloud computing platforms, and will have been introduced to the processes necessary to build scalable cloud applications.

Formal Course Description

This course is an introduction into cloud computing. We define cloud computing as the usage of services or infrastructure from the internet (what we refer to as the “cloud”) instead of self-hosted solutions.

This course will address two levels of cloud computing: IaaS and PaaS. IaaS is short for infrastructure- as-a-service, meaning that we will talk about different cloud computing systems and platforms (like AWS or GCP). We will go in depth about what these different systems are and what differentiates them. We will also give students a chance to use these in practice to have a firmer, hands-on experience on what they do. We will also have a brief overview on virtualization.

The second type of cloud computing we will cover is PaaS, which is short for platform-as-a-service. These are managed-infrastructure solutions that are hosted remotely, which can be used through an interface like SSH.

Throughout the course, we will also cover various common cloud computing applications. Some of the technologies that we cover are Hadoop, Spark, Messaging Queues, and SQL/NoSQL stores. While we won’t go through this software in detail, students will use all of these technologies in real-world settings through assignments.

We hope that students will have an opportunity to learn and explore something that they could not do on a normal basis. We welcome ideas and suggestions about what to cover.

Learning Objectives

By the end of the course, we wish students to know

  • A survey of popular cloud platforms.
  • A variety of cloud software applications
  • How to query SQL and NoSQL datastores
  • How to use Spark and Hadoop to run batch data jobs
  • How messaging queues and discovery services tie the cloud together



  • Attendance: 10%
  • MPs: 60%
  • Final Project: 30%


  • 90% A-
  • 80% B-
  • 70% C-
  • 60% D-

Machine Problem (MP) Policy

Machine Problems make up the majority of the student work for CS199. As such, it is important that students stay on top of the MP work. We suggest that students start MPs early, and go to office hours if feel like they need help.

  • All MPs will be released after lectures on Thursdays.
  • All MPs will be due on the following Wednesday at 11:59pm.
  • No late MPs will be accepted, unless a valid excuse is presented to the course staff.

Note: Many of the MP assignments will be run on the CS199 Nebula cluster. We do not guarantee 100% uptime of this cluster. Additionally, we notice that many students try to complete assignments right before the deadline, and this can lead to severely decreased cluster performance.

Course staff also reserves the right to monitor and manage student submitted jobs on the cluster. If your code takes too much time to execute, or too much computing resources, course staff may terminate these jobs

Office Hours

Course staff will host office hours throughtout the week to help students with course content. If a TA cannot attend a scheduled office hour section, they will usually announce the cancellation or rescheduling on the course Piazza. The office hours schedule is available here. Office hours will be hosted in the NCSA lobby.

Academic Integrity

The standard academic integrity policy applies here. If you believe that the solution to the assignment that you have written does not reflect how well you know the concepts being assessed, that is considered cheating. The academic policy can be found here.

In addition to the standard academic integrity policy, we have an additional policy that if you leave MPs in “plain view” (public on github, pastebin, your blog), we reserve the right to reduce your final letter grade in the course once per instance, even after you are done taking the course. This means that if you received a A- in the course and you posted 2 assignments online, your final grade will be a C-.

Just remember, we consider cheating a failure on our part. If you are ever in a situation where you are forced to cheat, that means that we have not done our jobs as instructors to give you adequate resources to work through the issues that you have. If it anytime you feel this, please shoot us an email and hopefully we can find an acceptable solution.


If you have an emergency or unplanned absence you can talk to the course staff and we will deal with the absence. If you are sick, or have another similar urgent situation you must get approval from the emergency dean to get an excused absence. Otherwise, absences will not be accepted.