Home Announcements Schedule Assignments Slides Projects Reading

COMP 3621: Computer Networks

Winter 2010

Course Info

InstructorProf. Chris GauthierDickey
OfficeJohn Greene Hall 321
Office HoursTR 9:30-9:55, M 11-12, or by appointment (email me)
Time & LocationTR 10:00 - 11:50, John Greene Hall 316
PrerequisiteCOMP 3361: Operating Systems I (though this may be taken as a co-requisite)

TA Info

TA:Craig Ritzdorf
Office:JGH 326
Hours:MW 12:00p-2:00p, or by appointment (email Craig)

More important stuff

Sample problems for the final have been posted. Note that these do not include all possible problems (there may be some wireless questions, hint hint). There will also be some problems similar to those on the midterm. Review the sample problems from the midterm for that.


Sample problems on the midterm have been posted.

Class Wiki

The class wiki can be found at classwikis.cs.du.edu. To access this from off campus, you must connect through the campus VPN!

Course Description

Computer networks are pervasive in our every day lives and in particular, the building of the Internet has been one of the most significant events in our technological history. In this course, you will be introduced to the fundamental principles of computer networking. Using the Internet as a primary example of a large-scale network, topics including the design of the Internet, application and transport protocols, congestion control, routing protocols, packet switching and link-level protocols are covered in this course.

Today's networking cannot be considered without examining security issues surrounding it. In particular, the following topics will be covered over the course of the term to give students a deeper understanding of security in networking:

In addition to understanding the principles of networking, in this course you will learn network programming by implementing substantial programs using C/C++. This course counts towards the advanced programming requirements of the graduate programs.

Finally, please note that this course is not a network administration course. Network administration is fairly trivial once you understand the fundamental computer science taught in this course, but as with all commercial applications, network administration is very dependent on the software and hardware used.


For lectures we will use:

Grading Policy and Assignments

Class Participation:5%

Class Participation:5%

Undergraduates and Graduate students may work in groups of two for homeworks. Programming assignments must all be done individually. Graduate students may not work with undergraduates on programming assignments.

We do encourage you to work on your assignments collaboratively assuming that each individual spends a reasonable amount of time on each question alone before discussing it with others. Note that dividing the problems up and working on them individually will most likely lead to you not understanding a particular topic on the assignment. When you turn in group work, turn in a single copy and put the names of all group members on top of the first page of the submitted papers.

Programs must be written using the assigned language, and in this case in C/C++. Yes, Java is easier in some ways to do network programming. Python is downright simplistic. Both of these languages shield you from understanding how network code really works. Hence, you must use C/C++.

Homeworks are due in class and no late assignments will be accepted without prior arrangement. Turn in partial work if you are not finished. If you must hand it in before class, hand it in to the front office in the department. Do not slide the work under the door as it may get lost!

Tolerance Policy

You are expected to be tolerant of all people, regardless of race, gender, religion, national origin, age, sexual identity/orientation, disability status, marital status or veteran status. Comments and/or slang that target any of these groups is completely unacceptable in my class or in the University. Please think about what you're saying before you say it.

Honor Code

For this course, all work must be done individually unless specified (ie, problem sets can be worked on in groups of 2). You may discuss problems and assignments with other students, but you cannot use another student's solution or code in any way. At minimum, if you use someone else's code, you must place an obvious comment block in your code indicating so. All sources must be properly acknowldged and document. Failure to do so constitutes a breach of the Honor Code.

Sanctions imposed from a breach of the Honor Code may include, but are not limited to, the failure of an assignment, the failure of a course, and termination from the program. I will impose a failure of the course for any such offenses in the course.