CS 403/534 Distributed Systems

Spring Term 2016
Computer Science
Sabanci University


Andrew S. Tanenbaum and Maarten Van Steen. Distributed Systems: Principles and Paradigms, Prentice Hall, Inc., 2nd Edition 2007. ISBN: 0-13-239227-5

Other Resources

·         George Cloulouris, Jean Dollimore, and Tim Kindberg. Distributed Systems: Concepts and Design, 5th Edition, Addison Wesley, 2011, ISBN: 978-0-13-214301-1.

·         Sukumar Ghosh, Distributed Systems: An Algorithmic Approach, Chapman & Hall /CRC, Taylor & Francis Group, 2007, ISBN 978-1-58488-564-1.


Time & Place

  • Thursday 11:40 – 13:30, FENS G025
  • Friday 15:40 – 16:30, FENS L058
  • Friday 17:40 – 19:30, FENS L058 (Lab/Recitation Session)

Office Hours

Friday 09:40 – 11:30, FENS 1098

Or by appointment (send an e-mail)

Teaching Assistant

Utku Atıl Ay, FENS 2014



The main objective of this course is to study the fundamentals of distributed systems. It focuses on the layer of software that needs to be built on top of computer networks to enable the development of distributed applications.


  • Introduction Definition, Goals, Hardware and Software Concepts, Client-Server Model
  • Communication Protocol Stack, Remote Procedure Call, Remote Method Invocation, Message-Oriented Invocation, Stream-Oriented Invocation
  • Processes Threads, Clients, Servers, Code Migration, Software Agents
  • Naming Naming Entities, Locating Mobile Entities, Removing Unreferenced Entities
  • Synchronization Clock Synchronization, Logical Clocks, Global State, Election Algorithms, Mutual Exclusion, Distributed Transactions
  • Consistency and Replication Data-centric Consistency Models, Client-centric Consistency Models, Distribution Protocols, Consistency Protocols, Examples
  • Fault Tolerance Process Resilience, Reliable Client-Server Communication, Distributed commit, Recovery
  • Security Secure Channels, Access Control, Security Management, Examples
  • Implementations Distributed Object-Based Systems, Distributed File Systems, Distributed Document-Based Systems, Distributed Coordination-Based Systems 

Homework/Lab Assignments

Homework assignments and their solutions will be posted here. Handwritten assignments are not acceptable. The source and object codes must be submitted as electronic copy. Others will be submitted as hardcopy. Submission must be done at the beginning of a lecture.

Course Materials

Course materials such as presentation slides and handouts will be available through WebCT

Tentative grading

  • Midterm: 30%
  • Final: 35%
  • HW Assignments 15%  
  • Project: 15%
  • Participation & Quiz: 5%

Important Dates

  • Midterm: 8 April 2016, 17:40-19:30
  • Final: As scheduled by the student office

Homework Assignments

It is an integral part of the course to implement the distributed systems concepts and ideas in a computer language. You will be asked to do coding in homework assignments. Besides C/C++, you will need to write codes in Java since several assignments will be about Java RMI. You will not be assumed to be an excellent Java programmer. Even though teaching Java is not within the scope of this course, the teaching assistant who is an experienced Java programmer will help you in your assignments and prepare a crash Java course if necessary.
CS 403 Class Projects
In addition to homework assignments, undergraduate students are required to work on a big development project. Students may propose a project even though assigning class projects is normally the responsibility of the instructor. Students may work in groups. Student’s proposals are subject to instructor’s approval. It is essential for students to meet time schedule of the projects. Project groups must provide a demonstration of their work.

CS 534 Research and development projects
Graduate students are required to propose a project, which requires both research and development. They will be assisted in choosing the project topics if necessary. Students may work in groups. Student’s proposals are subject to instructor’s approval. It is essential for students to meet time schedule of the projects. project groups must provide both presentation and demonstration of their work.

Resources and Pointers


CS 307 (Minimum Grade: D)

Dr. Erkay Savas