Distributed Systems are ubiquitous in modern computer systems. In general, any computing system composed of interconnected autonomous processors is a distributed system. Therefore, understanding how distributed systems are structured is paramount to master modern computer systems. This course is an introduction to distributed systems. It covers basic principles, architectures, and algorithms of distributed systems.
The goal of this course is to give an introduction to distributed computer systems by surveying various aspects of distributed systems, including: distributed systems architectures, networking and internetworking, distributed objects and remote invocation, security, distributed file systems, name services, consistency and replication, fault tolerance, and distributed transactions.
Classes, programming assignments, and project.
Midterm exam, project, and final exam.