Computer Science 375
Computer Networks

CS375 Home Page
Computer Science 375
Computer Networks
Fall 2010
Professor: Thomas C. Bressoud Phone: 587-5630
Office: Olin 207 E-mail:
Office Hours: See Bressoud Fall Schedule Mailbox: Olin 201
Meeting Times: MWRF, 9:30 a.m. - 10:20 a.m.
Final Exam: B: Friday, Dec. 17, 9-11am


This course examines the underlying concepts and technologies that allow networks to function and allow distributed processing. This course will study both the design issues -- hardware design as well as protocol design -- and the programming associated with computer networks.

The study of network software allows us to build, through layering, an understanding of the architecture that permits us to traverse from a high-level view of the network presented by advanced user level protocols such as HTTP, NNTP, or IMAP, and their associated client-server applications of web browsers/servers, network news servers, or email clients and servers, to the low-level reality of transferring bits across a wire or through the air. Topics include packet and circuit switching, datalink, network and transport layer protocols, reliability, routing, internetworking, and congestion control.

The course will be comprised of a blend of the theory in the form of network protocols and design and practice in the form of network programming. In addition, topics from the broader field of distributed computing will be introduced throughout the semester.


The Peterson and Davie book is the primary text for the course. The Matthews book will be used for a series of packet trace analysis exercises designed to complement our coverage from the primary text and will be used for some supplemental reading. The Matthews text is available online through the Denison subscription to Safari and is linked to above. Because of the online availability (within the Denison network), I did not have the bookstore order copies, but I encourage you to get a hard copy.

In addition to the textbooks, there will be papers on distributed systems posted to the course schedule and we will also use web-based resources for primers on network programming. These may be downloaded as HTML or PDF and printed without fee. The following is a particularly good (and funny) link that we will use:

I suggest that you download, print, and put "Beej's Guide" in a binder for use during class. As we proceed, we will have other documentation used for network programming -- like man pages for C functions we will be calling from our programs, that can and should be added to this binder.

Grade Determination

Midterm Tests (2):   
Final Exam:

Homework and Programming

The course employs a variety of types of homework and programming. These include 4 programming projects, the first one of which is an individual assignment, and the following three can be either individual or team projects. There will also be written homework in the following three categories:

  • End-of-chapter problems from the primary textbook
  • Packet analysis problems from the secondary textbook -- many of these will be completed by teams of two students
  • Distributed algorithm problems/analysis given in class -- these will come in the second half of the course

Of the 50% of the overall grade allocated to Homework and Programming, I expect the majority (around 35%) to come from the programming assignments and the remainder to come from the written homeworks. The actual split will be based on the number and difficulty of the written homeworks.

Course Web Page

A web page will be maintained for this course.  The web page will include the schedule for the course, all reading assignments, programming assignments, example programs, and other useful information, including announcements to the class.  I expect you to check the web page regularly.

Policies and Student Responsibilities

Participation and Attendance
In general, we would like everyone to do their part to make this an enjoyable interactive experience. Hence in addition to attending class, we would like you to actively participate by asking questions, joining in our discussions, etc.

Your attendance is expected at each class meeting. ... and with only six of you (at the time of this writing) enrolled in the class, it will be painfully obvious when you are not present.

Readings and In-class Material

You are responsible for the content of reading assignments, lectures and handouts, as well as announcements and schedule changes made in class, whether or not you are present. If you must miss a class, you are responsible to get what you missed.

It is very important that you keep up with the assigned reading. Read your book on a daily basis. Be especially sure to read the material in the appropriate chapter before coming to class so you will be ready to ask questions. All reading assignments are listed on the class web page. The material in the course is, by necessity, cumulative. Be warned that if you fall behind, you will not be able to catch up easily.

Exam Policy

Exams will be given in class on the day scheduled and may not be made up. On rare occasions, and with a Univeristy sanctioned excuse, I may allow a midterm exam to be taken in advance. See me as early as possible to discuss this. The final exam will not, under any circumstance, be rescheduled. If you do not take the final, you will likely fail the class.

Homework Policy

There will be a number of written and programming assignments given during the semester which will be due on the date specified and at the time specified. No late written homework assignments shall be accepted. For the programming assignments, you are granted at the start of the semester a total of 5 "slip days". These are 24-hour extensions to the due date/time, and may be invoked by the student when necessary to alleviate the pressure of deliverables from multiple classes coming due at the same time. There will be NO extensions beyond these 5 slip days. You are well-advised to save them for later in the semester when the assignments become more difficult. Also note that the final project will be demonstrated on the last day of class (and open to the entire department), and so the slip days are not practical for use in that programming project.

Since it will most likely not be obvious how long an assignment might take, you are well advised to start early. Like other science classes at Denison, it is expected that you devote at least 3 hours outside of class for each hour of class time. Homework assignments must be typed.

You may discuss homework problems with other students in the class, but written (and typed) work must be your own. This includes all programming assignments. In other words, you may talk about homework problems with your peers, helping each other to understand the concepts involved, but when it comes time to write your solutions, you are on your own. You may have general conversations about problem strategies, but you must leave these conversations without having written anything down. Keep in mind that it is quite easy for me to tell when two students have been working too closely. In such cases, I am obliged to report the instance to the Associate Provost.


    1. Network Architecture and Implementation Issues
    2. Physical Network Connections
    3. Packet Switching
    4. Internetworking
    5. End-to-End Protocols
    6. Network Programming and Analysis
    7. Concurrent Applications through Network Messaging
    8. Network Security

Disability Accomodation

Any student who thinks he or she may need an accommodation based on the impact of a disability should contact me privately as soon as possible to discuss your specific needs. I rely on the Office of Academic Support in Doane 104 to verify the need for reasonable accommodation based on documentation on file in their office.

Academic Integrity

Proposed and developed by Denison students, passed unanimously by DCGA and Denison’s faculty, the Code of Academic Integrity requires that instructors notify the Associate Provost of cases of academic dishonesty, and it requires that cases be heard by the Academic Integrity Board. Further, the code makes students responsible for promoting a culture of integrity on campus and acting in instances in which integrity is violated.

Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity. Academic dishonesty is intellectual theft. It includes, but is not limited to, providing or receiving assistance in a manner not authorized by the instructor in the creation of work to be submitted for evaluation. This standard applies to all work ranging from daily homework assignments to major exams. Students must clearly cite any sources consulted—not only for quoted phrases but also for ideas and information that are not common knowledge. Neither ignorance nor carelessness is an acceptable defense in cases of plagiarism. It is the student’s responsibility to follow the appropriate format for citations. Students should ask their instructors for assistance in determining what sorts of materials and assistance are appropriate for assignments and for guidance in citing such materials clearly.

For further information about the Code of Academic Integrity see