Fall 2008 - CS 553 (Call no 10696) Distributed Systems

Instructor: Ajay Kshemkalyani
Email: ajayk@cs.uic.edu
Class meeting times: M,W,F 11:00-11:50am
We may need to set up a few extra class meetings to make up for any of the regular meetings we miss due to my travel.
Room: Office Hours in 915 SEO: M 12:00 - 12:50pm, W 12:00 - 12:50pm

Textbooks

This course focuses on theoretical principles.

Course Description

Topics

  1. Models: synchronous/asynchronous; shared memory/message-passing
  2. Global states and snapshots; time models
  3. Group communication, managing group views
  4. State predicates
  5. Mutual exclusion, deadlock detection, leader election
  6. Distributed shared memory - coherence, models
  7. Checkpointing, rollback recovery; distributed debugging
  8. Agreement and consensus
  9. Peer-to-peer computing
  10. Multicast
  11. other current topics

Prerequisites

Algorithm analysis and design; or permission of the instructor.

Grading

The following is only a tentative breakup of the evaluation scheme and is subject to changes as the course progresses.

Course Structure and Class Participation

The course format will be in two parts.
  1. For the first part, the instructor will teach.
    Attendance when the instructor is teaching is not compulsory, but you must attend all the tests/exams. However, if you miss class, it is your responsibility to find out what was announced and what was covered, from other students.
  2. The second part involves active student participation and is planned as follows. Each team of 2 students will be required to present 1 or 2 papers, depending on the final enrollment which will be known only in the third week of class. A paper will be assigned at least 3 weeks before its presentation date. Also submit a description (in your own words) of the main ideas of the paper. This should be roughly 5-7 pages.
    Attendance when the student presentations are going on is compulsory.

TENTATIVE course progress chart: Will be updated as we progress.


Click here for scores.

Class Presentation Topics

This year, the class presentations will be on an assortment of topics of current interest. Each group chooses a paper/topic from the following list. This is only a starting point. Once you select a paper on a topic from the list below, you may have to identify more basic or fundamental papers on that specific topic for presentation. Pick the most basic/ fundamantal papers that are rich in new ideas. They must also have algorithmic content. Please let me know which paper you would like to present. I encourage you to meet me in person during weeks 5-8 to discuss what you would be presenting. And continue meetings during the semester on a regular basis.

Auxiliary information

Literature sources: The following is an additional listing of traditional journals and conferences that you may find useful in your literature search for your term paper. Note that there are many more journals and conferences not listed here. All execpt the ACM material can be accessed online via the library UIC portal, i.e., from a campus IP address or after logging in to the library network using your UID account.

  1. IEEE Transactions on Parallel and Distributed systems (TPDS)
  2. IEEE Transactions on knowledge and data engineering (JPDC)
  3. Journal of Parallel and Distributed Computing (JPDC) - Elsevier
  4. Distributed Computing - Springer
  5. Journal of the ACM
  6. Journal of Algorithms - Elsevier
  7. SIAM Journal on Computing
  8. Ad-Hoc Networks - Elsevier
  9. ACM Symp. on Principles of Distributed Computing (PODC)
  10. IEEE Symp. on Parallel and Distributed Processing (SPDP)
  11. IEEE Network Computing and Applications Symposium (NCA)
  12. Inter. Conference on Distributed Computing Systems (ICDCS)
  13. Symoisum on DIstributed Computing (DISC)