Fall 99 - EECS 594 (72135) Topics in Distributed Computing

Instructor: Ajay Kshemkalyani (ajayk@eecs.uic.edu)
Class meeting times: T,R 2:00-3:15pm
Room: DH 205
Office Hours: (M 2:00PM - 2:50PM; T,W 12:00PM - 12:50PM)@915 SEO
URL: http://www.eecs.uic.edu/~ajayk/ext/dc594.html

Course Description (very tentative)

  1. Reliable group communication, Managing group views
  2. I/O automata; Timed and untimed automata
  3. Distributed shared memory - models and implementations
  4. Synchronous network algorithms
  5. Asynchronous shared memory and network algorithms
  6. Atomic registers, Composite registers, Atomic objects
  7. Distributed predicates and predicate detection; Distributed debugging
  8. Checkpointing and rollback recovery
  9. Counting networks
  10. Agreement and consensus; randomized consensus; Survivable consensus objects
  11. Failure detectors
  12. Wait-free synchronization, Wait-free hierarchy
  13. Network synchronizers
  14. Other current topics

Prerequisites

Algorithm analysis and design, Operating systems, Computer networks, Permission of the instructor.

Course Requirements

In addition to the class textbooks, a collection of recent research articles will be made available. This course focuses on theoretical principles. You will not learn any programming in this course.

The course format will be in two parts. For the first part, the instructor will teach some basic topics. The second part involves active student participation and is tentatively planned as follows. Students will be required to present 2 topics. Each topic will entail presenting material from multiple papers, and/or multiple chapters from the books. Students are required to lead the discussion of the topics assigned to them. Depending on the class size, the presentations of the topics/papers can be done in teams. Each student also has to critique the various papers/chapters, and participate in class discussions. Everyone is expected to submit in advance a 1-page critique/review of the topic assigned for the class, for every class in the second part of the course. For details on how to structure the critique, see below.

There will be one or more exams. In addition, a term paper will be required of each student -- original content is expected.

(Tentative) Grading: Reviews/Critiques 25%; Presentation 15%; Exam(s) 30%; Term paper 30%. Grading is relative. The full scale of grades will be used. Handwritten submissions, except for the exam(s), will likely not be accepted.

TAKE-HOME EXAM ASSIGNED ON DEC 2 at 3:30 PM. DUE BACK ON DEC 4 at 5:00 PM.


Class Participation

The success of this class depends on a high degree of participation in class discussions. To facilitate active participation, students are expected to read and critique the assigned chapters or papers in advance of the class discussion. At the beginning of each class, students must turn in a short review of the chapters or papers to be discussed. The review should: (i) summarize the main points of the chapter/paper, (ii) list important conclusions of the chapter/paper, and (iii) list any deficiencies that you found, and directions for future improvements, and (iv) list at least three intelligent questions to be asked to the presenter. Each review should be short and crisp.

Reading List


Presentations

Four weeks before your presentation, you must be give me a clean copy of the paper you will be presenting. This will be distributed to the class at least 3 weeks before the presentation date. You have at least three weeks to study and critique all the papers (except your own). The following is the schedule of presenters and dates of presentations.
  1. October 26: (PM) Minimum Spanning Trees
  2. October 28: (AB) Fast Mutual Exclusion
  3. November 2: (DV) Predicate detection
  4. November 4: (NG) DSM implementations
  5. November 9: (RR) Inhibition spectrum
  6. November 11: (JS) Failure detectors
  7. November 16: (AR) Faliure Detectors
  8. November 18: (SB) Wait-free hierarchy (textbook)
  9. November 23: (RS) Universal Constructins for Large Objects
  10. November 30: (LH) Algorithms for Dimension-bound analysis
  11. December 2: (NS) Composite registers