CS 403/534 Distributed Systems

Spring Term 2019
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

  • Monday 10:40 – 11:30, FENS G035
  • Wednesday 14:40 – 16:30, FENS G035
  • Monday 18:40 – 20:30, FASS 1098 (Lab/Recitation Session)

Office Hours

Wednesday 09:40 – 11: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, Consensus algorithms, Distributed commit, Recovery
  • Security Secure channels, Access control, Secure naming, Security management

Homework/Lab Assignments

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

Course Materials

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

Tentative grading

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

Important Dates

  • Midterm Exam: 08 April 2019 @18:40-20:30, FASS 1098)
  • 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. In addition to homework assignments, undergraduate students are required to work on a big development project. Students may propose a project topic subject to the instructor’s approval. Otherwise, students will work on the project offered by the instructor. Students may work in groups for the class projects and each group must provide a demonstration of its work.

CS 534 Research and development projects
Graduate students may propose a project topic, which requires both research and development and subject to the instructor’s approval. 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. Students may work in groups for the class projects and each group must provide both presentation and demonstration of its work.


CS 307 (Minimum Grade: D)

Dr. Erkay Savas