Fall 2021
CS242

A top-down study of computer networks, with a focus on the Internet

A systems-oriented approach to data networks.
Including a theoretical discussion of common networking problems and an examination of modern networks and protocols.
All while focusing on the Internet.

Instructors


Christine Bassem

Office hours:
Virtual join-in office hours Tuesday 2pm-3pm
Virtual appointments available Wednesday 1pm - 3pm (Use this link to set up an appointment)
OR Email me :)

Elaney Chang - Class tutor

Office hours:
Wednesday and Thursday 4:30pm - 5:30pm

All support details and Zoom links can be found on Piazza note@8 as well as the course calendar.

CS242 Fall 2021 Schedule


Please note that this page will be updated weekly, and it will contain all course content and resources.
Pre-recorded lecture from Fall 2020
Date Lecture topic Textbook reading In-lecture Notes More resources
Sep 09 Introduction Chapter 1 Slides
Tell me more about you!
Textbook companion website
Sep 13 What's a network? Chapter 1 Slides
First wireshark lab
Extra Videos
Part I: App to App
Sep 16 Protocol layers and the application layer Chapter 2 - section 2.1 Slides Pre-recorded lecture from Fall 2020
Assignment 1 - due Friday (Sep 17) at noon
Sep 20 How does a browser work? (HTTP) Chapter 2 - section 2.2 Slides
Sep 23 Socket programming Chapter 2 - section 2.7 Slides
Assignment 2 - due Friday (Sep 24) at noon
Sep 27 How does EMail work? Chapter 2 - sections 2.3 Slides Pre-recorded lecture from Fall 2020
Sep 30 What's in a name? (DNS) 6th: Chapter 2 - section 2.5
8th: Chapter 2 - section 2.4
Slides Pre-recorded lecture from Fall 2020
Prep for Programming assignments - not required but recommended
WireShark Lab 1
Watch this video and try to replicate the code
Oct 4 How does Video Streaming work? 8th: Chapter 2 - section 2.6 Slides Pre-recorded lecture from Fall 2020
Oct 7 Peer-to-Peer applications 6th: Chapter 2 - section 2.6
8th: Chapter 2 - section 2.5
Slides Investigate your own application
(Project phase 1)
Pre-recorded lecture from Fall 2020
Programming 1 - due Friday (Oct 8) at noon
Oct 11 Fall break
Part II: Endpoint to Endpoint
Oct 14 Transport layer and UDP Chapter 3 - sections 3.1 to 3.3
Programming 2 - due Friday (Oct 15) at noon
Oct 18 Reliable data transfer and TCP Chapter 3 - sections 3.4 and 3.5
Oct 21 More on TCP Chapter 3 - sections 3.5 to 3.7
Assignment 3 - due Friday (Oct 22) at noon
Oct 25 Wrap up TCP Chapter 3 - sections 3.5 to 3.7
Part III: Through the core
Oct 28 What's a router? Chapter 4 - sections 4.1 to 4.3
Oct 28 to
Oct 31
Exam 1
Virtual and PYOT (Pick Your Own Time)
Nov 1 Pass the message (IP) Chapter 4 - section 4.4
Nov 4 Who should I pass it to? (Routing) Chapter 4 - section 4.5
Assignment 4 - due Friday (Nov 5) at noon
Nov 8 More on routing Chapter 4 - section 4.5
Nov 11 Routing at the Internet scale Chapter 4 - section 4.6
Assignment 5 - due Friday (Nov 12) at noon
Part IV: Machine to machine(To be updated ...)
Nov 15 Link layer 1 TBD
Nov 18 Link layer 2 TBD
Nov 22 Link layer 3 TBD
Nov 25 Thanksgiving break
Nov 29 Virtual networks TBD
Dec 2 Datacenter networks TBD
Dec 6 Exam 2 - replaces lecture
Virtual and PYOT (Pick Your Own Time)
Dec 13 Final Presentations No reading

Administrative details of CS242



Course Overview

Prerequisites The prerequisite for CS242 is CS230 - Data structures.

Textbook The course textbook is Computer Networking: A Top-Down Approach Featuring the Internet, written by James F. Kurose and Keith W. Ross and published by Addison Wesley. Copies of the text are available in the College Bookstore. Every lecture, there will be required readings from the textbook and sometimes other sources.

Course Group Make sure that you are added to the Course's Slack group. This group has several purposes, one of which is class announcements.
I encourage you to use it for class discussions, and questions. If you know the answer to a classmate's question, feel free to post a reply yourself. Please do not post any code in your messages on the group!

Virtual Platforms This term, we'll be using several online platforms for course management, assignment feedback, social interaction, and community-building. You will receive invitation to join all of these platforms after the first lecture.


Course Expectations

Lectures Lectures will be held in-person every Monday and Thursday from 11:10 am to 12:25 pm.

