Computer Science 375
Computer Networks

Denison
CS375 Home Page
Computer Science 375
Computer Networks
Spring 2009
 
Professor: Thomas C. Bressoud Phone: 587-5630
Office: Olin 207 E-mail: bressoud@denison.edu
Office Hours: See Bressoud Spring Schedule Mailbox: Olin 201
Meeting Times: TR, 8:30-9:50am
Final Exam: H: Wednesday May 6, 9-11am

Description

This course examines the underlying concepts and technologies that make networks function. 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.

Textbooks

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 may be shared between pairs of students in the course.

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:

http://beej.us/guide/bgnet/

I suggest that you download, print, and put "Beej's Guide" in a binder for use during class.

Grade Determination

Midterm Tests (2):   
25%
Homework/Programming    
50%
Final Exam:
25%

Homework and Programming

The course employs a variety of types of homework and programming. These include 5 programming projects, the first two of which are individual assignments, 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
  • Distributed algorithm problems/analysis given in class

Of the 50% of the overall grade allocated to Homework and Programming, I expect the majority (around 30%) 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.

http://www.denison.edu/~bressoud/cs375-s09/

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.

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 4 "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 4 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 classes at Denison, it is expected that you devote at least 3 hours to these assignments 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.

Topics

    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.

Have a great semester! If you need anything, please let me know.