Syllabus

Course:
  CS 626 Distributed Computing, Spring 2005
Where and when:
  Lecture: HO 108, Tue/Thu 9:30PM-10:45PM; first class meets on Thursday 1/6/05 at 9:30PM !!!
Instructor:
  Grzegorz Malewicz
116 Houser Hall
Phone: (205) 348-4038
Email: greg@cs.ua.edu
Required text:
  Attiya, H., Welch, J.: Distributed Computing Fundamentals, Simulations, and Advanced Topics (Second Edition). John Wiley and Sons, Inc.(2004) (not the first edition)
Office hours:
  Tuesdays 2:15PM-4:00PM; also by appointment or just come to my office
Course web page:
  http://www.cs.ua.edu/626/Spring2005
Prerequisite:
  graduate algorithms course, or consent of the instructor
Course description:
  Distributed systems have many advantages over centralized systems, such as ability to mask failures, potential for high availability, and improved performance. However, building correct and efficient distributed systems is often challenging because of the possible unpredictable changes in the system that can occur during the life of the system. The course will serve as an introduction to fundamental problems of distributed computing. Topics covered will include message passing systems, causality and time, fault-tolerant consensus, communication services, shared memory mutual exclusion, along with selected advanced topics. The course will be fairly rigorous (i.e., theorems will be proven). Students will implement selected distributed algorithms.
Course objectives:
At the end of the course, a student who successfully completes the course will
  * be able to identify several fundamental problems that occur in distributed systems and know when they can or cannot be solved, and why they can or cannot be solved,
  * be able to solve a theoretical moderately difficult distributed computing problem and analyze correctness and efficiency of the solution,
  * be able to implement a moderately difficult distributed algorithm,
  * improve analytical skills and ability to think rigorously.
Official university catalog description
   This is a new course.
Outline of topics covered during the semester and planned number and timing of major examinations and assignments (these may change):
    Fundamentals (book chapters 1 and 2)
    Leader election in rings (book chapter 3)
    Causality and time (book chapter 6)
    Mutual exclusion in shared memory (book chapter 4)
    Fault-tolerant consensus (book chapter 5)
  4/4 -- 4/8 Student presentations of papers
    Broadcast and multicast (book chapter 8)
    Selected advanced topics
  4/25-4/29 Student presentations of implementations
  You can expect several problem sets assigned throughout the course each with a one week deadline, you will need to read and present a research paper in the second half of the course, and implement a distributed algorithm and present the implementation towards the end of the course. You are responsible for reading the parts of the text assigned by the instructor.
Attendance policy:
  It is expected that you attend each lecture. Any missed lecture may reduce your grade by 0.1% (1/10 of a percent).
Grading policy:
  30% theoretical exercises -- done individually without discussing with any other student
  30% paper presentation -- team project, paper quality will constitute a part of your grade
  30% implementation presentation -- team project, algorithm sophistication will constitute a part of your grade
  10% class participation
  -4% up to minus 4% for skipping lectures
  There is no final exam.
The policy for making up missed course work and examinations:
  If you miss any homework deadline for any excused reason, then you can request to be assigned an extra task to perform. The task will be of equal value, weight and difficulty. If you miss your scheduled presentation for any excused reason, then you will need to present at a later time.
Remarks:
  * any work that you submit must be written entirely by you or your team, if applicable; you cannot copy solutions to exercises from other students, or other sources; you cannot plagiarize from the Internet; if you do not comply, you will be severely penalized; you can discuss presentations and code with other members of your team.
  * you must obey the University's honor code,
  * to request disability accommodation, please contact the Office of Disability Services (348-4285); after initial arrangements have been made with that office, please contact me.