CS 455/555 - Intro to Networks and Communication
Spring 2011: Tues/Thurs 9:30-10:45am, Spong 108

Print - Admin




Final Paper




Course Overview

This is a split undergraduate/graduate-level course in computer networking, focusing on the applications and protocols that run on the Internet. We will take a top-down approach to the layered network architecture, studying applications first and then proceeding down the network “stack” towards the physical link. We will look at the operation of applications such as the web, FTP, e-mail, and DNS. At the transport layer, we will study both connectionless UDP and connection-oriented TCP. Since TCP is the protocol that the majority of Internet traffic uses, we will study its operation in-depth, including flow control and congestion control. We will also look at how data is routed through the Internet, regardless of transport protocol. We will also introduce current “hot” topics, such as network security and wireless/mobile network.

Course Objectives

By the end of the semester, you should be able to complete the following tasks, among others:

  • Design and implement a socket-based application using either TCP or UDP. Examples include chat, echo, a web client, and an FTP client.
  • Explain how the choice of a transport protocol can affect networked applications.
  • Use networking tools such as ping, traceroute, tcpdump, and dig to investigate a network.
  • Explain what happens on the network when you click a link on a web page.
  • Explain how an email message you send to a friend is sent and delivered.
  • List the two main types of routing algorithms and which protocols use those algorithms. Describe the main differences between the two algorithms.
  • Explain why routers cannot have a routing table with an entry for every other router in the Internet.
  • Compute the end-to-end delay for a packet given the propagation delay, link bandwidth, and packet size.
  • List the five layers of the Internet protocol stack and give an example of each.
  • Explain the difference between congestion control and flow control and how each is implemented in TCP



Prerequisites for this course for undergraduates are:

Prerequisites for this course for all students are:

  • A working knowledge of Java
    Contact me if you would rather use another programming language. Note that all examples in the class will be given in Java.
  • A working knowledge of the Unix program development environment
    I expect you to be familiar with common Unix commands. If you need a refresher, see the CS 252 webpage. This link is also available from our course webpage (under Links).

This course requires programming in the Unix environment. So, you will need a CS Unix account. If you do not have one, use the Account Creation Page to create one as soon as possible.

Course Materials

The official textbook for this course:

Another helpful book:

CS 455 vs. CS 555

Students enrolled in CS 555 will have additional problems on written homework assignments, will have more difficult questions on the exams, and will present a report on a networking topic to the class

Academic Integrity / Honor Code

Please refer to the statement on academic integrity given below.

By attending Old Dominion University you have accepted the responsibility to abide by the honor code. If you are uncertain about how the honor code applies to any course activity, you should request clarification from the instructor. The honor code is as follows:

"I pledge to support the honor system of Old Dominion University. I will refrain from any form of academic dishonesty or deception, such as cheating or plagiarism. I am aware that as a member if the academic community, it is my responsibility to turn in all suspected violators of the honor system. I will report to Honor Council hearings if summoned."

In particular, submitting anything that is not your own work without proper attribution (giving credit to the original author) is plagiarism and is considered to be an honor code violation. It is not acceptable to copy source code or written work from any other source (including other students), unless explicitly allowed in the assignment statement. In cases where using resources such as the Internet is allowed, proper attribution must be given.

Any evidence of an honor code violation (cheating) will result in a 0 grade for the assignment/exam, and the incident will be submitted to the Department of Computer Science for further review. Evidence of cheating may include a student being unable to satisfactorily answer questions asked by the instructor about a submitted solution. Cheating includes not only receiving unauthorized assistance, but also giving unauthorized assistance. For class files kept in Unix space, students are expected to use Unix file permission protections (chmod) to keep other students from accessing the files. Failure to adequately protect files may result in a student being held responsible for giving unauthorized assistance, even if not directly aware of it.

Students may still provide legitimate assistance to one another. You are encouraged to form study groups to discuss course topics. Students should avoid discussions of solutions to ongoing assignments and should not, under any circumstances, show or share code solutions for an ongoing assignment.

