CSE 310: Computer Networks (Spring 2020)
Semester
Instructor
Course Time
Location
Class Discussion Forum
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), |
[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 | Class cancelled. | 2-day short quiz out on 4/08 at 9.00pm due 4/10 at 9.00pm | ||
4/13/2020 | Switching |
|
[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.