Class web page: http://www.cs.toronto.edu/~yganjali/teaching/csc458-fall-2025/
This is a tentative schedule of course lectures and might be updated. Please check regularly.
# | Week | Lecture Topic | Reading | Handouts | Assignments |
---|---|---|---|---|---|
1 | Sep 2 | Course logistics and introduction | Chapter 1 | H01 - Info sheet [pdf] H02 - Lecture 1 [pdf][pptx] |
- |
No tutorial | - | - | - | ||
2 | Sep 9 | Link layer, error detection/correction | Chapter 2 | H03 - Lecture 2 [pdf][pptx] | - |
Tutorial: socket programming | - | H04 - Tutorial I [pdf][pptx] | - | ||
3 | Sep 16 | Interconnecting LANs; Internet Protocol (IP) | Chapter 3 | H05 - Lecture 3 [pdf][pptx] | Prog Assignment 1 out |
Tutorial: Prog Assignment 1 Overview | - | H08 - Tutorial II [pdf][pptx] | - | ||
4 | Sep 23 | Routing and Forwarding | Chapter 3 | Problem Set 1 out | |
Tutorial: Sample Problems | - | - | |||
5 | Sep 30 | Internet Topology | Chapter 4 | Problem Set 1 due (Sep 30) | |
Tutorial: Problem Set 1 Q&A | - | - | - | ||
6 | Oct 7 | Transport Protocol | Chapter 5 | Quiz 1 | |
Tutorial: Programming Assignment 1 Q&A | - | - | |||
7 | Oct 14 | Congestion Control | Chapter 6 | - | Prog Assignment 1 due (Oct 17) |
No tutorial | - | - | - | ||
8 | Oct 21 | Midterm exam | - | In class midterm | - |
No tutorial | - | - | - | ||
9 | Oct 28 | No Classes - Reading Week | - | Prog Assignment 2 out | |
Tutorial: Programming Assignment 2 Overview | - | - | |||
10 | Nov 4 | Queueing Mechanisms; Middleboxes | Section 6.4.1 | Problem Set 2 out | |
Tutorial: Problem Set 2 Review | - | - | |||
11 | Nov 11 | Software-Defined Networking | Chapter 8 | Problem Set 2 due (Nov. 11) | |
Tutorial: Problem Set 2 Q&A | - | - | - | ||
12 | Nov 18 | Data Center Networking & Networks for ML | - | Quiz 2 | |
Tutiorial: Prog Assignment 2 Q&A | - | - | - | ||
13 | Nov 25 | Overlay networks and final review | - | Programming Assignment 2 due (Nov 28) | |
Tutorial: Sample Final Review | - | H30 - Midterm Section 101 [pdf] | - | ||
Final Exam | - | Please check A&S final exam schedule for time/location. | - |
This is a course on computer networking systems. Topics covered in this course include computer communication network design and implementation, packet switching systems, socket programming, network software, hardware, and protocols, network naming and addressing, congestion control schemes, software-defined networking, networking for machine learning, network security, and wireless networks. The emphasis is on programming and experimental analysis of real network components. We also focus on specific use-cases like network systems for machine learning applications towards the end of the course.
You need to have a basic understanding of probability theory, a strong background in C programming, and be familiar with the Unix operating system. If you are not sure whether you have the background to take this course, please take a look at the first programming assignment (link available at class web page) to get an idea of the type of work, and time you will need to spend on it. If you still are not sure, send me an email.
You can get a print copy of this book on Amazon. Alternatively, you can find an online version here: https://book.systemsapproach.org/
You have one free late submission of 24 hours for one of the assignments (problem set, or programming, but not both). This 24 hour limit is hard, and cannot be extended. For any late submission other than the free one, 10% of the mark will be deducted for each day late, up to 20%. Assignments will not be accepted after two days.
There will be an in class midterm exam on October 21. There is also a final exam. For date, and location of the final exam, please check the class web page. All graduate students enrolled in this course are required to complete the midterm and final exams.
Here is the list of course teaching assistants (the list will be updated with information about assignments each TA is responsible for). Please use Piazza for questions regarding each assignment. If there is a specific inquiry that needs to be sent to the TAs directly, please make sure you contact the appropriate TA.
Please use our class bulletin board (on Piazza) to ask questions from TAs. You can sign up to the bulletin board here:
https://piazza.com/utoronto.ca/fall2025/csc458csc2209
By using the bulletin board, everyone in class can read the replies, and the overall number of repeat questions is reduced. Please check the bulletin board before posting any new questions. We guarantee any question posted to the bulletin board will be responded within 48 hours.
If you have any questions that cannot be posted on the bulletin board (e.g. questions about your grades), you can e-mail TAs directly. There is no guarantee on when you will get a reply. We really want you to use the bulletin board. :-)
Please make sure to check the announcements folder regularly for updates regarding lectures, assignments, etc.
In addition to our bulletin board, we have a mailing list that will be used exclusively for sharing important information. We will use the email address you have used on ACORN to create this list (please make sure that is a valid email address). Please do not use this email to ask questions.
I will use a combination of slides and blackboard (physical blackboard in the classroom). Please take notes when I am using the blackboard. The handouts will be available on class web page, so you don’t need to take notes.
Please see Handout #1 regarding academic offenses and permitted collaborations.
There will be two problem sets, two in-class quizzes, and two programming assignments. Assignments will be posted here.
For this assignment, we will implement a simplified portion of network stack: creating Ethernet packets from IP packets and sending them out.