University of Waterloo
University of Waterloo

CS 755 - System and Network Architectures and Implementation

Fall 2014

Comp Sec Camp Loc Time Days/Date Bldg Room Instructor
LEC 001 UW U 01:30-04:20W DC 3313 Martin Karsten
Registrar's Schedule of Classes

Instructor's Name Office Location Contact Office Hours
Martin Karsten DC 3506 by appointment

Calendar Description

Distributed, multi-user applications are designed and implemented using many underlying technologies that must be coordinated to provide important features such as robustness, scalability, manageability, ubiquitous access, privacy, security, authentication, and role-based access control, to name only a few. The network supporting the application may be crucial to its successful implementation. The application logic itself is likely implemented in a number of languages and programming environments. Students will be provided with an advanced overview of current networking and distributed systems topics, and will apply it to case studies drawn form consumer internet applications, enterprise systems, and medical and healthcare systems.


From the School's web page:

"Graduate courses assume a background of at least third-year Honours Computer Science at the University of Waterloo and a similar level of mathematical maturity."

For CS 755, students are expected to understand the fundamentals of programming languages, data structures, operating systems, and algorithms, each at least at the level of an introductory course.


This course provides a graduate-level introduction to computer networks and distributed systems. Students who have taken CS454/654 or CS 456/656 at UW previously or equivalent course(s) at another university cannot count CS 755 towards their graduate program requirements.


There are no required textbooks for the course. Lecture slides will be provided, as well as research papers. The lecture slides are based on the following textbooks, which provide useful background information:

Evaluation (tentative)

Students must complete and sign the Academic Integrity acknowledgement form and hand it in at the beginning of the third class. See policies below for further information.

Schedule (tentative)

Each weekly class meeting will focus on a specific topic in networking and distributed systems. Delivery of classes will be a mix of lecture-style presentation and paper discussion.

Date TopicSlidesPresentations
Sep 10Introduction / BackgroundModule 0 
Sep 17ChannelsModule 1 
Sep 24NetworksModule 2 
Oct 1TransportModule 3 
Oct 8Remote ServicesModule 4 
Oct 15Naming and MobilityModule 5Internet Indirection Infrastructure
Oct 22Fault ToleranceNotesThe Part-Time Parliament
The Chubby Lock Service...
Oct 29Ordering and ConsistencyNotesInterval Tree Clocks
Distributed Snapshots: Determining Global States...
Nov 5Storage and ReplicationNotesBigtable: A Distributed Storage System...
Megastore: Providing Scalable, Highly Available Storage...
Nov 12Cloud ServicesNotesConsistency-Based Service Level Agreements for Cloud Storage
Generalized Resource Allocation for the Cloud
Nov 19Big Data MapReduce: Simplified Data Processing on Large Clusters
Improving Large Graph Processing on Partitioned Graphs...
Nov 26Final Exam (in class)  


Academic Integrity

In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. Check the Office of Academic Integrity's website for more information.

All members of the UW community are expected to hold to the highest standard of academic integrity in their studies, teaching, and research. This site explains why academic integrity is important and how students can avoid academic misconduct. It also identifies resources available on campus for students and faculty to help achieve academic integrity in — and out — of the classroom.


A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70 — Student Petitions and Grievances, Section 4. When in doubt please be certain to contact the department's administrative assistant who will provide further assistance.


A student is expected to know what constitutes academic integrity, to avoid committing academic offenses, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about "rules" for group work/collaboration should seek guidance from the course professor, academic advisor, or the Undergraduate Associate Dean. For information on categories of offenses and types of penalties, students should refer to Policy 71 — Student Discipline. For typical penalties, check Guidelines for the Assessment of Penalties.

Avoiding Academic Offenses

Most students are unaware of the line between acceptable and unacceptable academic behaviour, especially when discussing assignments with classmates and using the work of other students. For information on commonly misunderstood academic offenses and how to avoid them, students should refer to the Faculty of Mathematics Cheating and Student Academic Discipline Policy.


A decision made or a penalty imposed under Policy 70, Student Petitions and Grievances (other than a petition) or Policy 71, Student Discipline may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72 — Student Appeals.

Note for students with disabilities

AccessAbility Services (formerly the Office for Persons with Disabilities or OPD), located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with the OPD at the beginning of each academic term.