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

Instructor


Assignments


Assignments

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%
Programming30%25%
Quizzes 60%55%
Deep Dives 0% 15%
Total100%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


DateDoWTopic
Aug 31MonIntroduction
Sep 2WedOverview of the Internet
Sep 7MonNo class - Labor Day.
Sep 9WedApplication Layer — HTTP
Sep 14MonSocket Programming
Sep 16WedApplication Layer — DNS / SMTP
Sep 21MonApplication Layer Wrap-up
Sep 23WedQuiz 1 - Application Layer
Sep 28MonTransport Layer Overview
Sep 30WedUDP, Reliable Delivery
Oct 5MonTransmission Control Protocol
Oct 7WedFlow and Congestion Control
Oct 12MonNo class - Fall Break.
Oct 14WedQuiz 2 - Transport Layer
Oct 19MonInternet Protocol — addressing, subnetting, forwarding
Oct 21WedRouting Algorithms
Oct 26MonNetwork Glue — DHCP, NAT, ICMP, traceroute
Oct 28WedAutonomous Systems and BGP
Nov 2MonNetwork Layer Wrap-up
Nov 4WedQuiz 3 - Network Layer
Nov 9MonMultiple Access/CSMA
Nov 11WedEthernet, ARP, and VLANs
Nov 16MonWireless Networks (802.11)
Nov 18WedSecurity — Crypto, PKI, TLS, SSH
Nov 23MonSecurity — Firewalls and Port Scanning
Nov 25WedNo class - Thanksgiving Break.
Nov 30MonSecurity Wrap-up
Dec 2WedQuiz 4 — Link Layer and Security
Dec 7MonDeep Dive Reports
Dec 9WedDeep Dive Reports
Dec 14MonLast day of class.
Dec 20SunFinal 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.