Assignments There will be a mix of written assignments and programming assignments. Written assignments are individual assignments, and programming assignments are to be completed in pairs. All assignments should be submitted via Gradescope.

Exams: Although there will be no final exams in the course for the Fall 2020 semester, they will be replaced with two virtual mini-exams, which are open-book and open-notes, with no collaboration. The dates of the quizzes are listed on the schedule. Please mark the dates in your calendars as they are not flexible.

Final Project: Before the second half of the semester, project teams of 2-3 students work on a final project. I have prepared for your a list of project topics, but other project ideas are welcome! If your group prefers to work on an interesting application or problem, we can discuss it.

Each team will give a short presentation of their "almost" final project during the last meeting of the semester, and will submit the final project with its documentation before the last day of exams.


Support

Support in the course will be virtual, through Zoom chats, Slack discussions, and emails.

Christine's Office Hours I'll be holding twoo types of virtual office hours; group office hours and one-on-one office hours. Please check the information at the top of this webpage for more details.

Elaney's Office Hours TBD

Grading Policy

Your final grade for the course will be computed as a weighted average of several components. The relative weight of each component is shown below:

Collaboration in CS242

You know that collaboration is awesome! It's extremely important for each of you to communicate with others and collaborate, especially during yet anoher atypical semester.

You will be expected to work with a partner on all course assignments, as well as the final project.

For assignments, I will randomly pick the two-team members, and the pairings will be for the duration of a whole week. With every course unit, I will switch it up, so that each of you gets to work with as many people as possible during the term. For the project, you can partner with any of your classmates.

The two team members can (in fact, must; see below) work closely together on the assignment/exercises and turn in a single copy of the assignment for the team. The grade received on such a submission will be given to both team members.

This is a rather unusual collaboration policy, and it is only allowed subject to the following ground rules:
• The work on group problems must be a true collaboration in which each member of the team will carry their own weight. It is not acceptable for two team members to split the group problems of an assignment between them and work on them independently. Instead, the two team members must actively work together on all parts of the assignment.
• Rotating through partners is a good way to build community in the class and is helpful for avoiding situations where one individual feels pressured to continue working with another. This is why, I will be pairing all of you. Pairings will be random, but also guided by your working style and habits.
• Ofcourse, there is always room for flexibility. If during one assignment/week, you can't work with your partner, we will figure it out. All you need to do is talk to me! Based on past experience, working with a partner can significantly decrease the amount of time you spend on an assignment, because you are more likely to avoid silly errors and blind alleys.

Unless otherwise instructed, teams are allowed to discuss the problem set with other teams and exchange ideas about how to solve them. However, there is a thin line between collaboration and plagiarizing the work of others. Therefore, I require that each team must compose its own solution to each assignment.
In particular, while you may discuss general strategies for approaching the assignments with other teams, each team is required to write up their own solutions separately.

In keeping with the standards of the scientific community, you must give credit where credit is due. If you make use of an idea that was developed by (or jointly with) others, please reference them appropriately in your work. E.g., if person X gets a key idea for solving a problem from person Y , person X’s solution should begin with a note that says “I worked with Y on this problem” and should say “The main idea (due to Y ) is ...” in the appropriate places. It is unacceptable for students to work together but not to acknowledge each other in their write-ups.

When working on homework problems, it is perfectly reasonable to use materials from the textbooks and other materials handed out in class. It is also reasonable to consult public literature (books, articles, etc.) for hints, techniques, and even solutions. However, you must cite any sources that contribute to your solution. There is one extremely important exception to this policy: assignments and solutions from previous terms of CS242 are not considered to be part of the “public” literature. You must refrain from looking at any solutions to problem sets or exams from previous semesters of CS242. It is my policy that consulting solutions from previous semesters of CS242 constitutes a violation of the Honor Code.


Special Accommodations

If you have a disability or condition, either long-term or temporary, and need reasonable academic adjustments in this course, please contact Accessibility and Disability Resources (ADR) to get a letter outlining your accommodation needs, and submit that letter to me. You should request accommodations as early as possible in the semester, or before the semester begins, since some situations can require significant time for review and accommodation design. If you need immediate accommodations, please arrange to meet with me as soon as possible. If you are unsure but suspect you may have an undocumented need for accommodations, you are encouraged to contact (ADR). They can provide assistance including screening and referral for assessments.

Disability Services can be reached at accessibility@wellesley.edu, at 781-283-2434, by scheduling an appointment online at their website, https://www.wellesley.edu/adr or by visiting their offices on the 3rd floor of Clapp Library, rooms 316 and 315.


Nondiscrimination and Harassment

Wellesley College considers diversity essential to educational excellence, and we are committed to being a community in which each member thrives. The College does not allow discrimination or harassment based on race, color, sex, gender identity or expression, sexual orientation, ethnic or national origin or ancestry, physical or mental disability, pregnancy or any other protected status under applicable local, state or federal law. If you or someone you know has experienced discrimination or harassment, support is available to you: