Autumn 2026 · Undergraduate
Distributed System
3 Credits 30 Hours Undergraduate Course
Department of Computer Science, IIIT Bhubaneswar
A distributed system is a collection of independent computers that appears to its users as a single coherent system. The components of distributed system reside on different computer systems on a network communicate and coordinate their activities through message passing. Components work in collaboration to accomplish a common objective. The purpose of this course is to offer an in-depth knowledge of basic principles and models behind distributed computing concerning its theory, algorithms, and systems. Some of the emerging technologies in distributed computing include Peer-to-Peer Computing, Distributed Hash Table, Google File System, HDFS, Spark, Sensor Networks and Security in Distributed Systems among others.
Instructor
Utkalika Satapathy
Prerequisite
DSA, Networking, OS, OOP (Java, C++, Python etc.), DBMS
Class Schedule
7 sessionsWeek 3Processes and Communication
Slides Week 4Time in Distributed System
Slides Week 5Broacast Protocols
Slides Materials
Syllabus
Textbooks
9 references Andrew Tanenbaum and Maarten Van Steen — Distributed Systems: Principles and Paradigms, 2nd Ed. Sukumar Ghosh — Distributed Systems - An Algorithmic approach, 2nd Ed. Kleppmann, M. (2017), O’Reilly — Designing data-intensive applications A. D. Kshemkalyani and M. Singhal — Distributed Algorithms: Principles, Algorithms, and Systems Nicola Santoro — Design and Analysis of Distributed Algorithms Nancy Lynch — Distributed Algorithms Mukesh Singhal and Nirajan Shivaratri — Advanced Operating Systems Bacon, J. and Harris, T. (2003), Addison-Wesley — Operating systems: distributed and concurrent software design Cachin, C., Guerraoui, R. and Rodrigues, L. (2011) — Introduction to Reliable and Secure Distributed Programming, Springer (2nd edition) Grading
- Quizzes15%
- Midterm Exam30%
- Final Exam50%
- Teacher's Assessment5%