Prof. Ken Birman, 435 Gates Hall, x5-9199
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.
Because the cloud is such a broad technology area, cloud computing as a whole is too big a topic for any single class, and we won't even attempt to cover the full space. It would take years to learn everything (and the cloud is expanding rapidly, so it would be hard to even keep up). In fact, we won't teach you to use any particular cloud platform, either: A class on all the various parameters and options and programmer APIs would be very boring and not particularly useful. Instead, CS5412 will drill down, with a goal of learning concepts and tools that should endure. We want the things you learn to remain valuable to you even five or ten years down the road.
With this in mind, the 2018 instance of cloud computing has a focus on "edge and fog computing". The best-known example of an edge-oriented web company is Facebook: because people constantly are uploading new photos and videos and revising their social networks and clicking like (or hate, or sad...) Facebook deals with a very "dynamic" kind of web content. We'll look at how companies like Amazon.com manage classic e-Retail web sites with rarely-changing data, but then with Facebook, we will also look at how cloud companies keep up-to-date data need the edge for rapidly evolving situations. Other examples include eBay, where auctions can create rapidly changing loads and data, and Google, which does rapid updates for data like the traffic information in Google maps. Microsoft has a very strong edge emphasis, and we will talk about Azure too.
A fog computing example would just take this one step further, by considering smart homes, smart highways, smart power grids, etc. We'll look at fog computing too, viewing it as an outgrowth of edge computing: an active edge with strong real-time requirements and consistency requirements. We will probably have one guest speaker, talking about smart homes, and we'll be asking how the technologies used to make edge systems scalable can be extended to deal with rapid updates, real-time constraints and consistency.
What is this course not about? From the above it may seem as if CS5412 will cover "everything", but in fact cloud systems are so huge that we'll just scrape the surface. You'll learn a lot about edge computing, and about technologies people will use to solve fog computing scenarios, but much less about big data analytics, underlying theory of distributed computing or other fundamentals, machine learning in the cloud, wide-area cloud storage, cloud-scale databases, and the list goes on and on. Fascinated by cloud-access to shared HPC systems, or to quantum computing devices? Sadly, this course won't be the place to learn about those things.
Prelim. We will have one exam: a take-home prelim, on April 22. It will cover lectures 1-15 but with an emphasis on lectures 8-13. Half your grade will be based on the prelim score.
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)|