ECE 750 Topic 5 - Distributed and Network-Centric Computing

Meeting Times

Lectures: Tuesdays 11:30am-2:20pm in EIT 3141

Teaching Team

Instructor: Professor Wojciech Golab,
Teaching assistants: To be determined.

Note: Please include “ECE750” in the subject line of any email to the teaching team.

Office Hours

Instructor: Tuesdays in DC-2639 (temporary office)

Course Description

Calendar description: Principles of distributed computing; architectures and middleware; servers, processes, and virtualization; upper-layer network protocols, inter-process communication and remote procedure calling; concurrency, synchronization and distributed algorithms; dependable distributed systems and fault tolerance.

Instructor’s overview: Distribution has become essential to scaling computation on modern hardware. ECE 750 will introduce students to software techniques for distributed computing with a focus on two fundamental technical concerns: parallelism and fault-tolerance. These topics will be studied in the context of open-source software systems including communication middleware and big data tools.

Learning Objectives

Upon successful completion of the course, students should be able to:

  • Understand the architectures, protocols and algorithms underlying modern distributed systems.
  • Understand fundamental techniques for making distributed systems scalable and dependable.
  • Reason about design trade-offs in distributed systems.
  • Design, implement, and maintain a simple middleware system using an RPC framework (Thrift).
  • Use a scalable data processing framework to solve analytics problems (Hadoop, Spark).
  • Implement simple replication schemes using a fault-tolerant coordination service (ZooKeeper).
  • Discuss the relative merits of distributed versus centralized software systems.

Learning Materials

Required textbook: A. S. Tanenbaum and M. Van Steen, Distributed Systems: Principles and Paradigms, 2nd Edition, Pearson-Prentice Hall, 2006.

This textbook is available online. Paper copies of the book can be purchased on for $35.00.

Courseware: We will use LEARN to distribute course materials.

Prerequisites and Antirequisites

Prerequisites: Undergraduate-level courses in operating systems, databases, and computer networks.

Anti-requisites: ECE 750 Topic 5, ECE 750 Topic 10

Evaluation Structure

Coursework will include the following components:

Assignments: 45% (3 total at 15% each)
Project: 25% (may include a short in-class presentation)
Final exam: 30% (closed book, no aids allowed)

Note: A passing grade on the final exam is required (but not sufficient) to pass the course. If a student does not pass the final exam, the final course grade becomes the final exam grade. The course instructor reserves the right to increase the final course grade to 40% on a case-by-case basis, depending on the instructor’s assessment of the student’s performance throughout the term.

Group Work

Unless stated explicitly by the course instructor, all coursework will be completed individually. In cases where group collaboration is permitted, coursework will be completed in small groups (2-3 students). Each group member individually is responsible for learning all the material corresponding to a group deliverable, and may be required to answer technical questions while demonstrating the solution to members of the teaching team. Members of the teaching team may assign or re-arrange groups for academic reasons. Copying material from other groups, from other courses, or from online sources is forbidden except for materials authorized explicitly by the course instructor. Unauthorized collaboration and copying of material constitute academic offences under Policy 71.

Lateness and Absence

Coursework deliverables other than exams will be penalized −20% if submitted up to 24 hours late, −40% if submitted more than 24 hours and up to 48 hours late, and will not be accepted at all after 48 hours. Late penalties will not be prorated, and assignment deadlines will not be extended past the last day of lectures.

A missed exam will receive a grade of 0% unless the student is incapacitated during the exam due to illness. A valid medical certificate showing the degree of incapacitation must be presented within five business days of the missed exam except in cases of prolonged incapacitation, such as when a student is admitted to hospital. The instructor reserves the right to reject medical certificates where the degree of incapacitation is based on the patient’s description of his/her illness, rather than on a professional medical examination. Depending on the degree of incapacitation shown on the medical certificate, and the manner of assessment, the instructor will either assign 0% or, at his discretion, will make alternative arrangements. For example, if a student misses a midterm exam and the degree of incapacitation documented is less than severe (e.g., moderate or mild) then the instructor may increase the weight of the final exam from 50% to 60%, thus imposing a 10% penalty on the final course grade for the missed midterm.

Submission and Pickup of Assignments

Assignment deliverables will be submitted electronically using a drop box in LEARN. Feedback from graders, if available, may be provided on paper, electronically by e-mail, or electronically using LEARN.

Grading and Re-grading

All coursework items, including exams, will be graded on the basis of completeness, correctness, and clarity. Members of the teaching team may also evaluate students' proficiency in the use of software in connection with assignments. Students are encouraged to ask technical questions during office hours, as well as using the online discussion forum.

Where appropriate, students are expected to test their own solutions to problems using appropriate input data. In the event that a student's solution differs substantially from the solution recognized by the teaching team, the student may be asked to provide sample inputs and outputs to evaluate the correctness of their solution.

Students who feel that they have been graded unfairly may request that a coursework item be re-graded, in which case the entire item will be re-graded. As a result, the grade may increase, decrease, or remain unchanged. The teaching team may refuse to re-grade coursework if there is legitimate suspicion that the solution was modified or otherwise tampered with after submission.

General Policies and Information

  • 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.  All new graduate students must complete this module.
  • Grievance: 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.
  • Discipline: A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate Associate Dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties check Guidelines for the Assessment of Penalties.
  • Appeals: A decision made or 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: The AccessAbility Services, 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 AccessAbility Services at the beginning of each academic term.
  • and alternatives:Plagiarism detection software (Turnitin) may be used to screen assignments in this course. This is being done to verify that use of all material and sources in assignments is documented. In the first week of the term, details will be provided on request about the arrangements for the use of Turnitin and alternatives in this course.

Useful URLs

LEARN website for this course

Piazza (online discussion forum)