COMP-512: Distributed Systems (Fall 2018)

Names and Numbers:


Access to computing resources anywhere/anytime has become reality. We upload our documents to the cloud, play games onlines and make phone calls via the Internet. Companies use cloud providers to provide them not only Infrastructure as a Service (IaaS) but complete distributed Platforms as a Service (PaaS). Distributed component-based architectures for web-service and business applications are omni-present. Building such complex distributed infrastructures is challenging: communication, data management, asynchronous behavior of the different components in the system, architectural considerations, failures etc. Over the last 20 years many fundamental building blocks have been developed that build the backbone of current distributed infrastructure. These building blocks are the main focus of this course. The objective is to learn the state-of-the-art of practical distributed systems, to understand the typical problems and challenges encountered in distributed environments, and to discuss both sound and practical solutions for them. Topics that will likely be covered:

Flavor of the course:

The objective is to understand the typical problems encountered in distributed environments and develop solutions for them.  For each topic, we will first look at the foundations, develop some basic algorithms, and then look how the issues are handled in real systems. Of course, the course will not cover all interesting topics in this area. But it should enable you You will work both theoretically and practically. The course will have written assignments in which you develop algorithms and analyze different solutions to specific problems.

Furthermore, there will be a considerable programming project.


COMP-251 and COMP-310 (or equivalent). Knowledge of computer network principles will be very useful, but a networks course is not a pre-requisite.

Marking Scheme:

Recommended Textbook:

Distributed Systems: Concepts and Design by G. Coulouris, J. Dollimore, T. Kindberg and G. Blair. Addison-Wesley, 5th ed.

A note on academic integrity

McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures (see for more information).


In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded.