CSCI/ECEN 5673: Distributed Systems

Spring 2011

Department of Computer Science, University of Colorado at Boulder


See the Moodle class Web page at

Schedule & Location: Mon, Wed 5-6:15 pm, ECCS 1B28 (also offered as a CAETE course)
Course number: CSCI 5673-002
.  See also the CS Web site and look under the Courses option.
Prerequisites: CSCI 5573 Advanced OS.

Instructor: Professor Rick Han,
Office: ECCR 1B05F
Office Hours:
Tuesdays 2-3 pm and Wednesdays 1-2 pm in ECCR 1B09 (next door to my office).  Additional appointments as needed.
Phone: 303-492-0914


Other optional references: 

class Web site:
See the Moodle class Web page at  Assignments, lecture slides, and announcements can be found there.  The moodle has a variety of useful features, including a forum for posting questions.  Each student should establish an account on the moodle and then subscribe to our class on the moodle using the special enrollment key given out in class.  The moodle has been upgraded to v2.0, so you must create a new account.


The topics to be covered include the following.  We will seek to adhere to the timeline, but as the situation warrants new topics may be added and/or others shortened, eliminated, or shifted around in time, and due dates may be modified.  Stay tuned to the moodle for changes in this schedule.

Introduction (review stuff you should already know: DNS, SSL/TLS, NFS), Cloud Computing, Google File System
(MLK Holiday) Google MapReduce
Google BigTable, other Google infrastructure
Amazon Web Services, EC2, S3, SimpleDB, Dynamo
Eucalyptus Open Source Cloud, Snow Flock.  Project proposals due.
Content Distribution Networks, Akamai, Peer-to-peer systems, BitTorrent
Storage Area Networks, Publish-subscribe.  Programming assignment due.
RPC, Java RMI, REST, SOAP, XML Web Services
Time Synchronization, Distributed Mutual Exclusion/Elections
Distributed Transactions, Replication/Fault Tolerance
Midterm Exam.  Service discovery/naming
Fault Detection, Load Balancing, Distributed Hash Tables, Caching, Application layer multicast
Intrusion Detection, Security, Privacy, Mobility
Distributed application case studies: Facebook/social networks, Skype/multimedia.
Final project presentations and reports (Also during the final exam time slot, though no final exam).


20%  Midterm exam
15%  Programming assignment
50%  Final project report and presentation
15%  Class participation, paper reviews, possibly other presentations

Programming assignments and reviews must be submitted by uploading them to the moodle class Web page by the deadline, unless otherwise noted.    Extensions will not be granted except at the instructor's discretion in documented cases of extreme hardship, unless otherwise noted.  All programming assignments and reviews should be your original work, unless otherwise noted.

Plagiarism policy.

Additional Policies:

Disability Policy

Religious Observances Policy

Discrimination and Sexual Harassment Policy

Classroom Behavior Policy