A distributed computer system involves a number of independent computers, which do not share memory, connected by a computer network. These computers communicate with each other by passing messages over the network, generally cooperating with each other, appearing to the users as a single coherent system, for example for sharing computation, storage, or other resources.
This course will examine the concepts, architecture, algorithms, protocols, and implementation of distributed computer systems, focusing on issues such as distribution, scale, robustness in the face of failure, and security. Some of the topics we will cover include communication in distributed systems, clocks and order of events in a distributed system, distributed system fault tolerance, distributed file systems, peer-to-peer systems, and distributed shared memory.
There are two versions of this course:
COMP 420, intended for undergraduate students,
and COMP 532, intended for graduate students.
The lectures for both versions meet together,
and the projects and exams for both are the same.
However, for students taking the
graduate version of the course, COMP 532,
there will be an additional requirements as part of each of the projects.