This course introduces the basics of networking to a computer science audience, ranging from sending bits over wires to the Web and distributed computing. We focus on the internetworking ground between these two extremes, particularly focusing on the engineering of the Internet - goals, constraints, solutions, and experiences.
The outcome of this course for you should be an appreciation of the fundamental challenges of networking, design strategies of proven value, and common implementation technologies. Topics will include: framing, error correction, packet switching, multi-access (Ethernet), addressing and forwarding (IP), distance vector and link state routing, queueing and scheduling, reliable transport, congestion control (TCP), quality of service, naming (DNS), software defined networks (SDN), and security.
Concrete Learning Objectives
After this course, students should be able to:
- Define and correctly use terminology from the IP networking stack and the Internet infrastructure.
- Identify fundamental and practical constraints on operational networks (wired and wireless) to estimate and analyze their performance.
- Identify trends in network design to analyze the value proposition and constraints of real-world tools, products, services, and policies.
- Use application layer network APIs securely and map these high-level APIs to a stack of lower-level functionalities.
- Specify and debug practical network configurations in home, commercial, cloud, and mobile contexts, with a specific understanding of performance, privacy, and security.
- Account for network failures and constraints in the design and implementation of Internet-based software systems.
Prereqs and Background
The formal prequisites are (CSE 326 or CSE 332) and (CSE 303 or CSE 333).
We expect everyone in this class to be comfortable with reasoning about binary representations of data, and also expect you to have some experience with graphs and data structures.
Textbook and Materials
The course will be using the open-source textbook Computer Networks: A Systems Approach by Larry Peterson and Bruce Davie. Specifically we’ll be using version 6.1, which is the latest tagged version and was released in November 2019.
The book is available in PDF and epub form on github https://github.com/SystemsApproach/book/releases/tag/v6.1.
Main Sessions MWF 12:30-1:20
Class sessions are held in CSE2-G01 and include a mix of lecture, discussion, and interactive group work.
We will make panopto recordings of each class session available within a few hours of the class for students who cannot attend synchronously, but encourage all to attend class to get the most benefit from the in-class activities.
Discussion Sections Th Afternoon
Discussion sections will be held in ECE 003 in-person. The discussion sections will contain a mix of review, practical tool labs, and opportunities for help on the projects.
Discussion sections will not be recorded, although slides will be made available for each session. Attendance is highly recommended as we will aim to build intuition for how computer networks work, which can not be done as well through individual study or through reading the posted slides.
Assignments & Grading
The course will contain a mix of open book homework, projects, quizzes, and exams. The grading weights will be roughly allocated as below.
- Open-book homework: 60 points
- Surprise Quizzes: 20 points
- 3 Projects: (100 points, 105 points, and 105 points)
- Midterm exam: 90 points
- Final exam: 120 points
If grades are lower than average, they will be curved up. This is unlikely given prior history.
COVID, Absences, and Makeup Work
If you are sick, please do not come to in-person class or section. Let the course staff know via email before class starts, and we can work with you to get you the information you missed and answer any questions you may have.
Flexible Quiz Policy
Everyone will get to drop one quiz. 4 or 5 total quizzes will be given.
Quizzes will not be announced in advance, but will be submittable until 11:59PM the day they are posted. They will still be time limited to 30 minutes via gradescope.
25 minutes of class time (+5 minutes overflow into the change period) will be allocated to take the quiz, and I encourage everyone to take the quiz in class to ask any clarifying questions in real time that you may need. Quizzes will be designed to take <15 minutes for the majority of students.
All students will have 5 “no penalty” late days to allocate between homework assignments and projects as they wish, but at most 5 late days can be used on any single assignment (this is to allow us to return assignments in a reasonable timeframe).
There is a 10% penalty for each late day (a day is 24 hours, including weekends), once an assignment is more than 5 days late, or you have used all of your late days. For extreme situations in which this is not sufficient, see below.
We understand no set of rules can apply perfectly to everyone in every setting, particularly with uncertainty as we return to in-person education and the low but nonzero chance of health complications around the pandemic. Reasonable exceptions for extenuating circumstances can be made, and will be much easier to handle if communicated with the course staff transparently and as early as possible. Common examples of extenuating circumstances could be familial duties, health, or other challenges outside of one’s control. It is much more difficult to make fair exceptions to course policies retroactively, and we will be less likely to do so– please let us know as soon as you can when issues arise.
We encourage all students to take advantage of the Ed discussion board for general questions. We’ll try to respond to all questions by the end of the working day.
Students are encouraged to make general questions as public posts and also respond to other student questions. Discussing and explaining concepts is a great way to improve your own grasp of the material. In addition, the most popular or tricky public questions from the board before each class period will be addressed live in class. This is a good way to ask anonymous questions if that would be more comfortable than speaking up directly during the class session!
If you have a specific question about your or your group’s solution to a problem or the homework, please make it as a private post instead.
The course staff will all also will have office hours available, and encourage you all to attend!
All students are welcome in this course and are entitled to be treated respectfully by both classmates and course staff. We strive to create a challenging but inclusive environment that is conducive to learning for all students. If at any time you feel that you are not experiencing an inclusive environment, or you are made to feel uncomfortable, disrespected, or excluded, please report the incident so that we may address the issue and maintain a supportive and inclusive learning environment. You may contact the course staff or the CSE academic advisors to express your concerns. Should you feel uncomfortable bringing up an issue with a staff member directly, you may also consider sending anonymous feedback or contacting the UW Office of the Ombud.
Academic Honesty & Collaboration
Learning is a collaborative process, and everyone benefits from working with others when learning new concepts and skills. In general, we encourage you to collaborate with your classmates in your learning and take advantage of each others’ experience, understanding, and perspectives.
However, there is a difference between learning collaboratively and completing work for someone else. This can be a subtle but important distinction. Ultimately, the goal of the course is to ensure that every student masters the material and develops the skills to succeed in future projects and other related work. Submitting work that is not your own, or allowing another student to submit your work as their own, does not contribute toward developing mastery. In addition, this deprives you of the ability to receive feedback and support from the course staff in addressing the areas in which you are struggling.
For more information, consult the Allen School policy on academic misconduct.
Permitted and Prohibited Actions
Sometimes the line between productive collaboration and academic dishonesty can be a little ambiguous. The following is a partial list of collaborative actions that are encouraged and prohibited. This list is not intended to be exhaustive; there are many actions not included that may fall under either heading. This list is here to help you understand examples of things that are/aren’t allowed. If you are ever unsure, please ask the course staff before potentially acting in a way that violates this policy.
Encouraged The following types of collaboration are encouraged:
Discussing the content of lessons, sections or any provided examples.
Working collaboratively on solutions to practice problems or assignments.
Posting and responding to questions on the course message board, including responding to questions from other students (without providing assessment code; see below).
Describing, either verbally or in text, your approach to a take-home assessment at a high-level and in such a way that the person receiving the description cannot reliably reproduce your exact work. Such description should be in English or another natural human language (i.e., not code).
Asking a member of the course staff about concepts with which you are struggling or bugs in your work.
Prohibited The following types of collaboration are prohibited and may constitute academic misconduct:
Looking at another person’s submission on a take-home assessment, or substantially similar code, at any point, in any form, for any reason, and for any amount of time. This restriction includes work written by classmates, family members or friends, former students, and online resources (such as GitHub or Chegg), among other sources.
Showing or providing your submission on a take-home assessment to another student at any time, in any format, for any reason. This includes posting your work publicly on the internet.
Submitting work that contains code copied from another resource, even with edits or changes, except for resources explicitly provided by the course staff.
Having another person “walk you through” work you submit, or walking another person through work they submit, such that the work produced can be entirely and reliably reconstructed from the instructions provided. (That is, submitting work that you produced simply by following instructions on what to write.) This restriction includes classmates, former students, family members or friends, paid tutors or consultants, “homework support” services (such as Chegg), etc.
If you discuss an assignment or project with one or more classmates, you must specify with whom you collaborated in your submission. You may discuss with as many classmates as you like, but you must cite all of them in your work. Note that you may not collaborate in a way that is prohibited, even if you cite the collaboration.
Tip! A good rule of thumb to ensuring your collaboration is allowed is to not take written notes, photographs, or other records during your discussion and wait at least 30 minutes after completing the discussion before returning to your own work.
Any submission found to be in violation of this policy will receive 0 points on all dimensions, as we are unable to assess your mastery from work that is not your own. In addition, students will forfeit the ability to resubmit work that is found to be in violation. Repeated or egregious violations of the policy will be forwarded to a relevant university committee for further action. There will be no exceptions or modifications to these penalities.
The course staff endeavour to create an environment in which all students feel empowered and encouraged to submit their own work, regardless of the quality, and avoid prohibited collaboration. However, despite our best efforts, students may occasionally exercise poor judgement and violate this policy. In many cases, these students come to regret this decision almost immediately. To that end, we offer the following opportunity for amnesty:
If you submit work that is in violation of the academic conduct policy, you may bring the action to Matt’s attention within 72 hours of submission and request amnesty. If you do so, you will receive a reduced grade on just that subpart of the assignment but no other further action will be taken. This action will not be shared outside of the course staff and will not be part of any academic record except in the case of repeated acts or abuses of the policy.
This policy is designed to allow students who have acted in a way they regret the opportunity to correct the situation and complete their work in a permitted way. It is not intended to provide forgiveness for violations that are detected by the course staff, nor to be invoked frequently. It is still in your best interest to submit whatever work you have completed so that you can receive feedback and support.
Your experience in this class should not be affected by any disabilities that you may have. The Disability Resources for Students (DRS) office can help you establish accommodations with the course staff. DRS mediates interactions between students and course staff, and will work interactively with us to establish reasonable accomodations.
Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UWs policy, including more information about how to request an accommodation, is available at Religious Accommodations Policy. Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form.
In order to support asynchronous learning, all main class sessions will be recorded via zoom (if remote) or panopto (if in person). These recordings will not be posted publicly, and are intended only for members of the class.