CS 675 - Distributed Systems
Spring 2019
Art and Design Building 2026
Wednesday 4:30 - 7:10 pm
Description
This course focuses on basic concepts underlying the design,
implementation, and management of distributed systems. It covers
fundamental topics in distributed systems, including but not limited to
distributed system architectures, inter-process communication,
distributed middleware, synchronization and coordination,
distributed agreement, concurrency control, replication, and fault
tolerance.
Prerequisites
CS 571 (Operating Systems). NOTE:
Prerequisites will be
enforced strictly.
Students should also be proficient in network (e.g., socket) programming.
Readings
The textbook for this class is Andrew Tannenbaum and Maarten van
Steen, ``Distributed Systems:
Paradigms and Principles'', Prentice-Hall, 3rd edition, version 3.01, 2017. Additionally,
the following books may be used as reference texts.
- G.
Coulouris, J. Dollimore, T. Kindberg,
“Distributed Systems: Concepts and
Design,” 5th Edition, Addison-Wesley, 2012.
-
K. Birman, "Reliable Distributed Systems:
Technologies, Web Services and Applications," Springer Verlag,
2009.
Course Outline
The following topics will be
covered (not necessarily in the order below)
- Introduction
- Distributed
System Architectures
- Communication in Distributed Systems
- Distributed Middleware
- Client/Server Design Issues
- Virtualization & Code Migration
- Naming
- Distributed Synchronization & Coordination
- Consistency & Replication in Distributed Systems
- Fault Tolerance
- P2P Systems
- Cloud Computing
Projects
There will be several programming
projects. The software required for these projects is available on
the computers in the VS&E Lab.
Please NOTE
- If your code does not compile or run on the VSE Lab machine (e.g.,
zeus.ite.gmu.edu), you will get no credit.
- Late projects lose 20% credit and will not be accepted
3 days after due, unless under prearranged conditions.
- Projects are due at the start of the class, not during class.
Grading
50% of the
course grade
will be based on these programming projects. In
addition, there will
be a mid-term
exam worth 20% of the grade. The final exam will account for the
remaining 30%
of the grade.
No early exams will be given.
Missed/make-up exams are strongly discouraged and must be arranged with the instructor BEFORE the exam
date with an official and verifiable excuse.
Exam Schedule
Mid-term: around mid March (date to be announced later) Final exam: Wednesday,
May 8
(4:30
- 7:15
pm)
Academic Integrity
You are expected to abide by the University's
honor
code and the CS
Department's
Honor
Code and Academic Integrity Policies during the
semester, i.e., collaboration between students in
different groups on an assignment
is unacceptable. Any violation of the honor code will result in
referral to the honor council.
NOTE: I will be
using tools, e.g.,
MOSS
, to detect plagiarism in the
programming
assignments.
Other Information
GMU Academic Calendar
Honor Code
Disability Resource Center
University Catalog
University Policies