CSE 310: Computer Networks (Spring 2020)

Semester: 

Spring 2020

Instructor: 

Aruna Balasubramanian

Course Time: 

MW 4.00 -- 5:20 PM

Location: 

Harriman Hall 137

Contact Info: 

Office hours: Monday 3.00PM -- 3.50PM, Tuesday 12.00PM -- 12.30PM, Wednesday 2.30PM -- 3.50PM and by appointment
Instructor email: arunab@cs.stonybrook.edu
Instructor office: 337 New Computer Science

Graduate TA office hours (for programming assignments and other queries)
Jiaxiang Ren                 Friday 12.00pm to 1.00pm,
Shrikanth Jagtap           Thursday 11.30am to 12.30pm
Rohit Rayachoti             Monday 5.30pm to 6.30pm

Undergraduate TA office hours (for homeworks and other queries): 
Mong (Jenny) Ting Gao  Friday 12.00pm to 1.00pm
Michael Coulter              Thursday 11.30am to 12.30pm
Lisa Zheng                     Monday    5.30pm to 6.30pm

TA office hours held in Old CS 2217. TA email addresses are in Piazza pinned post.

Announcement: 

- Web page is up
- Sign up on Piazza. All class discussions will be on Piazza. 

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" means, how information is transmitted from one part of the world to another, and what a LAN is. 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, as well as a midterm and final exam.

Textbooks: 

I will teach the course top-down from the application layer down to the physical layer. I will use the following textbook

Computer Networks, A Top Down Approach by Kurose and Ross 7th edition.

Grading: 

(Tentative) There are several components in this class: Assignments, Homeworks, and Exams.  The grading criteria are as follows:

Midterm: 20% Midterm cancelled due to COVID-19 replaced by 2 short quizzes: 12%
Final Exam: 20% 28%
Programming Assignments (3): 36%
Homeworks (4): 24%

Programming Assignments: There will be 3 programming assignments in all.  Assignments should be submitted before 9.00pm on the day they are due. You will get about 2 weeks (with one exception) 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. 

2-day short quiz: To accomodate for the cancelled midterm, we are replacing the midterm with two short quizzes. The quizzes are 2 days each. It is open-book, open-notes but you are not allowed to discuss with your friends. Only clarification questions can be asked on Piazza, there will be no hints or help on Piazza. There are no extensions to the quiz, if you do not submit your forfeit the points. Each quiz is 6% of your grade.

Homeworks: There will be 4 homeworks. These do not require programming and are written assignment. They are due before 9.00pm on the day they are due. You will typically get 1 week to finish your homework.

Submissions instructions: We will use Blackboard for submissions. If you want to resubmit after you already submitted one version of your assignment/project/summaries, you may do so. But you are allowed a maximum of 2 resubmissions (i.e., a maximum of 3 attempts).  

Grace period: You get a 48 hours 72 hours grace period spanning all 3 assignments and a 24 hour grace period spanning all homeworks. You will not be penalized as long as the total hours that you are late does not exceed 48 hours 72 hours across your assignments and 24 hours across your homeworks. 

Late submission policy: 

If you submit your homework at hour h after your deadline (after your grace period)

  • If 0 < h <= 5, you will be penalized 5% of your grade
  • If 5 < h <=15 hours, you will be penalized 8% of your grade,
  • If 15 < h <= 24, you will be penalized 15% of your grade
  • If 24 < h <= 48, you will be penalized 30% of your grade
  • If 48 < h <= 72, you will be penalized 40% of your grade
  • If 72 < h <= 96, you will be penalized 60% of your grade,
  • h > 96, you cannot submit the homework.

I should note here that I almost never give extensions on any submissions.

Tentative Schedule: 

Date Topic Readings Notes
1/27/2020 Introduction No reading. Syllabus and overview. [introduction.pdf]

Application Layer

1/29/2020 Application layer and Web

1.5, 2.1.1, (2.1.2 covered in Transport),
2.1.5

