CSC 257/457: Computer Networks (Fall 2026)
Course Information
Course Description
Introduction to computer networks and computer communication: Architecture and Protocols:. Design of protocols for error recovery, reliable delivery, routing and congestion control. Store-and-forward networks, satellite networks, local area networks and locally distributed systems. Case studies of networks, protocols and protocol families. Emphasis on software design issues in computer communication.
Credit hours and workload
This is a four credit class. Students are expected to do significant work outside of class time. This supplementary work includes reading, programming and other assignments, and quiz preparation, and therefore is expected to require up to eight hours of effort per week.
Prerequisites
CSC 252 (or equivalent), plus programming skills.Textbooks
- (Primary) Computer Networking: A Top-Down Approach, 9/E by James F. Kurose & Keith W. Ross (© Pearson Education, 2025). This is a classic and excellent text on computer networking. This is a newer edition; older editions are mostly fine, but this is an area where there have been LOTS of advances in the field recently, so you are strongly encouraged to get a copy.
- Computer Networks: A Systems Approach by Larry Peterson & Bruce Davie ((© CC BY 4.0)). This is a great, freely available book which provides supplemental material for many of the topics we will cover. Not required, but good source of additional perspectives.
- TCP/IP Illustrated, Volume 1: The Protocols, 2/E (ISBN: 0321336313) by Kevin Fall & Richard Stevens (© Addison-Wesley, 2011). This text deep dives into the details of how each protocol in the TCP/IP stack actually works. Although it is older, it is still a very reference. The full text is freely available online through the library.
- We will be reading several RFCs for this course as well.
Instructor
- Adam Purtee<apurtee@cs.rochester.edu>
- More info: cs.rochester.edu/u/apurtee.
- For office hours and location see blackboard.
Assignments
Assignments
- Labs – these will be short take-home exercises where you are asked to work with live network data and software tools such as wireshark, dig, nmap, and others.
- Programming assignments – these will be substantial programming projects where you will implement network applications, protocols, or simulations. It will be assumed that students are familiar with C, Java, python, and Linux.
- Quizzes – there will be four in-person quizzes in this course. An optional final exam can replace your lowest quiz score.
- Deep dive project – students taking the course for graduate credit (i.e., CSC 457) will be required to research a specific area of computer networking and to summarize their research with a written paper and an oral presentation. Undergraduates are required to attend the research presentations. Students are strongly encouraged to work in small groups so that you may explore different perspectives on a single topic.
Grading
Your Overall Grade:
Your scores on the individual
components of this course will weighted to obtain your course
score. All appeals of grades on individual scores must be made
within one week of the grade being available. The following
table represents this weighting of components.
| Category | 257 | 457 |
|---|---|---|
| Labs | 10% | 5% |
| Programming | 30% | 25% |
| Quizzes | 60% | 55% |
| Deep Dives | 0% | 15% |
| Total | 100% | 100% |
Your Letter Grade:
Letter grades will follow
the Official
University of Rochester Grading Scheme. Note that the
University scheme puts “average” somewhere between C and B. The
following table is an estimate of how the numeric grades will
map onto the letter grades. Half-letter adjustments (e.g., A-,
B+, B-) will be assigned at instructor discretion. Note that
grading schemes are slightly different for undergraduate and
graduate students.
| Letter Grade | Threshold |
|---|---|
| A (Excellent) | ≥ 93% |
| A− | ≥ 90% |
| B+ | ≥ 87% |
| B (Above Average) | ≥ 83% |
| B− | ≥ 80% |
| C+ | ≥ 77% |
| C | ≥ 73% |
| C− (Minimum satisfactory) | ≥ 70% |
| D (Minimum passing) | ≥ 60% |
| E | < 60% |
Schedule
| Date | DoW | Topic |
|---|---|---|
| Aug 31 | Mon | Introduction |
| Sep 2 | Wed | Overview of the Internet |
| Sep 7 | Mon | No class - Labor Day. |
| Sep 9 | Wed | Application Layer — HTTP |
| Sep 14 | Mon | Socket Programming |
| Sep 16 | Wed | Application Layer — DNS / SMTP |
| Sep 21 | Mon | Application Layer Wrap-up |
| Sep 23 | Wed | Quiz 1 - Application Layer |
| Sep 28 | Mon | Transport Layer Overview |
| Sep 30 | Wed | UDP, Reliable Delivery |
| Oct 5 | Mon | Transmission Control Protocol |
| Oct 7 | Wed | Flow and Congestion Control |
| Oct 12 | Mon | No class - Fall Break. |
| Oct 14 | Wed | Quiz 2 - Transport Layer |
| Oct 19 | Mon | Internet Protocol — addressing, subnetting, forwarding |
| Oct 21 | Wed | Routing Algorithms |
| Oct 26 | Mon | Network Glue — DHCP, NAT, ICMP, traceroute |
| Oct 28 | Wed | Autonomous Systems and BGP |
| Nov 2 | Mon | Network Layer Wrap-up |
| Nov 4 | Wed | Quiz 3 - Network Layer |
| Nov 9 | Mon | Multiple Access/CSMA |
| Nov 11 | Wed | Ethernet, ARP, and VLANs |
| Nov 16 | Mon | Wireless Networks (802.11) |
| Nov 18 | Wed | Security — Crypto, PKI, TLS, SSH |
| Nov 23 | Mon | Security — Firewalls and Port Scanning |
| Nov 25 | Wed | No class - Thanksgiving Break. |
| Nov 30 | Mon | Security Wrap-up |
| Dec 2 | Wed | Quiz 4 — Link Layer and Security |
| Dec 7 | Mon | Deep Dive Reports |
| Dec 9 | Wed | Deep Dive Reports |
| Dec 14 | Mon | Last day of class. |
| Dec 20 | Sun | Final Exam — 8:30am-11:30am (time outside our control; subject to change by registrar.) |
Policies
Academic Honesty
All assignments and activities associated with this course must be performed in accordance with the University of Rochester’s Academic Honesty Policy. More information is available at: www.rochester.edu/college/honesty
All incidents of academic dishonesty will be reported. This is because academic dishonesty is harmful to the entire university community, AND because it is the explicit requirement of the University of Rochester Academic Honesty Policy.
All work submitted for this course is expected to be your own except for assignments and activities which explicitly state otherwise.
Artificial Intelligence
AI can probably do most of the programming projects in this course, but that is not the spirit of the class. The point is for you to learn how computer networks work, and the best way to do that is to study live networks and write network programs. You are allowed to use AI to help you learn the concepts, but you should not use it to directly complete the assignments. You are required to disclose AI use on assignments (e.g., I used AI to debug XYZ, I used AI to figure out how QUIC sockets work, and so on.) Submitting substantially AI generated code is disallowed. The TAs and instructor will use their judgment to determine what "substantially AI generated" means. You must be able to explain any code that you submit to the instructor's satisfaction. If we see transparently cited use that is problematic, we will reach out and discuss it with you. If we see substantial use that is NOT cited, we will begin academic honesty proceedings.Lawful Activities
In many computer science courses, "try it and see what happens" is a perfectly safe, fun, and valid way to learn. However, when dealing with tools of computer networking, the programs you write and execute may make connections to other machines belonging to private individuals, governments, and corporations. some of the topics discussed (such as virtual private networks), may not be permitted under your local jurisdiction. It is your responsibility to be aware of your local laws and responsibilities and to be thoughtful in your use of the tools and techniques of computer networks.
Policy on Electronics during In-Person Lectures
If you choose to use electronics, please do so respectfully. Leave all devices on silent. Please avoid activities which are not immediately helpful to your participation in the lecture (e.g., social media/texting). Doing these things can distract your peers or your instructor. For this class, there are a few topics which can be fun to explore in a networked environment, so you are welcome to bring laptops if you so choose. Absolutely no smart glasses, earbuds, or other electronic devices may be used during exams.
Late Work and Extensions
Quizzes must be completed during the assigned timeframe. Quiz dates will be available at the beginning of the course. Students with substantial conflicts (e.g., varsity travel, conferences) should contact the instructor well in advance. Projects must be submitted by the appropriate deadlines, which will be communicated at least two weeks in advance. Students in exceptional circumstances who cannot take a quiz during the assigned timeframe or submit a project by the appropriate deadline must make arrangements with the instructor in advance or they may otherwise receive a zero for the activity.
Disability Resources
The University of Rochester respects and welcomes students of all backgrounds and abilities. In the event you encounter any barrier(s) to full participation in this course due to the impact of disability, please contact the Office of Disability Resources. The access coordinators in the Office of Disability Resources can meet with you to discuss the barriers you are experiencing and explain the eligibility process for establishing academic accommodations. You can reach the Office of Disability Resources at: disability@rochester.edu; (585) 276-5075; Taylor Hall.
Students with an accommodation for any aspect of the course must make arrangements in advance through the Disability Resources office. Then, as instructed by the office, contact the instructor to confirm your arrangements.