|
|
| Instructor |
Mina Tahmasbi Arashloo |
mina.arashloo@uwaterloo.ca |
| Lectures |
Mondays & Wednesdays |
4:00PM - 5:20PM |
| Office Hours |
Tuesdays, 5:00PM - 6:00PM |
Only for September - The new time for October onwards will be posted here |
| Teaching |
Nesa Abbasimoghaddamniasar |
nabbasim@uwaterloo.ca |
| Assistants |
Amaan Ahmed |
a477ahme@uwaterloo.ca |
|
Kimiya Mohammadtaheri |
k4mohamm@uwaterloo.ca |
|
Muhammad Sulaiman |
m4sulaim@uwaterloo.ca |
|
Mohammad Zangooei |
mzangooe@uwaterloo.ca |
Modern computer networks are complex distributed systems, with thousands of heterogeneous software and hardware components working together to deliver traffic from sources to destinations. They serve applications that demand much more than basic network connectivity, asking for certain levels of performance and reliability from the network.
In this course, we will discuss the fundamental concepts behind modern computer networks, starting from just a pipe between two endpoints, to a shared infrastructure, to scaling to the entire planet, and networks in the wild today.
Following is a tentative schedule of lectures. Details are subject to change depending on how our in-class conversations go.
| Dates |
Lectures |
Slides |
Assignments & Project |
| Introduction |
| Wed - Sep 9 |
What is a computer network, and why learn about it? |
|
|
|
| Part 1: Network as a pipe |
| Mon - Sep 14 |
Building networked applications |
|
|
| Wed - Sep 16 |
What metrics do networked applications care about? |
|
|
| Mon - Sep 21 |
The transport layer - Introduction |
|
|
| Wed - Sep 23 |
The transport layer - Dealing with bit errors |
|
Fri, Sep 25: Paper choice due (CS 656) |
| Mon - Sep 28 |
The transport layer - Dealing with loss |
|
|
| Wed - Sep 30 |
The transport layer - Dealing with performance problems |
|
|
| Mon - Oct 5 |
The TCP protocol |
|
Mon, Oct 5: Assignment 1 released |
| Wed - Oct 7 |
The QUIC protocol |
|
|
|
| Reading Week |
|
| Part 2: Network is a shared infrastructure |
| Mon - Oct 19 |
How do many endpoints share a network? |
|
Mon, Oct 19: Baseline and extension proposal due (CS 656) |
| Wed - Oct 21 |
Finding paths - Part I |
|
|
| Mon - Oct 26 |
Finding paths - Part II |
|
Tue, Oct 27: Assignment 1 due |
| Wed - Oct 28 |
Congestion control - Part I |
|
|
| Mon - Nov 2 |
Congestion control - Part II |
|
|
|
| Midterm Exam: Tue Nov 3, 7:00PM to 8:50PM, location TBD |
|
| Part 3: Scaling to the whole planet |
| Wed - Nov 4 |
Naming |
|
Fri, Nov 6: Assignment 2 released |
| Mon - Nov 9 |
Managing scale through aggregation and hierarchies - Part I |
|
|
| Wed - Nov 11 |
Managing scale through aggregation and hierarchies - Part II |
|
Fri, Nov 13: Project progress report due (CS 656) |
| Mon - Nov 16 |
Managing decentralized ownership (BGP) - Part I |
|
|
| Wed - Nov 18 |
Managing decentralized ownership (BGP) - Part II |
|
|
| Mon - Nov 23 |
Putting it all together |
|
|
|
| Part 4: Networks in the wild |
| Wed - Nov 25 |
Data center networks and AI infrastructure |
|
|
| Mon - Nov 30 |
Programmable networks |
|
|
| Wed - Dec 2 |
Dealing with failures at scale |
|
Thu, Dec 3: Assignment 2 due |
| Mon - Dec 7 |
TBD |
|
Mon, Dec 7: Project final report and demo due (CS 656). No extensions possible (per school policy) |
If you are curious to learn more, here is an additional list of resources that will be updated throughout the term.
Books:
- Computer Networking, A Top-Down Approach, James Kurose & Keith Ross, Pearson, 8th Edition (7th Edition is also fine).
- Computer Networks, A Systems Approach, Larry Peterson & Bruce Davie, Morgan Kaufmann, 6th Edition.
Papers, blog posts, and platforms: Research papers, blog posts, and platforms related to computer networks. References to these resources will be added to this section throughout the term.
LEARN: Course announcements, slides, quizzes, and assignments will be posted on LEARN.
Piazza: We will use Piazza for course-related discussions. Piazza is catered to getting you help from classmates, the TAs, and the instructor. Rather than emailing questions to the teaching staff, we encourage you to post your questions on Piazza.
When asking questions, please adhere to the course Q&A policy.
Q&A: We strongly encourage you to ask questions about anything in the course – lecture material, quizzes, assignments, etc – and we'd love to have discussions about computer networks! That said, this is a large class. To ensure the teaching team can effectively answer questions, we have put the following policies in place:
- We may not be able to answer duplicate questions, i.e., topics that are already discussed in the course outline, questions already answered on Piazza, or questions already answered in the assignment FAQs.
- Please check the course outline, assignment FAQs, and Piazza before posting your question.
- While we will do our best to answer your questions as soon as possible, it may take the teaching team up to 2 business days to answer emails and Piazza questions. Please take that into account when planning when to start working on assignments and studying for the exams.
- Specifically, keep in mind that the teaching team may not be able to get to last-minute close-to-deadline questions outside office hours.
Attendance: Attendance is not mandatory but we strongly encourage you to attend the lectures. While the slides will be available online, they are mostly intended as teaching aids for the lectures as opposed to detailed lecture notes. As such,
they do not necessarily include all the details of the topics discussed in this course.
The final grade for the course will be based on the following components:
|
CS 456 |
CS 656 |
| Quizzes |
10% |
10% |
| Programming Assignments |
30% |
15% |
| Project (CS 656) |
- |
15% |
| Midterm |
25% |
25% |
| Final |
35% |
35% |
Quizzes (10%): The goal of quizzes is to help you assess your understanding of the course material, and to help us as your instructors to pinpoint subjects that need extra discussion in the class. Here are the logistics:
- Every week that we have lectures, a quiz will be posted on LEARN on Thursday that week at 8PM ET.
- Unless stated otherwise, you have until Sunday at 11:59PM to complete the quiz.
- Questions are multiple-choice and are about the material covered in class that week.
- You will have unlimited attempts. Hopefully, this helps you focus on your learning of the material without having to worry about your grade.
- A missed quiz cannot be retaken and doctor's note is not accepted for missed quizzes.
- You can miss two quizzes without it affecting your grade.
Programming Assignments - CS 456 (30%): There are two programming assignments, each counting as 15% of your final grade. Here are the logistics:
- Assignment specifications will be posted on LEARN.
- Assignments are to be completed individually and submitted to the appropriate Dropbox on LEARN.
- For late submissions, see the late policy below.
Programming Assignments - CS 656 (15%): You complete one of the two programming assignments, counting as 15% of your final grade. It is your choice which one. In place of the other, you complete the project described below. For the logistics, please see the above text for "Programming Assignments - CS 456".
Project - CS 656 (15%): Students taking CS 656 work individually on a project based on a published research paper related to computer networks. You are expected to reproduce the results about one of the paper's claims using the authors' artifact, evaluate their solution under settings that are different from the paper's, and report and analyze the results. A list of papers with working artifacts will be posted on LEARN. If you would rather work on a paper that has no artifact, you can reimplement it from the paper's description instead of extending it, with the instructor's approval.
Your project grade comes from the final report and the demo. The first three deliverables are not graded on quality, but they are required.
Missing each one takes 3% off your final grade for the course. The late policy below applies to these deliverables.
- Paper Choice, due Friday, September 25: a one page note stating the paper you have chosen, the claim and corresponding figures you intend to reproduce, whether an artifact exists and where to find it, and what compute or data it needs. Please also state which of the two programming assignments you are skipping.
- Baseline and Extension Proposal, due Monday, October 19: The paper's own results, reproduced from its artifact, together with the commands you ran to get it. In the same document, describe in half a page what you plan to change for the extension.
- Progress Report, due Friday, November 13: a 2 page report with the results you have so far, compared against the ones in the paper, and what you plan to show in your final report and demo.
- Final Report and Demo, due Monday, December 7: a 4-page paper describing the paper you chose, what you reproduced, what you changed, and what you found. You are also expected to do a 10-minute demo with the instructor, showing your experiments running and demonstrate your understanding of the paper's approach and the "why" behind the paper's results and your results.
The paper you choose and the extension you propose both have to be approved by the instructor. If you miss a deadline, you can still get approval later, at the cost of the penalty above. If you never get approval, your work is still marked, but you take on the risk that what you chose does not meet the requirements, and by then it will be too late to change it.
Late Policy: This applies to programming assignments and to project deliverables. It does not apply to quizzes, which cannot be retaken.
- You have a total of four late days for the whole term, including self-declared absences through Quest (e.g., short-term absences and COVID-19-related absences).
- Use your late days to accommodate unexpected situations. No questions will be asked.
- Examples of unexpected situations include your internet connection being down right before the deadline or forgetting or missing the deadline.
- Your four late days are for the whole term, not per assignment or deliverable.
- E.g.: If you use 2 late days for assignment 1, you have only 2 late days left to use for the rest of the assignments.
- Late days are tracked daily, not hourly. The number of late days is calculated based on the records on LEARN, rounding up the time of each late assignment.
- E.g., if the LEARN records show that assignment 1 is submitted 1 hour late, and assignment 2 is submitted one day and 20 hours late, you have used up a total of three late days.
- No extensions are granted if you have no late days left, so plan ahead and use them carefully.
- E.g.: If you have no late days left and submit the assignment after the deadline, you will not receive any points for the assignment
- Nothing can be submitted after the last day of classes, Monday, December 7, no matter how many late days you have left. This is university policy and no extensions are possible past that date.
Midterm (25%) and Final (35%) Logistics:
- Exams will be solely based on the materials presented in the class. There is no assigned textbook, and the resources listed above are optional and not examinable on their own.
- Exams are closed-book.
- Date, time, and location of the exams will be announced by the Registrar's Office.
- Midterm and final have to be passed, in the aggregate, in order to pass the course. That is, [(Midterm*25) + (Final*35)] / 60 >= 50%
- If you miss the midterm due to an officially filed short-term absence, the weight will be shifted to the final exam, i.e., the final exam will be counted as 60% of your grade, and you need to score at least 50% in the final exam to pass the course.
- In the case of a missed final exam, a Verification of Illness form must be uploaded to the university's online portal (see declaring absences due to illness).
- The verification of illness form must include the statement "This Student is unable to write the test on (date) for (medical reasons)".
- Documentation must show that the physician was consulted before or on the day of the exam.
- Only original copies can be accepted. A statement merely confirming a report of illness made by the student is not acceptable.
Generative AI: You are accountable for the content and accuracy of all work you submit in this class, including any supported by generative AI.
Recommendations for how to cite generative AI in student work at the University of Waterloo may be found through the Library at
this link. Please be aware that generative AI is known to falsify references to other work and may fabricate facts and inaccurately express ideas. GenAI generates content based on the input of other human authors and may therefore contain inaccuracies or reflect biases.
In addition, you should be aware that the legal/copyright status of generative AI inputs and outputs is unclear. Exercise caution when using large portions of content from AI sources, especially images. More information is available from the Copyright Advisory Committee at
this link .
Territorial Acknowledgement
The University of Waterloo acknowledges that much of our work takes place on the traditional territory of the Neutral, Anishinaabeg and Haudenosaunee peoples. Our main campus is situated on the Haldimand Tract, the land granted to the Six Nations that includes six miles on each side of the Grand River. Our active work toward reconciliation takes place across our campuses through research, learning, teaching, and community building, and is centralized within the
Office of Indigenous Relations.
Mental Health Support: The Faculty of Math encourages students to seek out mental health support if needed.
On-campus Resources:
Off-campus Resources:
- Good2Talk (24/7): Free confidential help line for post-secondary students. Phone: 1-866-925-5454 (Ontario and Nova Scotia only)
- Here 24/7: Mental Health and Crisis Service Team. Phone: 1-844-437-3247 (Waterloo Region only)
- OK2BME: set of support services for lesbian, gay, bisexual, transgender, or questioning teens. Phone: 519-884-0000 extension 213 (Waterloo Region only)
- EMPOWER ME 1-833-628-5589 for Canada/USA. other countries see: http://studentcare.ca/rte/en/IHaveAPlan_WUSA_EmpowerMe_EmpowerMe
- EMPOWER ME in China:
China North 108007142831
China South 108001402851
Diversity:
It is our intent that students from all diverse backgrounds and perspectives be well served by this course, and that students’ learning needs be addressed both in and out of class. We recognize the immense value of the diversity in identities, perspectives, and contributions that students bring, and the benefit it has on our educational environment. Your suggestions are encouraged and appreciated. Please let us know ways to improve the effectiveness of the course for you personally or for other students or student groups. In particular:
- We will gladly honour your request to address you by an alternate/preferred name or gender pronoun. Please advise us of this preference early in the term so we may make appropriate changes to our records.
- We will honour your religious holidays and celebrations. Please inform us of these at the start of the course.
- We will follow AccessAbility Services guidelines and protocols on how to best support students with different learning needs.
AccessAbility Services, located in Needles Hall, Room 1401, 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 AccessAbility Services at the beginning of each academic term.
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 for more information.]
Grievance: A student who believes that a decision affecting some aspect of their university life has been unfair or unreasonable may have grounds for initiating a grievance. Please read
Policy 70, 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 their actions. [Check
the Office of Academic Integrity.] 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.
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
Office of Academic Integrity's site on Academic Misconduct and the
Faculty of Mathematics' site on Academic Integrity.
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 they have a ground for an appeal should refer to
Policy 72 - Student Appeals.