CSCI 3325
Distributed Systems

Bowdoin College
Spring 2015
Instructor: Sean Barker

Course Description

This course will study the key design principles and implementation challenges of distributed systems, which are collections of independent, networked machines functioning as single systems. Topics include networking and communication protocols, naming, synchronization, consistency and replication, fault tolerance, and security. Students will gain exposure to real-world distributed systems through programming-intensive projects as well as critiques of research papers covering a variety of real-world systems, ranging from the Internet to file systems.

Prerequisites: CSCI 2101/210. A previous course on networks or operating systems will be helpful but is not required.


Instructor: Sean Barker
Office: Searles 221
Phone: 207-798-4220
Office hours: Mondays 12-2, Wednesdays 1-3, Thursdays 4-5, or by appointment.

Course Requirements

Attendance and participation in class, completion of written homeworks and programming-intensive programming projects, a midterm exam, and a final project. Evaluation will be as follows:

Programming projects will be in Java and C/C++ and will involve a substantial time commitment on your part. Projects should be completed in groups of 2 (or 3, in the case of the final project). You will have several weeks to complete each project, but it is essential that you start the projects early. You will have 3 flex days to submit projects late without penalty during the semester, which may be allocated however you wish. Beyond the use of your flex days, late projects will be penalized a letter grade per day. Please let me know in advance that you plan to use a flex day.

There will be a written midterm exam stressing conceptual understanding of the course material. In lieu of a final exam, you will complete a more extensive final project. The topic of your final project is up to you and creativity is encouraged, though I will provide sample project ideas as well. In addition to implementing your project, you will write a paper detailing your project and present your results to the class during the final week of classes.



G. Coulouris, J. Dollimore, T. Kindberg, and G. Blair. Distributed Systems: Concepts and Design, 5th edition (2011). Available at Amazon or elsewhere.

Class Information

Tuesdays and Thursdays
2:30 - 3:55 PM
Searles 126


Electronic Device Policy

Use of laptops in-class is permitted for note-taking or other class-related purposes. Cell phones should be silenced and put away during class to avoid disruptions.

No electronic devices, including computers, phones, or calculators, are permitted during exams unless specifically indicated by the instructor.

Collaboration Policy and Honor Code

You are expected to follow Bowdoin's Computer Use Policy and its Academic Honor Code. No collaboration whatsoever is permitted on exams. You may, however, discuss lab assignments with other class members. Ideally, these discussions should be limited to broad, conceptual questions, since labs are the primary means for you to learn the material, but you are also allowed to discuss more detailed questions regarding the design and implementation of your programs. However, you are not allowed to share code under any circumstances. For example, it is permitted for one student to ask another student how he/she did something or to ask for help debugging a problem in his/her code; it is not permitted for a student to take another student's code or to let another student write code for him/her. Remember that providing help beyond what is allowed here is as much of an infraction as receiving help. Once you have finished the course, sharing your work with future students taking the course is also a violation.

Use of the internet (e.g., Google) for reference purposes is allowed on lab assignments, such as looking up the use of a particular library function. Blindly copying sections of code found online, however, is not allowed, and you should never submit code that you do not understand or would not be able to clearly explain.

In the interest of fairness to all students, violations of this policy are grounds for me to initiate an action that would come before the Judicial Board. If you have any questions about this policy, please do not hesitate to ask for clarification.