CS5412: Topics in Cloud Computing
(Spring 2022 focus:
Using the Cloud to Create Smart IoT Systems).

Gates Hall room G01, 9:40am - 11:00am on Tuesday and Thursday.  Recitation on Wednesday at 7:30pm-8:45pm

We will initially be fully remote, Zoom link here.   The recitation Zoom link is here
All students are required to attend all lectures.
  We record lectures and recitations and the recording links will be posted to our Syllabus web page.

Syllabus for Spring 2022


Prof. Ken Birman, 435 Gates Hall, x5-9199. 

Ken Zoom Only M 2-3pm

Note: if nobody is left in the room, Ken will probably close the Zoom early.
Ken in Person W 2-3pm Gates Hall, Room 435

TA Office hours:


Alicia Yang

W 8:45-9:45PM 

In-person Gates(G01/G03)

Th 7-8PM.


Johnny Wu

M 4:30-5:30pm

Rhodes 408

M 4:30-5:30pm

Rhodes 408  


Karuna Grewal

F 4-5pm

Hollister Hall HLS162

Sat 12-1pm




Ed Discussions: Find the 5412 discussion board here

Assignments and graded materials: Find them in CMS.

What is this course about?  Cloud Computing is an overarching term that covers modern computing infrastructures to support the web: browsers and web servers, as well as ways of building mobile clients, scalable web services, and very fast infrastructures for serving up content in geographically distributed systems that might include dozens of data centers and millions of computers. Everything we do is cloud-based or uses cloud solutions these days.  CS5412 teaches you to use one of the main clouds (Azure), while also learning transferable insights about the fundamentals of how these systems work.  That deeper perspective will be equally useful when working with other major cloud platforms.

The cloud is a huge space within which there are many trends.  Two that interest us in CS5412 involve real-time data streams that enter the cloud from sensors or other devices, or from mobile platforms that interact with 5G computing and connectivity hubs.  We will look closely at the "data path" by which one connects a sensor to a cloud computing account, uploads data as new events occur, or continuously, then processes the data using various kinds of tools.  Many data science courses teach you to upload existing data sets and then work with them; our course is more oriented towards event-by-event scenarios, where data needs to processed as it is generated and may have to trigger some form of immediate ("real-time") reaction.  This makes the course rather hands-on, with a fair amount of programming -- mostly in the form of small functions written in Python or other languages using cloud APIs, but sometimes involving larger coding tasks that you would carry out in your favorite programming language. 

When we combine cloud intelligence with IoT and 5G applications, we end up with smart things: smart power grids, smart farms, smart homes, smart cities...  In CS5412 projects, you'll pick a topic from one of these areas (or something related), and will create apps for those kinds of settings.  Every student will do a project (either on their own or one we suggest) involving prototyping some form of smart something.

Do I have the background for this course?   We discuss this more below, but it is important to realize that CS5412 is a graduate course and assumes undergraduate experience and comfort with operating systems and programming.  You should have taken operating systems and/or systems programming (CS4410, CS4414) and gotten a solid grade like a B+ or better. 

You need to be totally at ease writing code to do a task like opening a file, reading it line by line into a list,applying a function to each line that extracts some sort of information (for example, if the line says "Error: "something or other went wrong", you should be able to extract the text between the quotes), sorting by error message, counting the identical messages, reversing this list, and then printing the top 10 error messages.  Sounds too hard?  Then you aren't prepared for this class.  Don't take it.  A person prepared for this class should be able to generate that list of error messages with a few minutes of coding in Python or Java or C++.

We use skills like this in our CS5412 projects.  This is why they matter!

Wait List.  In Spring 2022, most students will initially need to go onto a wait list.  Then, during the add/drop period, we will send you an enrollment PIN you can use to finalize your enrollment in the class.  There is no capacity limit in spring 2022, but we do take the background aspect seriously and some people may be asked to drop the course if they enroll, but in fact lack the required background.

Attending class.   Attendence is required -- we are finding that after the 2020-2021 Covid remote learning period, many students were unready to return to more normal studying and work, and struggled to find the normal balance.  Skipping classes seems to be especially strongly correlated with mental health concerns and poor performance, based on the experience we had in fall 2021.  Everyone must attend class, either physically (if we are meeting in person and you are able to do so), or by watching a recording of the lectures within a day or two of the actual in-person lecture.

We will track attendence and attendence will be part of your grade.  Everyone will have 3 "skip" opportunities permitted, for things like job interviews or even just because the weather is nice.  The plan is to deduct points for each class missed, beyond those 3.  The only exception will be for SDS-confirmed health issues that preclude attending.

Videos of lectures.  Ken will post video recordings of all lectures as a study and catch-up resource, generally on the same day as the main lecture.  But watching a video is not considered to be "attending class" unless you have an SDS letter about being quarantined.

Exams.  Grading is 50% exams, 50% project.  The current plan is that exams will be in person, one prelim and one final.  Dates and location to be announced, but we might use recitation slots as exam slots if the University assigns us really wierd dates and rooms.  The exams focus on topics we covered in class and we will provide old exams that you can use as study and practice materials.  Exams will switch to being at-home if the covid situation makes an in-person test unwise.

Extra Credit:  Each semester we offer a few ways to get some extra credit that can boost your grade a little.  In Spring 2022 these include participating in the CIDA Hackathon and participating in the BOOM project fair.  In both cases you have to be there to the very end to get credit.

Projects. Small homeworks and your project add up to 50% of your course grade.   Read the Project Options web page to learn more.

MEng Projects. Some students expand their CS5412 project into an MEng project. See the separate web page about CS5999 and the FAQ.   It is important to understand that an expanded project require much more effort than a regular project -- you should schedule your semester to include six or eight hours per week of additional effort, for which you will get CS5999 credits (your grade in the main course and in CS5999 will be identical).  To do this, you will need to submit a CS5412 MEng project plan that details the extra effort you plan to invest, and we will be meeting with you from time to time and tracking progress on the project (including those extra aspects that justified it being counted as an MEng project) throughout the semester.  In your final written report, which is required, you will need to document both what you accomplished and also your personal investment of effort, by telling us precisely which parts of the solution you personally created.

FAQ Syllabus for Spring 2022 Project Options Recitation Prelim study guide CS5999 Info
Cloud Resources Cloud computing accounts TextBooks (not required) EdStem Discussion Site Sample Prelim
Sample Solution