Please follow NYU Classes for the annoucements!
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.
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.
Your final grade will be calculated based on the following:
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
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 |