CS492 Special Topics in Computer Science:
Distributed Algorithms and Systems

FALL 2008

Course Overview
The goal of this course is to provide students with theoretical basis of distributed system
design and hands-on experience with distributed systems.  The course is largely motivated by
Google 101 (UW CS 490h) and lack of an undergraduate course on a similar topic in our
department in recent years.  The lecture material will be mostly from the two textbooks. 
Students will have additional reading material for projects.

Instructors
    Sue Moon (sbmoon golbaengi kaist edu)

TAs
    Keon Jang (gunjang golbaengi an kaist ac kr)
    Hyunwoo Chun (hyunwoo golbaengi an kaist ac kr)    
    Seoyeon Kang (sykang golbaengi an kaist ac kr)
    Shinae Woo (shinae golbaengi an kaist ac kr)

Lectures
    TuTh 9:00-10:20 (1st class on September 2nd)

Office Hours 
    Tu 4:30-6:30pm 
    Thu 5:30-6:30pm

Prerequisites
    CS330 Operating Systems
    CS441 Computer Networks
    (Those who have not taken CS330 or CS441 should consult the instructors.)

Class Schedule (tentative; subject to change)
    1. Course introduction; introduction to distributed algorithms and systems 
    2. Global Scale Services 
    3. Functional Programming /MapReduce
    4. Page Rank
    5. NFS
    6. GFS
    7. IPC/RPC/MPI
    8. Mid-term exam(Tue,10/21,9am-Noon)
    9. Term project overview / Lab 2 review by TAs /How to give a good talk
    10. Distributed algorithms chapters 2 & 3
    11. Individual team meetings
    12. Term project presentation #1
    13. Distributed algorithms 9 and 10
    14. No class
    15. Individual team meetings
    16. Term project presentation #2

Textbook
    Distributed Systems: Concepts and Design (by Coulouris, Dollimore, Kindberg)
    Distributed Algorithms (by Lynch)
    Distributed Systems (by Andrew Tanenbaum, 2nd Edition)

Project (tentative)
    Lab 1. Warming-up project - Introduction to hadoop and mapreduce
    Lab 2. Play with large corpus data
    Lab 3. Term Project

References 
    1. Lessens from Giant-Scale Services, Eric A. Brewer
    2. Map Reduce: Simplified Data Processing on Large Clusters, Jeffrey Dean and Sanjay Ghemawat 
    3. Problem Solving on Large Clusters, University of Washington
    4. The Google File System , Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung
    5.UNIX Filesystems: Evolution, design, and implementation (by Steve D.Pete)
     Chapter 13. Clustered and distributed filesystems (pp. 285-300)
    6. NFS Illustrated (by Brent Callaghan)
     Chapter 3. ONC RPC (pp. 25-41)
    7. How to Read a Paper, S.Keshav

Grading policy (tentative)
    1. Attendance and participation (10%)
    2. Homework (20%) and Project (30%)
    3. Mid-term (20%) and Final (20%)