CS 643 101: Cloud Computing, Fall '17

Wednesdays, 6-9:05pm, GITC 1400


  Cristian Borcea
  Office: GITC 4410
  Phone: 973 596-2866
  Office Hours: Mondays 4pm-6pm and by appointment


Short description

The course presents a top-down view of cloud computing, from applications and administration to programming and infrastructure. Its main focus is on parallel programming techniques for cloud computing and large scale distributed systems which form the cloud infrastructure. The topics include: overview of cloud computing, cloud systems, parallel processing in the cloud, distributed storage systems, virtualization, security in the cloud, and multicore operating systems. Students will study state-of-the-art solutions for cloud computing developed by Google, Amazon, Microsoft, Yahoo, VMWare, etc. Students will also apply what they learn in one programming assignments and one project executed over Amazon Web Services.

Learning outcomes

Upon the successful completion of this course, the student should be able to:

Why take this course?

Cloud computing represents a major paradigm shift in computing from the era of personal computers to the era of computing as utility. Most major Internet services are already deployed in the "the cloud." In the near future, we may store all our data in "the cloud" and execute most applications from "the cloud." This course is aimed at all graduate students (both M.S. and Ph.D. students) who want to learn how to design and program cloud services as well as how to build and administer cloud systems. By studying real-world systems developed in industry during the past few years, students will acquire cutting-edge knowledge that may be a major advantage when searching for a job.


CS 656 or instructor's permission. If you didn't take CS 656, but you would like to take this class, you should come and talk with me about your background. Basic Unix/Linux skills and good programming skills are necessary for the assignment and the project.

Lectures and Readings

There is no book required for this class. Each lecture is based on recent papers/articles covering a specific topic. Students are required to read the papers before the class and participate in the discussions in class.

Paper Presentations

Students will present, in groups of three or two, one research paper during the semester. These papers cover very recent developments in cloud computing. The presentations (using power point slides) will take place in class, and extra-credit will be assigned for active participation in discussions.

Programming Assignment

There will be one individual programming assignment consisting of creating an AMI for Hadoop and implementing short Hadoop programs on the Amazon Web Services platform.


Students will choose their project topic and work in teams of four or three to design, implement, and evaluate cloud applications using Hadoop on the Amazon Web Services platform. General requirements for all projects will be discussed in class after the midterm.


There will be two exams: a midterm, and a final exam. Both exams are closed book (i.e., papers, notes). The final exam will cover only the material taught after the midterm. In case of missing an exam, a make-up may be taken only after providing written documentation to the Dean of Students.


Homework will be assigned 4 times during the semester to prepare students with the type of questions encountered in exams. The solutions will be discussed in class.



Week Topic Required readings Papers to be presented in class
1 Course overview. Introduction to Cloud Computing. Slides.
2 Cloud Platforms I. Amazon Web Services. Google AppEngine. Slides. Homework 1 handed out.
3 Cloud Platforms II. Windows Azure. Slides. Discussion of homework 1 solutions. Programming assignment handed out.
4 Parallel Programming in the Cloud I. Google's MapReduce. Apache's Hadoop. Slides.
5 Parallel Programming in the Cloud II. Yahoo's Pig Latin. Homework 2 handed out. Discussion of project requirements. Slides.
6 Parallel Programming in the Cloud III. Microsoft's Dryad and DryadLINQ. Slides. Programming assignment due. Discussion of homework 2 solutions.
7 Distributed Storage Systems I. Google's GFS and BigTable. Slides. Presentation of project outlines (who, what, why, how).
8 Midterm (material covered in the first 6 weeks). Discussion of midterm solutions.
9 Distributed Storage Systems II. Amazon's Dynamo. Slides. Homework 3 handed out.
10 Virtualization I. VMWare virtualization. Containers. Slides. Discussion of homework 3 solutions.
11 Virtualization II. Xen virtualization; Virtual machine migration. Slides.
12 Cloud Security. Slides. Homework 4 handed out.
13 Multicore Operating Systems. Slides. Discussion of homework 4 solutions.
14 Final project presentations.

Academic Integrity

The University Code of Academic Integrity will be upheld, and any violations will be brought to the immediate attention of the Dean of Students.

Modifications to Syllabus

The students will be consulted and must agree to any modifications or deviations from the syllabus throughout the course of the semester.