Distributed Computer Systems

CS138 studies distributed computer systems. Topics such as communication, naming, synchronization, replication, and security are covered. We'll also look at middleware technologies, which allow abstraction of these mechanisms. Finally, we see how these are put together to compose real-world systems: distributed databases and filesystems, web-based information systems, and mobile information management.

The course objectives are twofold: to understand the mechanisms of distributed computer systems and to gain experience constructing working distributed applications.

What is required of students? We'll have an in-class midterm as well as final, and four written homework assignments. A major portion of the grade will be based on four programming projects. The last three projects build on each other and will result in an implementation of a real-world distributed system. Students will be asked to add features of their own to the final project.

Prerequisite: CS32 or CS36. Students must have experience in designing large modular programs in order to do the semester-long project.

Meeting: K hour (Tuesdays & Thursdays, 2:30pm-3:50) in CIT 368.