CS 595-01: Advanced Topics in Serverless and Edge Computing

Course number: CS 595-01

Semester: Fall 2021

Instructor: Kyle C. Hale (Office: SB 229C)

Instructor e-mail: khale [AT] cs [DOT] iit [DOT] edu

Office hours: Tuesdays, 2PM (SB 229C)

TA: There will be no TA for this course

Lecture Time: T/TH 3:35PM-4:50PM

Lecture Location: SB 213

Overview

Welcome to Advanced Topics in Serverless and Edge Computing! This is going to be a challenging but fun class with a special focus on research projects.

We are currently transitioning to the next phase of distributed computing. More focus will be placed on computing closer to users "at the edge," and less focus on large, centralized datacenters and clouds. The pressures creating this trend include an increasing demand for immersive, real-time applications (including AI and augmented reality) and the need to design more efficient and disaggregated data centers. A parallel transition is taking place in how we program distributed systems, where stateless, dynamically provisioned, "serverless" computation is becoming the norm. In this course we will explore ongoing research in these areas, both in academia and in industry, and understand some of the history that got us here.

This is an advanced seminar course that will expose you to cutting-edge research at the intersection of several areas within computer systems, including operating systems, cloud computing, distributed systems, computer architecture, programming languages, and networking. You will apply what you learn to pursue an open-ended research project related to serverless and edge computing, that will culminate in a publication that could be submitted to a top-tier OS conference. Many of the projects will be centered on two focus areas related to work being done here at IIT: Coalescent Computing and Virtines.

Audience

This course is aimed at advanced CS undergraduates and graduate students. The emphasis is on research. Please contact me if you would like to take this course but are not sure if you have the required background.

Prerequisites

You should have taken CS 450 or the equivalent for this course. I expect that you have some experience with computer organization and computer networking as well.

Project

You wil work in teams of no more than two on an open-ended research project in serverless and edge computing. I will hand out a list of potential projects at the beginning of the semester, though I am open to your ideas as well. Once you have formed groups and selected a project, I will expect weekly status reports from you until the end of the semester, at which point you will be submitting a final report and presenting a final presentation that includes a demo of your work. At the end of the semester we will have a workshop where you will present your work!

A vague list of potential projects can be found here

Readings

A significant portion of your time will also be spent on reading papers, and this is pretty typical of the life of a researcher. Every week we will focus on two research papers, and each class one of you will present the paper. You will be submitting paper reviews as well.The schedule can be found here, and you will be expected to attend in person (unless things change).

What you will learn

Books

There are no required textbooks for this course. However, you may find the following list of books useful if you are a graduate student:

Grading

The following components will constitute your grade in this course:

Communication

We will be using Discord for course communication.

Schedule

See it here.

Extra Readings

If you'd like to read more (you should!) here are some good papers in the area that we won't have time to discuss in class:

Edge

Serverless

Cloud, Distributed Computing, Microservices, Disaggregated Computing

Hardware

Other Useful Links and Resources