Class Details

Lectures: Monday and Wednesday, 11:00am - 12:15pm @ 101 Warren Weaver Hall
Administrivia: Course Policies
Comments & Complaints: Fill this form

Course Staff

Instructor: Aurojit Panda
Office Hours: Wednesdays 3:30pm to 4:30pm @ 60 Fifth Ave, Room 405 or by appointment

Teaching Assistants:

  • Aatish Varma
    Office Hours: Tuesdays 2pm to 3pm @ 60 Fifth Ave, Room 402
  • Jiayang Wang
    Office Hours: Thursdays 11am to noon @ 60 Fifth Ave, Room 402

Campuswire: https://campuswire.com/c/G5EFA6382

Overview

This course provides an introduction to computer networks, focusing especially on their architecture and on the algorithms that enable both large-scale networks (such as the Internet) and smaller scale networks (such as ad-hoc networks connecting personal devices).

This course assumes that students have taken an introductory programming course and can program in Python. We also assume that students have taken an algorithms course (e.g., CSCI-UA.0310) and are familiar with basic graph algorithms (e.g., determining whether a graph is cyclic, computing shortest paths, trees, etc.).

Textbook

No textbooks are required for the class. However, if you prefer having a textbook we recommend both

  • Kurose and Ross: Computer Networking: A Top-Down Approach (7th Edition).
  • Peterson and Davie: Computer Networks: A Systems Approach (Version 6.0 available online)

When possible we will provide chapters corresponding to the lectures.

Additionally you might benefit from looking at slides and lecture notes from:

Tentative Schedule

Note This is likely to change, with later lectures more likely to change than earlier one.

Date Topic Notes and Self Assessment Assignments Book Chapter
Sep 4 Introduction Pre-Lecture Notes
Lecture Notes
Technology Setup
Information and Collaboration
Github Consent
K&R 1.3
Sep 9 Tools and Flooding Notes
Pre-Lecture Slides
Lecture Slides
Self-Assessment
Lab 1 Out (markdown, pdf) K&R 1.3
Sep 11 Handling Cycles Pre-Lecture Notes
Pre-Lecture Slides
Notes
Slides
P&D 3.1
Sep 16 Learning and Intra-domain routing Pre-Lecture Notes
Pre-Lecture Slides
Lecture Notes
Lecture Slides
P&D 3.3, K&R 4.2
Sep 18 Intra-Domain Routing (2) Pre-Lecture Notes
Pre-Lecture Slides
Lecture Slides
P&D 3.3, K&R 5.1, 5.2
Sep 23 Intra-Domain Routing, Hierarchical Addresses (3) Pre-Lecture Notes
Pre-Lecture Slides
Lecture Notes
Lecture Slides
Lab 1 due
Lab 2 out (markdown, pdf)
P&D 3.3, K&R 5.2
Sep 25 Inter-domain routing, BGP Pre-Lecture Notes
Pre-Lecture Slides
Lecture Notes
Lecture Slides
P&D 4.1, K&R 5.4
Sep 30 Performance and reliability Pre-Lecture Slides
Lecture Notes
Lecture Slides
K&R 1.4, 3.5, P&D 1.5, P&D 2.5
Oct 2 Reliability Pre-Lecture Slides
Lecture Notes
Lecture Slides
K&R 1.4, 3.5, P&D 1.5, P&D 2.5
Oct 7 Congestion Collapse Pre-Lecture Slides
Lecture Notes
Lecture Slides
Lab 2 due
Lab 3 Out (markdown, pdf)
Anirudh’s notes P&D 6.3, K&R 3.5-3.7
Oct 9 Congestion Control Practice Midterm 1
Pre-Lecture Slides
Lecture Slides
Lecture Notes
Anirudh’s notes P&D 6.3 K&R 3.5-3.7
Oct 14 FALL RECESS Lab 3 Due
Oct 15 Midterm Review Notes
Oct 16 Midterm
Oct 21 Where we are thus far Pre-Lecture Slides
Lecture Slides
Notes
K&R1.5, P&D 1.3
Oct 23 Networking at the Host Pre-Lecture Slides
Lecture Slides
Notes
Oct 28 Discovery and Naming Pre-Lecture Slides
Lecture Slides
Notes
Oct 30 Bootstrapping Pre-Lecture Slides
Nov 4 Introduction to Network Security Pre-Lecture Slides
Lecture Slides Lab 4 out
Nov 6 DDoS protection, CDNs Pre-Lecture Slides
Lecture Slides
Nov 11 Privacy: Protection against Snooping Pre-Lecture Slides
Lecture Slides
Lab 4 Due
Nov 13 Privacy: Protection against Snooping Pre-Lecture Slides
Lecture Slides
Nov 18 Resilient routing and TE Pre-Lecture Slides Lab 5 out (PDF, MD)
Nov 20 Fair queuing and queue management
Nov 25 NO CLASS
Nov 27 Thanksgiving 🦃🥧
Dec 2 Simplifying network management
Dec 4 Extending network functionality Lab 5 Due
Dec 9 NO CLASS
Dec 11 Final Review