Logistics

Announcements

Please follow NYU Classes for the annoucements!

Course Description

This course teaches the design and implementation techniques essential for engineering robust networks, taking the Internet as an example. Topics include networking principles, Application Layer Protocols such as DNS, HTTP; Transport Layer Protocols such as UDP, TCP; Network Layer protocols such as routing algorithms and Link layer protocols.

Prerequisites: Students must have a working knowledge of fundamental data structures and associated algorithms. For some of the practical aspects of the course, a working knowledge of an object-oriented programming language (e.g., C++, C#, Java or preferably Python) is expected. In addition, a working knowledge on Git, Docker and Kubernetes will be helpful, but not required, an overview of these topics will be given during the class. An undergraduate course in data communication and networks is helpful but not required.

As a part of the course, you will have assignments, projects, and a final. More details about the projects will be given in class.

Policies and Rules

Attendance, Punctuality and Participation – All students are expected to attend all classes, be on time and actively participate in the class discussions. Should you encounter problems with attending class or arriving on time please contact your advisor and well as your instructor to discuss.

Assignment Completion – All assignments must be completed by their due dates.

Ethics – honesty and integrity are expected in all approaches to learning. Students are expected to maintain academic honesty. Please refer to our Handbook for guidelines on Academic Integrity.

Communication – Students are expected to regularly check their NYU email accounts (including NYU Classes) for communications from their instructor. Should a student encounter any problems that would prevent them from completing assignments on time they should make sure to communicate via email to their instructors in a timely manner.

Grading

Your final grade will be calculated based on the following:

Late Submission Policy

Example: if your grade is 80/100 and if you submit 47h after the submission, then your grade will be 80 - 80 * 0.75 = 20


Syllabus

Week Date Topic Reading Materials Assignments
1 2/3 Introduction (Computer Networks) Chapter 1 of K&R
2 2/10 Introduction (Computer Networks) Chapter 1 of K&R Assignment 1 is out
3 2/17 Git/Docker/Kubernetes - An overview
+
Application Layer
Chapter 2 of K&R Assignment 2 is out
4 2/24 Application Layer Chapter 2 of K&R
5 3/3 Application Layer
+
Kubernetes
Chapter 2 of K&R Assignment 3 is out
6 3/10 Transport Layer Chapter 3 of K&R Assignment 4 is out
7 3/17 Transport Layer Chapter 3 of K&R
8 3/24 Midterm
9 3/31 Transport Layer Chapter 3 of K&R Project is out
10 4/7 Network Layer - Data Plane Chapter 4 of K&R
11 4/14 Network Layer - Control Plane Chapter 5 of K&R
12 4/21 Network Layer - Control Plane Chapter 5 of K&R Assignment 5 is out
13 4/28 Network Layer - Control Plane
+
Link Layer
Chapter 6 of K&R
14 5/5 Networking in Kubernetes
+
Final Review
Chapter 8 of K&R
15 5/12 Final Exam