CS293B -- Cloud Computing, Edge Computing, and IoT

The purpose of the class is ostensibly to explore current research topics and technological developments pertaining to the subject of "Cloud Computing." This quarter, we will expand the subject of study to encompass "edge" or "fog" computing, and the role it will play in enabling "The Cloud" to be used to implement "The Internet of Things."

Spring Quarter, 2020

The course meets

COVID-19 Adjustments

The Zoom meeting for the class (which will occur during the regularly scheduled lecture period) requires a password which is available via Piazza. You should have been enrolled in Piazza as a result of being on the class roster. If not, email me and I'll enroll you in Piazza.

  • Piazza link for this class
  • CS293B Course Project Page for 2020

    and the instructor's coordinates are

    Course Outline

    The course itself will combine, lectures, assigned reading, and in-class discussion with a quarter-long software development project that attempts to familiarize the student with the strengths and weaknesses of current approaches to cloud computing. In addition, students will be expected to describe the research challenges they have identified as a result of their experiences in the course in both written and oral presentation formats.

    Specific topics the course will cover include

    as well as other applications and subsystems that have applicability to cloud computing.


    The course will be graded as Class participation will be based on discussions of the reading material that is slated for each lecture period and on the quality of your responses to a number of quizzes (see below) on various readings.

    Class participation will be a little bit different this quarter for reasons that I think must be all too obvious. My goal, with this graded part of the course, is to assess your level of learning. Class projects (like the other half of the grade) often reveal proficiency (especially from a technological perspective) and cleverness, but they don't always provide good feedback with respect to conceptual learning.

    Thus, your goal with class participation is to reveal your level of understanding, particularly with respect to the assigned readings. This understanding can be conveyed in many forms including the asking of informed questions, contributions to answers to questions posed by your classmates, the suggestion of discussion topics relevant to the readings, etc. We will work out how to best share these contributions given the limitations of our on-line interactions as the quarter progresses. With these thoughts firmly in mind, please read the next paragraph carefully.

    We are learning under unusual circumstances that we must overcome to achieve the best possible educational outcome. The goal of this class is to maximize learning in a way that is as least stress-inducing as possible. If you feel anxious about the class as we proceed, get in touch with me immediately so we can discuss how to alleviate your anxiety. My intention is simply to provide the best possible learning environment -- not to test your mettle through pedagogical stress.

    Put another way, my goal is to help you explore this subject matter in a reasoned and principled way -- and nothing more. If at any time you wish to discuss how to accomplish that goal, do not hesitate to get in touch with me so we can discuss your ideas on the subject.

    Course Project

    There will be a class project that requires individuals or small teams to build a working prototype of either an application that uses edge and cloud computing technologies or a new edge/cloud technology itself. As will become clear from the lectures, IoT applications are often the motivation for edge and cloud systems but you are not required to use an IoT application to demonstrate the effectiveness of your prototype.

    A more complete description of the requirements (e.g. project deliverables) for the project is available from the course project page. Here are a few of the highlights:

    There can be some confusion about the workload associated with student-defined projects. We will attempt to alleviate some of this confusion through a review of the project plan, but you should communicate with your instructor early and often if and when questions of suitability arise. The goal of the project is to expose you to some significant aspects of the subject matter in a "hands-on" and/or "real-world" setting. As a rule of thumb, a good project will require 4-6 hours of work per team member per week but this heuristic is only meant as a guideline.

    Course Lecture Schedule

    Like most research courses, the reading lecture schedule for this course is somewhat tentative. The specific set of topics is rapidly evolving even within the relatively new subdiscipline of cloud computing which is, itself, a new and dynamically aspect of computer science. Each lecture will take the form of a discussion about a paper or research topic for which material will be available beforehand. Please prepare for each lecture to make the discussion as fruitful as possible. Your class participation grade will be based on these discussions.

    Reading Quizzes

    The model for the lectures in this course is one in which we all come prepared to each lecture period for a discussion of that day's scheduled reading. To aid in this preparation, I will occasionally prepare a short quiz that we will take place at the beginning of the lecture period on that day's assigned reading. Each quiz will be short (3 to 5 minutes) and you will turn them in immediately (via email or Piazza private message) before we begin the lecture.

    The quizzes will not be announced ahead of time so please come to each lecture prepared to take a quiz on the reading.

    Course Schedule

    March 30

    Course Introduction.

    April 1

    We will have a brief introductory disussion of cloud computing using these notes.

    Eric Brewer's PODC 2000 Keynote introducing CAP theorem: PDF

    April 6

    Vogels, Werner. "Eventually consistent." Communications of the ACM 52.1 (2009): 40-44.PDF

    April 8

    Bailis, Peter, and Ali Ghodsi. "Eventual consistency today: Limitations, extensions, and beyond." Queue 11.3 (2013): 20-32.PDF

    April 13

    Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz, Andy Konwinski, Gunho Lee, David Patterson, Ariel Rabkin, Ion Stoica, and Matei Zaharia. 2010. A view of cloud computing. Commun. ACM 53, 4 (April 2010), 50-58. DOI=http://dx.doi.org/10.1145/1721654.1721672 PDF

    April 15

    Satyanarayanan, Mahadev, et al. "The case for vm-based cloudlets in mobile computing." IEEE pervasive Computing 8.4 (2009): 14-23.PDF

    April 20

    Vaquero, Luis M., and Luis Rodero-Merino. "Finding your way in the fog: Towards a comprehensive definition of fog computing." ACM SIGCOMM Computer Communication Review 44.5 (2014): 27-32. PDF

    April 22

    Elias, Andy Rosales, et al. "Where's the Bear?-Automating Wildlife Image Processing Using IoT and Edge Cloud Systems." Internet-of-Things Design and Implementation (IoTDI), 2017 IEEE/ACM Second International Conference on. IEEE, 2017. PDF

    April 27 and April 29

    OS Virtualization: Fear and Loathing in the Intel Architectural Design. I'll try and lecture from these notes.

    May 6

    Eucalyptus : A Technical Report on an Elastic Utility Computing Architecture Linking Your Programs to Useful Systems UCSB Computer Science Technical Report Number 2008-10 PDF

    May 11

    Burns, Brendan, et al. "Borg, omega, and kubernetes." Queue 14.1 (2016): 70-93.PDF

    May 13

    Raghavan, Barath, et al. "Software-defined internet architecture: decoupling architecture from infrastructure." Proceedings of the 11th ACM Workshop on Hot Topics in Networks. ACM, 2012. PDF

    I've also prepared some lecture notes to which I'll refer during the lecture.

    May 18

    Stoica, Ion, et al. "Chord: A scalable peer-to-peer lookup service for internet applications." ACM SIGCOMM Computer Communication Review 31.4 (2001): 149-160. PDF

    May 20

    Hunkeler, Urs, Hong Linh Truong, and Andy Stanford-Clark. "MQTT-S publish/subscribe protocol for Wireless Sensor Networks." Communication systems software and middleware and workshops, 2008. comsware 2008. 3rd international conference on. IEEE, 2008. APA PDF

    May 25

    No class today. Please enjoy a well-deserved holiday.

    May 27

    Hendrickson, Scott, et al. "Serverless computation with openlambda." Elastic 60 (2016): 80. PDF

    June 1


    June 3