Distributed Computing

(ITE 802)


  • Note: Students are directed to go through the material released each week. Attempt the assignment related to that specific week and submit the same before the deadline. The students can directly reach to the concerned teacher in case of any queries.
  • Guidelines for submitting assignment solutions: Softcopy of the assignment solutions should be sent to the concernec teacher through email. The name of your softcopy should be enrolmentno_assignmentnumber. Any cheating will be dealt with serious consequences.
  • Textbook: Distributed Systems: Principles and Paradigms (Andrew S. Tanenbaum and Martin V. Steen) 2nd Edition.
  • Format of the material: name_of_the_topic (reference from the bool). E.g. if the topic is "What is a Distributed System" and for reading the students have to follow lecture x from the NPTEL course listed above and section A.b from the book, then it will be written as: What is a Distributed System (Lecture x, Book Section A.b).
  • Teacher Concerned: Mr. Janibul Bashir
  • Semester Project: Choose a distributed system (e.g., blockchain, bittorrent, MapReduce, HDFS, Google BigTable, Spark etc) of your choice and implement it.

             Checkpoint 1: Explain the architecture, features and usefulness of the distributed system. Submit a pdf document of the same. (Deadline 15th  May).

             Checkpoint 2: In your choosen distributed system (in checkpoint 1), explain how they have used clock syncronization (if it is not given, explain how clock is useful in your choosen system). Explain the usefulness of mutual exclusion and leadership in your choosen distributed system.(Deadline 25th May).

          Checkpoint 3: Implement your choosen distributed system (use programming language of your choice). Your system should have a time server for synchronizing the time of other nodes in the system. It should deal with the mutual exclusion issues and must have a mechanism to elect the coordinator. (HINT: You have to create a program that simulates your choosen distributed program) (Deadline 20 June).



  • Lecture #1 (1 May 2020): Introduction to distributed systems, Need of a distributed system, Difference with multiprocessor systems.
  • Lecture #2 (3 May 2020): Distributed systems goals (Availability, transparency, openness, and scalability).
  • Lecture #3 (5 May 2020): Core issues in distributed systems ( issues related to concurrency, latency, and partial failures).
  • Lecture #4 (7 May 2020): Network and system failures in distributed systems.
  • Lecture #5 (Part 1) (8 May 2020): Logical Architectures of distributed systems.
  • Lecture #5 (Part 2) (9 May 2020): System Architectures of distributed systems.
  • Lecture #6 (13 May 2020): Clock synchronization, Physical Clocks.
  • Lecture #7 (20 May 2020): Methods for synchronizing physical clocks (Cristians algorithm, Berkeley Algorithm, NTP).
  • Lecture #8 (25 May 2020): Logical clocks and their synchronization (Lamborts clock).
  • Lecture #9 (27 May 2020): Mutual exclusion algorithms for distributed systems.
  • Lecture #10 (30 May 2020): Election algorithms in distributed systems.
  • Lecture #11 (02 June 2020): Introduction to distributed systems security.
  • Lecture #12 (05 May 2020): Cryptography for maintaining confendentiality (Not released yet).
  • Lecture #13 (08 May 2020): Cryptography for integrity verification (Not released yet).
  • Lecture #14 (10 May 2020): Digital Signatures (Not released yet).