Prof. Ken Birman, 435 Gates Hall, x5-9199
Ken's office hours: Tuesday and Thursday after class (11:30-12:00) and after lunch (1:30-2:30) or by appointment.
TAs: Sagar Jha (srj57) and Theo Gkountouvas (tg294). Xinwen Wang (xw467) is also associated with the course. He can help with questions, but has no office hours.
Sagar's office hours: Tuesday 4pm-5pm, Friday 9am-10am (Gates G15).
Theo's office hours: Monday 6pm-8pm (Rhodes 408).
Piazza Discussion Group: Log in to access it at piazza.
What is this course about? Cloud Computing is an overarching term that covers modern computing infrastructures to support the web: browsers and web servers, but also 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. More or less everything we do is cloud-based or uses cloud solutions these days.
A recent trend in cloud computing involves the invention of new infrastructure to support cloud applications that would run at the "edge" rather than in the back end. The main motivation is to benefit from speed. In classic machine learning and AI approaches, the ML and AI software was only available through data stored into files in the file system, and only ran in batches after long delays. So by shifting technology out from the back to the edge, we gain dramatic speedups. Examples of the terminology used for these new trends is "Spark/DataBricks Resilient Distributed Datatypes (RDDs), Tensor Flow, Apache Kafka, Apache ZooKeeper, Apache HDFS, Hive, HBASE, etc. We'll review quite a few tools of these kinds, and in fact the bulk of the course is to look at the standard ways they are built, and how they interoperate, and how they guarantee fault-tolerance and consistency.
The motivating examples for spring 2018 will come from uses such as smart homes, smart highways and smart power grid management systems, but it is important to understand that this is definitely not a machine learning or AI course, or even a big data course. CS5412 is more like an operating systems class.
The technologies mentioned play the roles of file systems, distributed hash tables, queuing subsystems, application management layers and other functionality used by ML/AI applications. Thus even though we will not look at those applications except as "users" of the infrastructure, they do motivate the technologies we study.
People who take CS5412 are expected to have previous experience with the operating system, and most students should have taken an undergraduate operating systems class as well as an undergraduate networks class and perhaps even an undergraduate database class. We do not require these as formal prerequisites, but it would be hard to really understand the challenges on which we focus in this class if you haven't taken those background courses, or acquired similar experience elsewhere. We won't be doing any AI/ML at all in CS5412, and you can do well in this course even with no interest in AI/ML. Conversely, you probably won't enjoy this course if you are focused on big data, AI/ML and related topics, and aren't really excited about the infrastructure on which they are running.
Prelim. We will have one exam: a take-home prelim, on March 22. It will cover lectures 1-15 but with an emphasis on lectures 8-13. Half your grade will be based on the prelim
Projects. Everyone has to work on a project. The project is half of your grade! See the suggestions, on the special project web page.
MEng Projects. Some students expand their CS5412 project into an MEng project. See the FAQ.
Help! I can't enroll. See FAQ, but in a nutshell, wait-listed people who attend class starting on the first day will have priority when we open the wait list.
|FAQ||Syllabus for Spring 2018||Project Suggestions||Recitation|
|Cloud Resources||Cloud computing accounts||TextBook (not required)||Piazza Discussion Site|