Please see the ODU Honor Council’s webpage for other concrete examples of what constitutes cheating, plagiarism, and unauthorized collaboration. All students are responsible for knowing the rules. If you are unclear about whether a certain activity is allowed or not, please contact the instructor.

Course Policies


Your grade in this class will be based on the following:
(Note that these percentages are only approximate and are subject to change, but by no more than 10%.)

Programming Assignments20%
These are to be completed individually unless otherwise specified and are due before midnight on the due date.
Written Homework Assignments20%
These are to be completed individually and are due at the beginning of class on the due date.
Mid-Term Exam20%
The exam questions will be similar in style and complexity to the written homework assignments and in-class exercises.
Undergraduate Report / Graduate Presentation10%
Undergraduates will complete a report on a networking topic (to be approved by the instructor). Graduate students will complete a report on a networking topic and give a presentation on the topic to the class. More details about these will be given later in the semester.
Participation / Quizzes5%
May include unannounced quizzes.
Final Exam25%
Our final exam is scheduled for Tuesday, May 3, 2010 at 8:30am in our regular classroom. The final will cover topics from the entire semester.

Grading Scale

The grading scale is as follows (+ and - modifiers will be applied as appropriate):

60-69D (CS 455 only)
0-59F (CS 455)
0-69F (CS 555)

Programming Assignment Grading Guidelines

  • Programs that do not compile will receive a 0.
  • Programming assignments will be graded based on how your program performs on a number of test cases. You are strongly encouraged to rigorously test your program before submitting it.
  • Programming style (including code comments) and design will also be considered in grading. Sloppy programs that work 100% will not receive a grade of 100.
  • Include your name, assignment number, due date, and course in the comments of each file that you submit

Late Assignments

Any assignment submitted after its deadline is considered late. The following penalties for late assignments apply:

  • 0-24 hours late: -5%
  • 25-48 hours late: -10%
  • over 48 hours late: not accepted, grade = 0

This time limit includes weekends -- they are counted just like weekdays.

I reserve the right to specify that late submissions will not be accepted for particular assignments.


I expect you to attend class and to arrive on time. Your grade may be affected if you are consistently tardy. If you have to miss a class, you are responsible checking the course website to find any assignments or notes you may have missed. Students may leave after 15 minutes if the instructor or a guest lecturer does not arrive in that time.


I will use the CS 455 mailing list for communicating with the class. You are responsible for signing up for the mailing list. Use an email address that you check every day - it does not have to be an @odu.edu address.

For individual emails, I will use the email address that you have used for the mailing list. If you have not signed up for the list, I will use your @odu.edu email.

Classroom Conduct

Please be respectful of your classmates and instructor by minimizing distractions during class. Cell phones must be turned off during class.

Make-up Work

Make-ups for graded activities are possible only with a valid written medical or university excuse. It is the student's responsibility to give the instructor the written excuse and to arrange for any makeup work to be done. A makeup exam may be different (and possibly more difficult) than the regularly scheduled exam.

Disability Services

In compliance with PL94-142 and more recent federal legislation affirming the rights of disabled individuals, provisions will be made for students with special needs on an individual basis. The student must have been identified as special needs by the university and an appropriate letter must be provided to the course instructor. Provision will be made based upon written guidelines from the University's Office of Educational Accessibility. All students are expected to fulfill all course requirements.

Seeking Help

The course website should be your first reference for questions about the class. The schedule will be updated throughout the semester with links to lecture notes and assignments. Announcements and frequently asked questions (FAQ) will also be posted to the course website.

The best way to get help on assignments and in understanding lectures is to come to office hours. If you cannot make office hours, please send an email to setup an appointment. Unfortunately, I am not able to take walk-in questions outside of office hours.

I am available via email, but do not expect or rely on an immediate response.

Since this course will include several programming assignments, here’s a word of advice – start working on assignments early! An hour spent reading and understanding an assignment on the day it is given out will be worth many hours on the night before it is due.