About the course
This is an introductory course on computer networks. The course covers some of the key protocols in each layer of the protocol stack in a top-down fashion. This is a hands-on, programming-heavy course. The course is structured with a series of programming assignments, a mid-term exam, and a final exam. Please look at the complete syllabus.
- Discussion forum, programming assignments, slides, videos: Piazza
- Syllabus, schedule, readings: this page
- Graded exams: Gradescope
- Grades: Blackboard
Textbook
Computer Networking: A Top-Down Approach by Kurose and Ross (6th or 7th edition)
Exam schedule
Midterm exam: October XX (Monday)
Final exam: See the general schedule here
Course schedule (tentative)
Section numbers for the 6th edition, if different, are enclosed in parenthesis
Week | Date | Topic | Readings (§) |
1 | 8/26 | Network layers | 1.1, 1.5, 1.6, 2.1 |
1 | 8/28 | End-to-end argument | paper |
2 | 9/4 | The Web and HTTP | 2.2 |
3 | 9/9 | 2.3 (2.4) | |
3 | 9/11 | DNS | 2.4 (2.5) |
4 | 9/16 | Peer-to-peer systems, distributed hash tables | 2.5 (2.6), paper |
4 | 9/18 | UDP | 3.3 |
5 | 9/23 | UDP, principles of reliable transport | 3.3, 3.4 |
5 | 9/25 | Reliable Transport | 3.4 |
6 | 9/30 | TCP | 3.5 |
6 | 10/2 | TCP Congestion Control | 3.6, 3.7 |
7 | 10/7 | Routing vs. Forwarding, Circuit vs. Packet Switching | 4.1, (4.1, 4.2), 4.2 (4.3) |
7 | 10/9 | IP protocol | 2.3 (4.4) |
8 | 10/14 | Midterm Exam | |
8 | 10/16 | Routing algorithms | 5.2 (4.5) |
9 | 10/21 | Inter domain routing (BGP) | 5.4 (4.6) paper |
9 | 10/23 | Software-defined networking | 5.5 () |
10 | 10/28 | Introduction to link layer | 6.1, 6.2 (5.1, 5.2) |
10 | 10/30 | Multiple access links and protocols | 6.3 (5.3) |
11 | 11/4 | Local Area Networks | 6.4 (5.4) |
11 | 11/6 | Link Virtualization | 6.5 (5.5) |
12 | 11/11 | Datacenter Networking | 6.6 (5.6) |
12 | 11/13 | Introduction to wireless | 7.1, 7.2 (6.1, 6.2) |
13 | 11/18 | WiFi: 802.11 Wireless LANs | 7.3 (6.3) |
13 | 11/20 | WiFi: 802.11 Wireless LANs | 7.3 (6.3) |
14 | 11/25 | Cellular networks | 7.4 (6.4) |
14 | 11/27 | Mobility | 7.5 - 7.7 (6.5 - 6.7) |
15 | 12/2 | Internet security | |
15 | 12/4 |
Stuff you should learn yourself
- Socket programming: Socket programming primer
- GIT: Git primer
- Python: Learn Python in 10 minutes