Course Overview

This is a special topics elective course on Cloud Computing. The primary goal of this course is to serve as the incubator for an undergraduate course on Cloud Computing that exposes students to the concepts and technologies behind deploying and scaling online services on the computing resources available in modern datacenters. Enrolled students are expected to actively participate in the course development process, offering honest feedback to the instructor and participating in the preparation and presentation of lectures.

Course Topics

Likely course topics will include: introduction to cloud services, virtualization, paravirtualization, advanced networking, web services, server-side scripting languages and frameworks, cloud programming paradigms, cloud deployment and machine management, scale-up vs scale-out, cloud storage, cloud service topologies, message serialization and transport, load balancing, content distribution networks, security, authentication, QoS, managing tail latencies, performance monitoring

Office Hours

CS 343, Tuesdays, 2:30PM-3:50PM or by appointment


  • Warm-up Project 1 – 10 (due: Sep 15)
  • Warm-up Project 2 – 10 (due: Oct 15)
  • Course Project – 40 (due: last class)
  • Mid-term 1 – 10
  • Mid-term 2 – 10
  • In-class Demo(s) – 10 each
  • Demo grade sheets – 0.5 each

Course project grades will be assessed by functionality and individual interviews of all group members. Accumulating 100 points guarantees an A. Below 100, the sum of the points will be plotted and letter grades assigned by eye on a curve where a point sum above the mean will receive an A and a point sum two standard deviations below the mean will receive an F.


Solid programming and debugging experience is a must. Linux administration is a big plus. If you are unsure whether or not you have the necessary background or if you are unable to sign up via the web, please contact the instructor.



Lecture Slides

  • (pdf) Introduction (class 1)


For the warm-up projects, you may work in groups of up to two. For the course projects, you may work in groups of any size. If you work alone, you submit your own work. If you work with partners, you submit your assignments jointly. Whether or not you work in a group, you may discuss the assignment details, designs, debugging techniques, or anything else with anyone you like in general terms, but you may not provide, receive, or take code to or from anyone outside of your group (unmodified third-party open-source libraries and packages are permitted). The code that you submit must be your own work and only your own work. Any evidence that source code has been copied, shared, or transmitted in any way between non-partners will be regarded as evidence of academic dishonesty.

You must declare your group via email to the instructor and TA at most 5 days after the assignment handout.  You may change group composition for each assignment, as long as each change is announced within 5 days of that assignment’s handout.

Larger group sizes allow you to take on more challenging projects.  To balance out the advantages of a larger group compared to individuals working alone, grading strictness depends on the size of the group.  In the past, large groups have succeeded in submitting amazing projects.  However, beware of accepting deadbeats into your group: they are likely to hurt your grade beyond repair.

Some more-specific guidelines for the assignments:

  • You may not look at code from similar courses at other universities.

Assignment Hand-in Policy

All deadlines are before the start of lecture on the due date.  Submissions will be accepted on or after the due date.  Assignments submitted after the due date will be assessed a 1-point per day penalty (multiplied by the number of group members) for each late day, in 24-hour increments.

Course Mailing List

Subscription to the course mailing list is mandatory.

This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and the instructor. Rather than emailing questions to the teaching staff, you should post your questions on Piazza. If you have any problems or feedback for the developers, email

Find our class page at:

Disability Support Services

If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Disability Support Services, ECC (Educational Communications Center) Building, room 128, (631) 632-6748. They will determine with you what accommodations, if any, are necessary and appropriate. All information and documentation is confidential.

Academic Integrity

Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person’s work as your own is always wrong. Faculty are required to report any suspected instances of academic dishonesty to the Academic Judiciary. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the academic judiciary website at

Critical Incident Management

Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Judicial Affairs any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students’ ability to learn.