CIS 505:
Software Systems
Spring 2008


Instructor: Boon Thau Loo (boonloo AT cis.upenn.edu)
Room: Moore 216
Time: Monday and Wednesday 3-4:30pm
Office hours: Thurs 4-5pm, 605 Levine.
Newsgroup: upenn.cis.cis505 (instructions on accessing newsgroup)

Head teaching assistant:

  • Rafi Rubin (rafi AT seas.upenn.edu). Office hours: Tues 4-5pm, 315 Moore.

    Consultant teaching assistant:

  • Arvind Easwaran (arvinde AT seas.upenn.edu).


    Announcements

  • 6 May '08: Midterm solutions.
  • 2 May '08: Homework 3 solutions.
  • 30 Apr '08: Our finals will be held in Towne 311 and Towne 313 on May 8 from 12 noon - 2pm. Do note the updated venue.
  • 28 Apr '08: Check out CIS 553 offered next semester.
  • 25 Apr '08: Last year's final exam: [PDF]
  • 22 Apr '08: Instructor extended OH for finals: 5/1 (3-5pm), 5/2 (4-5pm), 5/6 (1:30-2:30pm), 5/7 (4-5pm)
  • Old announcements.


    Course Description

    This course provides an introduction to fundamental concepts of distributed systems, and the design principles for building large scale computational systems. The course will involve three written assignments, paper summaries, two programming projects, a midterm, and a final examination.

    Course textbook:

  • Distributed Systems: Principles and Paradigms, Second Edition by Andrew S. Tanenbaum and Maarten van Steen, Prentice Hall, 2007. (E.g., 1, 2, 3.)
  • Additional material will be drawn from selected research publications.

    Course pre-requisites:

  • Either undergraduate networking or operating systems is required. You should also be comfortable programming in C/C++ and/or Java.


    Grading

  • Written assignments: 12%
  • Programming projects: 30%
  • Class participation: 3%
  • Midterm: 20%
  • Final: 35%

    Class participation will be graded based on regular class attendence, visibility on newsgroup, and quality of your paper summaries in the second half of the semester.


    Schedule

    Syllabus is subjected to change. Please revisit this page regularly before class. The lecture notes linked from this page can only be accessed by hosts in the upenn.edu domain.

    Date Topic Reading Slides Remarks
    Jan 16 Introduction Chapter 1-2 [PDF] [PPT]
    Jan 23 Concurrency: Processes, threads, semaphores, monitors Chapter 3 [PDF] [PPT]
    Jan 28 Communication protocols, RPC, Project 1 discussion (Rafi) Chapter 4.1-4.2 [PDF] [PPT]
    Jan 30 Real-time scheduling [PDF] [PPT] Guest lecture by Arvind
    Feb 4 Message-oriented and stream-oriented communication Chapter 4.3-4.5, 8.3 [PDF] [PPT] Project 1 milestone 1 due
    Feb 6 Naming, addresses, locations Chapter 5 [PDF] [PPT]
    Feb 11 Clock synchronization, logical clocks Chapter 6.1-6.2 [PDF] [PPT] Guest lecture by Rafi
    Project 1 milestone 2 due
    Homework 1
    Feb 13 Logical clocks (continue), mutual exclusion Chapter 6.3, 6.5 [PDF] [PPT]
    Feb 18 Elections, Consistency models Chapter 7.1-7.3 [PDF] [PPT] Homework 1 due
    Feb 20 Replication protocols Chapter 7.4-7.5 [PDF] [PPT]
    Feb 25 Process resilience, reliable communication Chapter 8.1-8.3 [PDF] [PPT] Homework 2
    Feb 27 Distributed commit, recovery Chapter 8.4-8.5 [PDF] [PPT]
    Mar 3 Midterm review [PDF] [PPT] Homework 2 due
    Mar 5 Midterm
    Mar 8-16 Spring break
    Mar 17 Distributed File Systems Chapter 11 [PDF] [PPT]
    Mar 19 Coda File System, NS-3 guest lecture Chapter 11
    Optional: [Coda]
    [PDF] [PPT]
    [PDF]
    NS-3 (Joseph Kopena)
    Mar 24 P2P networks, Distributed Hash Tables [SMK+01] [BKK+03] [PDF] [PPT]
    Mar 26 Chord File System, Ivy [CFS] [Ivy] [PDF] [PPT]
    Mar 31 Content Distribution Networks [Akamai] [KWZ01] [PDF] [PPT] Project 2
    2 Apr CoDoNS, Project 2 discussion (Rafi) [CoDoNS] [PDF] [PPT]
    7 Apr Security in Distributed Systems I Chapter 9 [PDF] Guest lecture by Micah Sherr
    9 Apr Security in Distributed Systems II Chapter 9 [PDF] Guest lecture by Eric Cronin and Gaurav Shah
    14 Apr Google Cluster, Google File System [Cluster] [GFS] [PDF] [PPT]
    16 Apr MapReduce [MR] [PDF] [PPT]
    21 Apr BigTable, Hadoop and Pig [BT] [PL] [PDF] [PPT] [PPT]
    Homework 3
    Guest lecture (Hadoop, Pig)
    23 Apr Sensor Networking [TAG] [TinyDB] [PDF] [PPT] Project 2 due on 24 Apr
    28 Apr Research project presentations Homework 3 due
    Donuts and drinks provided.
    8 May Final Noon-2, Towne 311 and 313


    Significant Dates

  • Jan. 21, Martin Luther King day
  • Feb. 4, Last day to add a course
  • Feb. 22, Last day to drop a course
  • Mar. 8 - Mar. 16, Spring break
  • Apr. 29 - End of Spring term classes
  • Apr. 30 - May. 2, Reading days
  • May. 5 - 13, Final exams