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.
Upon the successful completion of this course, the student should be able to:
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.
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.
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.
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.|
The University Code of Academic Integrity will be upheld, and any violations will be brought to the immediate attention of the Dean of Students.
The students will be consulted and must agree to any modifications or deviations from the syllabus throughout the course of the semester.