Computer Networks

CMSC 417: Spring 2026

banner
Time: M-W, 2:00pm - 3:15pm
Location: CSI 2117



Instructor: Nirupam Roy
Email: niruroy@umd.edu
Office: IRB 5240

General Information


Office Hours:


Syllabus:
The goal of this course is to introduce students to the core concepts of wired and wireless networking. The primary focus will be on the layered architecture and the protocol stacks. At the end of the semester, students will well understand several concepts, including the Internet architecture, HTTP, DNS, P2P, Sockets, TCP/IP, BGP, Routing protocols, wireless and sensor networking, WiFi, cellular and satellite networks, and security.
The complete list of topics is covered in this course is given on the syllabus page. If time permits, some advanced networking concepts will be discussed.

Prerequisite: Minimum grade of C- in CMSC351 and CMSC330; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.

Grading:
(1) Final exam (20%) - One closed book/computer exam at the end of the semester covering the entire syllabus.
(2) Midterm exams (30%) - Two closed book/computer in-class exams covering selected topics from the syllabus.
(3) Programming assignments(25%) - Five programming assignments.
(4) Project (20%) - One semester-long project in a group of four students.
(5) Engagement (5%) - Learning broader topics in networking (4%) and participation in class discussions and Q&A (1%).
[Note: Bonus points will be capped per section (final exam, midterm exams, assignments, and final project).]

Textbook:

(1) Computer Networks: A Systems Approach
by Larry Peterson and Bruce Davie
Morgan Kaufmann, 6th Edition
Link: https://systemsapproach.org/books-html/

Recommended books for reference:

(1) Computer Networking: A Top-Down Approach Featuring the Internet
by Jim Kurose and Keith Ross.
Pearson, 7th edition, 2016. ISBN: 978-0133594140

(2) TCP/IP Sockets in C: A Practical Guide for Programmers
by Michael J. Donahoo, Kenneth L. Calvert
Morgan Kaufmann, 2nd edition, 2009. ISBN 978-0123745408

Course Schedule

(This schedule may change due to unforeseen events and students' evolving interests)

Date

Topics of discussions

Study materials


26-Jan-2026

UMD closed


28-Jan-2026

UMD closed


02-Feb-2026

Lecture: Course logistics, Foundations of networks
(Textbook chapter 1)


04-Feb-2026

Lecture: Foundations and architectures of networks
(Textbook chapter 3.4.1 and 3.4.2)


04-Feb-2026
(Wednesday)

Assignment_0 is released. Follow the "recommended setup" before you start.
Due: February 16th, 11:59:59 pm


06-Feb-2026
(Friday)

Socket Programming Workshop.
Location: CSI 1115 (In-person. Slides and recordings will be available afterward.)
Time: 11:00am - 12:50pm


09-Feb-2026

Lecture: Distance vector routing
(Textbook chapter 3.4.1 and 3.4.2)


11-Feb-2026

Lecture: DV routing
(Textbook chapter 3.4)


16-Feb-2026

Lecture: LS routing
(Textbook chapters 3.4)


16-Feb-2026
(Monday)

Assignment_1 is released.
Due: February 26th, 11:59:59 pm


18-Feb-2026

Lecture: Basic internetworking (IP) and IP fragmentation-reassembly
(Textbook chapter 3.3)


23-Feb-2026

Lecture: IP fragmentation-reassembly and IP addresses
(Textbook chapter 3.3)


25-Feb-2026

Lecture: Subnetting, CIDR
(Textbook chapter 3)


26-Feb-2026
(Thursday)

Assignment_2 is released.
Due: March 13th, 11:59:59 pm


02-Mar-2026

Lecture: CIDR, DHCP
(Textbook chapter 3)


04-Mar-2026

Midterm-1 exam.
Syllabus: The topics covered in class so far. Refer to the detailed syllabus.
Past exam questions: 417-exams.zip.
This is an in-class exam. Please bring your university ID card.


09-Mar-2026

Lecture: DHCP, NAT, ARP
(Textbook chapter 3)


11-Mar-2026

Lecture: ICMP, Virtual private networks and tunnels, IPV6
(Textbook chapter 3)


13-Mar-2026
(Friday)

Assignment_3 is released.
Due: April 2nd, 11:59:59 pm


15-March-2026
to 22-March-2026

Spring break


23-Mar-2026

Lecture: IPV6
(Textbook chapter 3)


25-Mar-2026

Lecture: Transport layer protocols
(Textbook chapter 5)


30-Mar-2026

Lecture: Transport layer: ARQ, TCP Flow Control
(Textbook chapter 5)


01-Apr-2026

Lecture: Transport layer: ARQ, TCP Flow Control - Part2
(Textbook chapter 5)


02-April-2026
(Thursday)

Assignment_4 is released.
Due: April 16th, 11:59:59 pm


06-Apr-2026

Lecture: TCP vulnerabilities, advanced TCP versions (BIC, CUBIC), and Link Layer
(A research paper & Textbook chapters 6 & 2)


08-Apr-2026

Lecture: Link layer protocols, Ethernet, and Hubs/Switches
(Textbook chapter 2)


13-Apr-2026

Midterm-2 exam.
Syllabus: The topics covered between Midterm-1 and Midterm-2. Refer to the detailed syllabus.
Past exam questions: 417-exams.zip.
This is an in-class exam. Please bring your university ID card.


15-Apr-2026

Lecture: Link layer, Wireless networks
(Textbook chapter 2)


16-April-2026
(Thursday)

Final project is released.
Due: May 7th, Morning 10:00:00 am (no redo or late submission allowed)
In-person project interviews and evaluations: May 7th and 8th (time slots will be released)


20-Apr-2026

Lecture: WiFi, Mobility in Wireless networks
(Textbook chapter 2)


22-Apr-2026

Lecture : Advanced networking: BGP protocol - I
(Textbook chapter 4)


27-Apr-2026

Lecture : Advanced networking: BGP protocol and attacks
(Textbook chapter 4)


29-Apr-2026

Lecture : BGP, BGP attacks, and Application layer
(Textbook chapter 4 & 9)



04-May-2026

Lecture : Application layer: Web, HTTP, Email
(Textbook chapter 9)



06-May-2026

Lecture : Application layer protocols, An interactive session with a past student joining industry.



07-May-2026 and 08-May-2026

Final Project Demo and Coding Interview

Location: TBD
Time: Book your interview slot (one per group) when announced.
This is an in-person interview. Expect coding tasks and questions related to the final project and any other coding assignments released earlier.

14-May-2026 (Thursday)

Final exam

Location: CSI 2117
Time: 4:00pm-6:00pm
This is an in-class exam. Please bring your university ID card.