COS 461, Princeton University Spring 2019
This course studies computer networks and protocols, the services built on top of them, and some topics relating to Internet policy. Topics include: packet switching, routing, congestion control, quality-of-service, network security, network measurement, network management, and network applications.
This course is "flipped", with mandatory instructional videos and optional class meetings with discussions, applications of course material to current Internet development and events, group work, and practice problems. Students will learn:
Contact:
TAs:
Lab TAs/Graders:
Class Location and Time:
Lectures: Mondays and Wednesdays, 1:30-2:50 pm, Frist Campus
Center 302
Office Hours (additional office hours to be added on
Fridays near due dates):
The course will meet twice a week for 80-minute class meetings.
Each class meeting will contain discussion, activities, and material that assumes that you have watched the preparation videos in advance. Preparation may be tested without warning.
The primary assignments for the course will be lab-based programming assignments. We will also release weekly problem set exercises whose primary purpose is to help in preparation for the midterm and final exam; these problem sets may be graded at random.
Prerequisite: COS 217. Although not required, and one of either COS 333, COS 418, or COS 432 prior to enrolling in the course (concurrent enrollement does not count). Note well: The assignments in this class are in Go, C, and Python. You do not need to have experience with all of these languages before taking the course. However, you should be comfortable with learning new programming languages and finding resources on your own, independently as you attack problems.
You will be exposed to new programming languages and environments. If you are not comfortable learning new programming languages and familiarizing yourself with new programming environments on your own, you will have difficulty in this course.
Grading is based on:
We understand that sometimes life events occur and that it's not always possible to meet every deadline. As such, we are willing to accept late assignments according to the following policy:
Students are expected to abide by the Princeton University Honor Code. Honest and ethical behavior is expected at all times. All incidents of suspected dishonesty will be reported to and handled by the office of student affairs. You are to do all assignments yourself, unless explicitly told otherwise. You may discuss the assignments with your classmates, but you may not copy any solution (or part of a solution) from a classmate.
Supplementary Videos: Prof. Feamster's Networking Videos.
Supplementary Textbooks: (Excerpts on Blackboard)
Recommended Books: Other recommended textbooks for reference include:
This schedule and syllabus is preliminary and subject to change. Edits will be ongoing, but you can assume that all updates for the subsequent week will be completed by 5p ET of the Sunday prior to the week of instruction.
Readings: Abbreviations refer to the following:
For Tanenbaum, the relevant excerpts will be posted on Blackboard, as part of revisions for the upcoming 6th edition. These readings are required. KW and PD readings are optional, unless otherwise specified.
Videos: In addition to the readings, we recommend watching the corresponding videos from the YouTube Playlist, before lecture.
Slides: All slides will be posted on Blackboard before class meeting.
Date | Topic | Readings | Videos | Assignments |
---|---|---|---|---|
February 4 |
|
|
||
February 6 |
|
|
|
|
February 11 |
|
|
||
February 13 |
|
|
||
February 18 |
|
|
||
February 20 |
|
|
||
February 25 |
|
|
||
February 27 |
|
|
||
March 4 |
|
|
||
Module 2: Network Management |
||||
March 6 |
|
|
||
March 11 | Midterm 1 |
|||
March 13 |
|
|
||
March 18 |
||||
March 25 |
|
|
||
March 27 |
|
|
||
Module 3: Privacy and Security |
||||
April 1 |
|
|||
April 3 |
|
|||
April 8 |
|
|
||
April 10 |
|
|
||
April 15 |
|
|||
Module 4: Applications |
||||
April 17 |
|
|
||
April 22 |
|
|
|
|
April 24 |
|
|
||
April 29 | Midterm 2 |
|||
May 1 |
|
|||
May 14 |
Dean's Date |
|
The following assignments below have been officially released.
We have linked the public repository, which contains assignments as they were released last year, for reference. Although the assignments will be similar, we advise against starting early on (last year's) assignments in the repository that haven't been officially released as these are still subject to change and update. Course staff will not answer questions on any assignments that have not yet been officially released.
All assignments are weighted according to the syllabus. There are opportunities for extra credit on this year's assignments, to encourage student contributions to keeping the material current.
All assignment concepts should be proposed and approved in advance by the instructors. Point bonuses are "all or nothing" and will be conferred upon successful pull request to the COS 461 github repository.
Professor Feamster is revising the Tanenbaum and Wetherall book, and this term we will be using draft sections of the book for our readings.
Each error you discover in the reading material, typographical, conceptual, or otherwise will be worth a 1% assignment point bonus.
If you find a missing topic that you would like to see better covered in the book, we are open to suggestions. If you offer sufficient resources and material, extra credit will be conferred at the instructors' discretion, not to exceed a 5% assignment point bonus per suggestion.