CSE 310: Computer Networks

Spring 2024

Time: T/Th 2:30 PM - 3:50 PM

Instructor: Shubham Jain (jain [at] cs [dot] stonybrook [dot] edu)


Course Description

The goal of this course is to cover the introductory topics in networking. We will learn how network applications such as the Web work, what constitutes the "Internet", and how information is transmitted from one part of the world to another. More importantly we will learn the design patterns and general principles in designing Computer Networks. We we learn networking concepts using the OSI layer abstraction going from the application layer all the way down to the physical layer. The class will have a mix of programming assignments and homeworks, take-home exams, and a final exam.


The recommended textbook is: Computer Networks, A Top Down Approach by Kurose and Ross. 7th Edition

I will also make my slides and other reading material available through Piazza. Assignment submissions must be done on BrightSpace.

Grading Policy

Midterm I exam: 20%
Midterm II Exam: 20%
Programming Assignments: 30%
Homeworks: 30%

Programming Assignments: There will be 3 programming assignments. You will get about 2 weeks for each assignment. The assignments are programming heavy. You can program in Python or C. Python is by far the easiest for the assignments and I will strongly advice you to use Python. Assignments should be submitted by 11.59 PM on the day they are due.

Homeworks: There will be 3 homeworks. These do not require programming and are written assignments. They are due before 11.59 PM on the day they are due. You will typically get 1 week to finish each homework.

Midterm Exams: The exams are in-person and timed. The exam is closed book but I allow a cheat sheet.

Submissions instructions and total attempts: We will use BrightSpace for submissions. If you want to resubmit after you already submitted one version of your assignment, you may do so. But you are allowed a maximum of 2 resubmissions (i.e., a maximum of 3 attempts). Irrespective of anything else, your last attempt will be considered. This means, if you submit one version of your homework before the deadline and submit another version after the deadline, we will grade the later submission and grade you according to the late submission policy.

Grace period: You get a 60 hours grace period spanning all 3 programming assignments and a 48 hour grace period spanning your 3 homeworks. You will not be penalized as long as the total hours that you are late does not exceed 60 hours across your assignments and 48 hours across your homeworks. Once your grace period is over, each programming assignment/homework you submit late will be subject to the late penalty below.

Late submission policy: If you submit your assignment at hour h after your deadline (after your grace period), here are the grade penalties

Re-grading Requests

All issues with grading must be brought up with the instructors on Piazza (in a private post) within 1 week of release of the graded assignment or exam. Any requests/concerns after this date will not be honored. The request must include a detailed explanation of the specific grading issues and reason/correction. We believe students often learn by investigating and understanding their mistakes. Therefore, it is the responsibility of the student to determine the issues, not the grader/instructor/TA. To promote consistency of grading, questions and concerns about grading should be addressed first to the TA and then, if that does not resolve the issue, to the instructor.

Office Hours

Office hours will be announced on Piazza.

Discussion policy

All discussions will take place on Piazza. Please be respectful of your fellow classmates and your instructor when posting questions. Piazza is only to ask questions pertaining to the class and not to air out your grievances. If you post questions or comments on Piazza that I deem derogatory to your classmates, TAs, or instructors (or is otherwise not constructive), I will remove them.

You are expected to read your Piazza posts frequently. I will be posting important announcements on it. Questions posted on Piazza can take up to 24 hours for a response from the instructor or the TA. If you ask a question very close to an assignment deadline, they may go unanswered.

Academic Dishonesty

I take academic dishonesty extremely seriously. Your assignments will be tested for plagiarism not only against your classmates but also with all past assignments. If I find evidence of dishonesty, I will immediately notify the Program Director and give you an F in the class.


All deadlines are tentative in the beginning. The firm deadlines will be announced in class and posted on Piazza.

Student Accessibility

If you have a physical, psychological, medical, or learning disability that may impact your course work, please contact the Student Accessibility Support Center, Stony Brook Union Suite 107, (631) 632-6748, or at sasc@stonybrook.edu. They will determine with you what accommodations are necessary and appropriate. All information and documentation is confidential.

The following schedule is tentative and subject to change.

Week Date Topic Reading
Week 1 1/23 Introduction and Course Overview
  • KR 1.1
1/25 Application Layer
  • Introduction and Overview
  • KR 1.5, 2.1.1, 2.1.5
Week 2 1/30
  • HTTP Protocol
  • KR 2.2.1 - 2.2.3
  • DNS
  • KR 2.4
Week 3 2/6
  • CDN
Homework 1 out
  • KR 2.6.2; 2.6.3
  • Sockets
Week 4 2/13 CLASS CANCELED DUE TO SNOW STORM Homework 1 due
    Transport Layer
  • Introduction
  • TCP
Programming Assignment 1 out
  • KR 3.1, KR 3.5.1, 3.5.2
Week 5 2/20
  • TCP Flow Control
  • KR 3.5.3, 3.5.5
  • TCP Congestion Control
  • KR 3.6.1, 3.7.1
Week 6 2/27
  • TCP Congestion Control
  • UDP and Wireshark Hands-on
Programming Assignment 1 due
Week 7 3/5 MIDTERM I (In-class)
3/7 Midterm I solution discussion
Week 9 3/19 Network Layer
  • Overview
Programming Assignment 2 out
3/21 NO CLASS. Instructor Traveling.
Week 10 3/26
  • Internet Protocol
  • 3/28
    • IP Addressing and Forwarding
    Week 11 4/2
    • Intra-domain Routing
    Programming Assignment 2 due
    • Inter-domain routing
    Homework 2 out
    Week 12 4/9
    • Link Layer: Ethernet
    • Link Layer: Wi-Fi
    Homework 2 due
    Week 13 4/16
    • Physical Layer
    Homework 3 out
    • Special Topics I
    Week 14 4/23
    • Special Topics II
    Homework 3 due
    • Intro to Distributed Systems
    Programming assignment 3 out
    Week 15 4/30
    • Distributed Systems Protocol
    5/2 MIDTERM II (In-class)
    5/9 Programming assignment 3 due