CIS399/002: Scalable and Cloud Computing (Fall 2010)
|Location||Towne 305, Tuesday/Thursday 1:30-3:00pm|
Location: 560 Levine Hall North (a.k.a. GRW building)
Office hours: Tu 12:30-1:30
Location: 576 Levine Hall North (a.k.a. GRW building)
Office hours: Th 12:30-1:30
What is the "cloud"? How do we build software systems and components that scale to
millions of users and petabytes of data, and are "always available"?
In the modern Internet, virtually all large Web services run atop multiple geographically distributed data centers: Google, Yahoo, Facebook, iTunes, Amazon, eBay, Bing, etc. Services must scale across thousands of machines, tolerate faults, and support thousands of concurrent requests. Increasingly, the major providers (including Amazon, Google, Microsoft, HP, and IBM) are looking at "hosting" third-party applications in their data centers - forming so-called "cloud computing" services. A significant number of these services also process "streaming" data: geocoding information from cell phones, tweets, streaming video, etc.
This course, aimed at a sophomore with exposure to basic programming within the context of a single machine, focuses on the issues and programming models related to such cloud and distributed data processing technologies: data partitioning, storage schemes, stream processing, and "mostly shared-nothing" parallel algorithms.
|Topics covered||Datacenter architectures, the MapReduce programming model, Hadoop, cloud algorithms (PageRank, adsorption, friend recommentdation, TF/IDF), web programming basics (HTML5, AJAX), higher-level programming (Hive, Pig Latin), ...|
|Format||The format will be two 1.5-hour lectures per week, plus assigned readings. There will be regular homework assignments and a term project, plus a midterm and a final exam.|
CIS 120, Introduction to Programming
CIS 160, Discrete Mathematics
Co-requisite: CIS 121, Data Structures
|Texts and readings||
Hadoop: The Definite Guide by Tom White (O'Reilly)
Additional materials will be provided as handouts or in the form of light technical papers.
|Grading||Homework 30%, Midterm 18%, Term project 30%, Participation 2%, Final 20%|
Course discussion forum: groups.google.com/group/cis399-fall10
Miscellaneous links likely to be of use:
|Term project||In two-person teams, build a small Facebook-like application using servlets and Google's Web Toolkit. Based on network analysis, the application should make friend and "interesting image" suggestions.|
|Schedule||is available here|
|Assigments||are available in (frequently updated) electronic form here|