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's office hours: Many people just linger after lecture with questions, which is totally fine.  But Ken will also have regular office hours,  Monday and Wednesday from 2pm-3pm.   Initially those will be on Zoom.  Note: When in Zoom mode, if nobody shows up, Ken would close the Zoom link, so being there at 2pm is important.

TAs: TBD

TA Office hours (online):

Ed Discussions: s

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.

Background.  To take CS5412 you must show us that you have the needed background from other courses, or from equivalent real programming experience.  We will check your background as "assignment 1".  CS4414 (Systems Programming) is an ideal source of background for CS5412.  Other useful courses can include Operating Systems, Databases, Networking, Distributed Systems and Big Data Analytics.    You should be able to work with your favorite programming language (Python is probably the most popular, but anything will work).  We will be working with the Azure cloud, because Microsoft is offering us all sorts of help getting accounts, learning to use their cloud, and even sponsoring a "hackathon" where you can acquire cloud skills and win big prizes (seriously!) over a weekend with their experts guiding you on the technology.  This is a unique way to learn by doing, and we strongly encourage our course members to participate.

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