[app-introduction.pdf] 
2/03/2020 HTTP 2.2 (except Cookies) [app-web-http.pdf] Homework 1 out.
2/05/2020 HTTP and DNS 2.4 [app-dns.pdf] 
2/10/2020 DNS and HTTP Caching   Homework 1 is due 2/11,  Programming Assignment 1 out

Transport Layer

2/12/2020 CDNs/Transport Layer/Sockets 2.7 (only TCP), 3.1.1, 3.1.2 [app-cdn.pdf], [transport-sockets.pdf] 
2/17/2020 TCP Introduction

3.3.1, 3.5.1, 3.5.2

[transport-tcp-introduction.pdf]
2/19/2020 TCP flow control 

3.5.3, 3.5.4, 3.5.5

 
2/24/2020 TCP congestion control 3.6.1, 3.7 (excluding 3.7.1 or 3.7.2) [transport-tcp.pdf] Programming Assignment 1 due and Homework 2 is out 2/25. Office hours today is 1.00 to 2.00pm. 
2/26/2020 TCP Congestion Control   [transport-tcp.pdf]  Make up office hours scheduled for 2/28 from 10.00 to 11.00

Network Layer

3/02/2020 Wireshark Special Lecture Special lecture for Assignment 3 Instructor out of town, no office hours. Special class on Wireshark, Homework 2 is due 3/03, Programming Assignment 2 is out 3/02
3/04/2020 IP Addressing 4.3 (IP header format alone), 4.3.3 (details of DHCP excluded), 4.3.4 [network-addressing.pdf] (no office hours but class is scheduled as usual) Make up office hours scheduled for 3/6 from 12.30 to 2.00
3/09/2020 IP Addressing  

 

3/11/2020 Network IP   [network-ip.pdf] Programming Assignment 2 is due 3/13. 

Spring Break

3/16/2020 Spring Break No Class No class
3/18/2020 Spring Break No Class No class
3/23/2020 Spring Break (extended) No class No class
3/25/2020 Spring Break (extended) No class In-class Midterm cancelled due to Spring Break extension

Routing/Switching

3/30/2020 Forwarding  4.1, 4.1.1 [network-forwarding.pdf] Homework 3 is out 3/30
4/01/2020 Addressing and forwarding overview    
4/06/2020 Intra-domain routing (before Link State and Distance Vector) 5.2  [network-intra-domain-routing.pdf]Homework 3 is due
4/08/2020 Intra-domain routing Class cancelled. 2-day short quiz out on 4/08 at 9.00pm due 4/10 at 9.00pm
4/13/2020 Switching
6.4 and 6.4.1 (not 6.4.2 yet), 6.4.3
 [switching.pdf] Programming assingment 3 is out
4/15/2020 Link State and Distance Vector Routing 5.2.1, 5.2.2, excluding poisoned reverse [network-link-state-dv-routing.pdf]
4/20/2020 No class No class No class, instructor at all day meeting 
4/22/2020 Inter-Domain routing 5.4 [network-inter-domain-routing.pdf] 2-day short quiz out on 4/22 at 9.00pm due to 4/24 at 9.00pm. 

Link layer and Physical Layer

4/27/2020 Link layer: Ethernet 6.1, 6.1.1, 6.3, 6.3.1, 6.3.2 [data-link-ethernet.pdf] Programming Assignment 3 is due, Homework 4 is out
4/29/2020 Link layer: WiFi and New Network Architectures 7.3 (Focus only on RTS/CTS) [link-layer-wifi.pdf], [new-architectures.pdf]
05/04/2020 New Network Architectures, Physical layer   [physical-layer.pdf] Homework 4 is due
05/06/2020 Physical layer and wrap up   Final exam schediled on 05/12 from 8.30PM to 11.00PM. 

Others: 

Class Attendance and Laptop Policy: I will not take attendance in class. However, I teach on the board and the slides are used as a backup. This means even if the slides are available, you can miss a lot of context if you dont come to class.  If you do come to class, I ask that you do not open your laptops. If you need to use your laptop (due to some extraneous reasons), please send me email or come and meet me. 

Recording: Recording of the lectures is not allowed. Again, I am happy to review this on a case-by-case basis.  

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.

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