CS 403/534 Distributed Systems

Spring Term 2018
Computer Science
Sabanci University


Andrew S. Tanenbaum and Maarten van Steen. Distributed Systems , Published by Maarten van Steen, Edition 3.01 2017. ISBN: 978-15-430573-8-6 (printed version ) and 978-90-815406-2-9 (online version).

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, Second Edition, Chapman & Hall /CRC, Computer and Information Science Series, 2014, ISBN 978-1466552975.


Time & Place

  • Tuesday 14:40 – 16:30, FENS G035
  • Thursday 09:40 – 10:30, FENS G035
  • Wednesday 17:40 – 19:30, FENS G035 (Lab/Recitation Session)

Office Hours

Monday 14:40 – 16:30, FENS 1098

Or by appointment (send an e-mail erkays@sabanciuniv.edu)

Teaching Assistant

TBA, 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 Definitions, Design goals, Types of distrib uted systems
  • Architectures Archtectural styles, Middleware organizations, System architecture, Example architectures
  • Processes Threads, Virtualization, Clients, Servers, Code migration
  • Communication Foundations, Remote Procedure Call (RPC), Message-Oriented communication, Multicast communication
  • Naming Names/identifiers/addresses, Flat naming, Strcutured naming, Attribute-based naming
  • Coordination Clock synchronization, Logical clocks, Mutual exclusion, Election algorithms, Location systems, Distributed event matching, Gossip-based coordination
  • Consistency and Replication Data-centric consistency models, Client-centric consistency models, Replica management, Consistency Protocols, Examples
  • Fault Tolerance Process resilience, Reliable client-server communication, Reliable group communication, Distributed commit, Recovery
  • Security Secure channels, Access control, Secure naming, Security management

Homework/Lab Assignments

Homework assignments and their solutions will be posted here. Handwritten assignments are not acceptable.

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: 28 March 2018 17:40-19:30 @FENS G035
  • 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 in Python programming language. You will not be assumed to be an excellent Programmer. Even though teaching Python is not within the scope of this course, the teaching assistant who is an experienced Python programmer will help you in your assignments and prepare a crash course in Python 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 may 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.


CS 307 (Minimum Grade: D)

Dr. Erkay Savas