Lecture (Section 001): Mon, Wed, Fri, 2:30–3:20pm in MATH 175

Instructor

Vishal Shrivastav
Assistant Professor

Office: BHEE 334B
vshriva@purdue.edu

Office Hours
Mon 4–5pm in BHEE 334B

The goal of this course is to provide students with a proper grounding in the fundamentals of computer networking. The course will cover classic concepts such as packet vs. circuit switching, Internet architecture principles, naming and addressing, routing, forwarding, reliability, flow control, congestion control, and software-defined networking. The course will also provide students a hands-on experience of writing network applications through socket programming.

All course materials and grades will be posted on Brightspace. We will use Piazza as the discussion forum to post and discuss questions regarding the course.

1. Packet vs. Circuit Switching
2. Internet Architecture Principles
3. Socket Programming
4. Network Performance Metrics
5. Data Link Layer – MAC Addressing, ARP, CSMA/CD, Switched Ethernet, MAC Learning, STP
6. Network Layer – IP Addressing, NAT, IP Forwarding, Distance Vector, Link State, BGP, DNS
7. Transport Layer – UDP, TCP Reliability, TCP Flow Control, TCP Congestion Control
8. Application Layer – Web, HTTP, TLS, HTTPS, HTTP/2, QUIC
9. Software-defined Network

Proficiency in C and Python programming languages and knowledge of data structures (ECE 36800).

Computer Networks: A Systems Approach (5th edition), by Peterson and Davie, Morgan Kaufmann, 2011, Hardcover ISBN: 9780123850591, eBook ISBN: 9780123850607. Note that while the class has a textbook, we will not follow its order of presentation; instead, we will use the textbook as a reference when covering each topic. The primary learning resources for this class will be the lecture slides and practice problem sets posted on Brightspace.

This course offers an Honors contract to aid students to go beyond the material of the regular course and to produce work that engages deeper learning. Students who sign up for the Honors contract will be required to complete one extra milestone in Lab 3 in addition to the regular coursework. The milestone under Honors contract will account for 5% of the total grade.

Some important notes about the Honors contract:

Any student is eligible to contract a course for Honors credit so long as his/her cumulative GPA is 3.00 or above. The student does not need to be in the Honors College.
Once an Honors contract is successfully completed in a "regular" course, the word "Honors" is added to the name of the course, and this is the version that goes on the transcript.
To opt for Honors contract, students must request a Grade Mode Change via myPurdue before the start of the 3rd week of classes in the semester (Sep 8, 2025).

35% grade — Programming Labs

Lab Description Regular Honors
Lab 1: HTTP Web Client 5% 5%
Lab 2: HTTP Web Server 10% 10%
Lab 3: Distributed Routing 10% 5%
Honors Milestone 5%
Lab 4: Reliable Transport 10% 10%

Lab 1 and Lab 2 will be in C while Lab 3 and Lab 4 will be in Python. All labs must be done individually with no collaboration and no use of AI tools allowed. No extensions will be granted for lab submissions as students will be given ample time to finish each lab.

65% grade — Exams
There will be 4 exams (1 prelim, 2 midterms, and 1 final). The preliminary exam will carry 5% credit while the two midterm exams and the final exam will carry 20% credit each. The syllabus for the exams will be non-cumulative, i.e., the syllabus for the next exam will not include topics covered in previous exams. All exams will be closed-book with no collaboration and no use of AI tools allowed. Barring extraordinary circumstances (serious medical situations or family emergencies, accompanied by verification and a prior notification to the instructor), no make-ups will be granted for exams.

Students who are most active and helpful in answering questions on Piazza may receive bonus points.

Policy for Late Submissions

If a lab is submitted within 24 hours (1 day) after the deadline — 25% grade penalty.
If a lab is submitted within 48 hours (2 days) after the deadline — 50% grade penalty.
No lab submissions will be accepted beyond 48 hours (2 days) after the deadline.

Policy for Re-grade Requests

Students may submit re-grade requests for labs within 48 hours (2 days) after the grades are released. All re-grade requests must be submitted on Piazza as a private post with the title "Re-grade request for Lab [X]" followed by a justification for the re-grade request (without a justification, the request will be ignored). Any emails sent to the TAs or the instructor about the re-grade requests will also be ignored.

Pranav Srisankar
Graduate TA
Office Hours
Fri 4–6pm in BHEE 209
psrisank@purdue.edu
Francis Ozua
Undergraduate TA
Office Hours
Tue 5–7pm in BHEE 209
fozua@purdue.edu
Aarav Sumit Patel
Undergraduate TA
Office Hours
Wed 4–6pm in BHEE 209
pate1830@purdue.edu
Jacob Lawrence
Undergraduate TA
Office Hours
Wed 4:30–6:30pm in BHEE 209
lawre104@purdue.edu
Basil Hasan Khwaja
Undergraduate TA
Office Hours
Thu 4–6pm in BHEE 209
bkhwaja@purdue.edu
Akash Krishna Kumar
Undergraduate TA
Office Hours
Thu 6–8pm in BHEE 209
kumar556@purdue.edu
Praneel Bhandari
Undergraduate TA
Office Hours
Thu 6–8pm in BHEE 209
pmbhanda@purdue.edu
Joshua Mansky
Undergraduate TA
Office Hours
Fri 4–6pm in BHEE 209
jmansky@purdue.edu

Unless expressly allowed, students are expected to complete all exams and programming labs by themselves. No use of AI tools is allowed for completing the programming labs and exams. However, students are allowed to discuss general issues with other students (programming techniques, clearing up confusion about requirements, etc.). Students may discuss particular algorithmic issues on Piazza (but they must not post or copy code!). If there is any doubt, students should contact the instructor.

Course staff will be using software designed to catch plagiarism and use of AI tools in programming labs and copying on exams. A student is considered in violation of the academic honesty policy regardless of whether they are the one "copying" or the one "being copied from".

Academic integrity is one of the highest values that Purdue University holds. Individuals are encouraged to alert university officials to potential breaches of this value by either emailing integrity@purdue.edu or by calling 765-494-8778. While information may be submitted anonymously, the more information is submitted the greater the opportunity for the university to investigate the concern. More details are available on the Academic Resources table on the Brightspace homepage.

Punishments for academic dishonesty are severe, including receiving a failing grade in the course or being expelled from the university. By departmental rules, all instances of cheating will be reported to the Dean of Students. On the first instance of cheating on a programming lab or exam, students involved will receive a 0; the second instance of cheating will result in a failing grade in the course.

Use of Copyrighted Materials. All course materials, including lecture slides, practice problem sets, programming labs, exams, and solutions are subject to Purdue's copyright policies. Students must not share, distribute, or post any material on an online web site without checking with the instructor.