Distributed Systems

ECE419, Winter 2025
University of Toronto
Instructor: Ashvin Goel

Distributed Systems
HomeLecturesLabsPiazzaQuercus

Course Overview

This course will present core topics in distributed systems, including programming and communication models in distributed systems, data consistency, crash recovery, fault tolerance, replication, and distributed transactions. The course will present abstractions and implementation methods for engineering distributed systems and discuss several cases studies of distributed systems.

The course will have regular lectures, assigned paper readings, a mid-term exam and a final exam. Students will get hands-on experience with most topics through programming assignments.

For course prerequistes and credits, please check the course description in the academic calendar.

Learning outcomes

The learning outcomes of the course are:

Course material

The course material will primarily be lecture slides and relevant research papers. All this material will be available in the lectures page. Please visit this page regularly for updates.

The following (optional) books and reading material are suggested for this course:

Course announcements will be made on the Quercus website. This site will also provide course grades and evaluations.

Course discussion will be on the Piazza website. You should post any questions about the course on Piazza before sending mails to the TAs or the instructor.

Lab assignments

There will be a set of programming assignments in the course. The assignments will require programming in the Go language. All the assignments are to be done individually. Please visit the labs page for all assignment-related information.

Course meetings

The course meeting times are shown below. The lab sessions provide one-on-one help with TAs regarding questions about the programming assignments (attendence is not mandatory). There will be one mid-term exam in the course. There are no tutorials in this course. The final exam schedule will be announced once it is available.

Lecture 1: Tue 1-3pm (GB119) Fri 1-2pm (GB119)
Lecture 2: Mon 5-6pm (GB119) Tue 5-6pm (GB119) Thu 5-6pm (GB119)
Labs: Tue 9-12pm (GB243) Wed 9-12pm (GB243) Wed 3-6pm (GB243) Fri 3-6pm (GB243)
Mid-term exam: Mar 5, Wed 7-8:30pm (EX100)
Final exam: Data not available yet
Office hour: Thu 1-2pm (SF2001B)

Grading

The composition of the final mark is as follows:

The mid-term and the final exam will be held in person.

Students will have a week to contest any grade after the grade is made available. Please submit a short explanation justifying the reasons for resubmission.

Course schedule

The list of the topics is shown below. Please keep in mind that this list of topics is tentative and is intended to serve as only a general guide.

Weeks Topic
1 Introduction
2, 3, 4 Programming distributed systems
4, 5 Distributed storage systems
6, 7 Replicated storage systems
8, 9, 10 Scalable storage systems
11 Transactional storage systems
12 Byzantine failures

Policies and statements

Independent work policy

Students are encouraged to discuss with one another issues and problems that arise in the course of solving the programming assignments. However, plagiarism and cheating will not be tolerated under any circumstances. Cheating includes, but is not limited to, looking at prior solutions or other student's code, copying code from the web, sharing code on Piazza, and generating expected output in an attempt to fool automated marking scripts. It is also an offense to allow others to copy and submit your work for credit, whether with or without your knowledge. So, it is your responsibility to protect your work from being copied by others. If you make your code publicly available, even after the term ends, it will be treated as an academic offense.

All submitted code will be checked for potential plagiarism.

A reasonable rule of thumb to follow during a discussion is that nobody should leave the discussion with written notes of your discussion. It is unlikely that two individuals that have discussed various approaches to a problem will write highly similar programs unless one or both have a written record of what was said.

For more details, please refer to the Academic Integrity web site at the university.

University land acknowledgement

I wish to acknowledge this land on which the University of Toronto operates. For thousands of years, it has been the traditional land of the Huron-Wendat, the Seneca, and the Mississaugas of the Credit. Today, this meeting place is still the home to many Indigenous people from across Turtle Island and we are grateful to have the opportunity to work on this land.

Learn more about Canada's relationship with Indigenous Peoples here.

Wellness and mental health support

Your personal wellness and mental health are important. The University of Toronto and the Faculty of Applied Science & Engineering offer a wide range of free and confidential services that can support your well-being.

As a U of T Engineering student, you have a Departmental Undergraduate Advisor or a Departmental Graduate Administrator who can support you by advising on personal matters that impact your academics. Other resources that you may find helpful are listed on the U of T Engineering Mental Health & Wellness webpage.

Accommodations

If you have a learning need requiring an accommodation the University of Toronto recommends that students register with Accessibility Services as soon as possible.

Term-work petitions

During the course you may encounter circumstances beyond your control, such as illness or a personal/family crisis. These circumstances may force you to miss course work, such as the lab assignments or exams. In such cases, you may submit a term-work petition through the Engineering portal and accommodations for the missed work will be provided as follows:

If you have questions or concerns regarding these policies, please contact the instructor.