COMP/ELEC 429 - Introduction to Computer Networks
Rice University
Spring 2010

Prof. T. S. Eugene Ng
Email: eugeneng at
Office: DH 3005
Office hour: By appointment

Teaching Assistants

Office hour
Florin Dinu
fd2 at
DH 3003 M 5:00 - 6:00pm
Jie Zheng
jz4 at
DH 3002 W 2:00 - 3:00pm

1:00pm - 2:20pm, Tue & Thu, DH 1042

Course web page (this page)

Mailing list
Use "COMP429-TA-L at" to email to all TAs and instructor

Course schedule, lecture notes, readings, assignments, etc

Follow this link


Computer networking is a rapidly advancing field. The Internet is already an integral part of society. It is therefore important for computer scientists and computer engineers to be familiar with the fundamentals of computer networking. This undergraduate course will emphasize on the architecture, algorithms, and protocols of the Internet. Topics include local area networking, routing, congestion control, network security, and applications such as peer-to-peer and content distribution networks. Students will work on hands-on projects to learn how to build Internet applications as well as network protocols.


Experience with programming in C and UNIX development tools (e.g. make, gcc, gdb) is required. You should also have taken the equivalents of COMP 211/212 and COMP 221/320.


Computer Networks - A Systems Approach, 4th Edition
by Larry L. Peterson and Bruce S. Davie, Morgan Kaufmann, 2007. 

Other references

Computer Networking, A Top-Down Approach Featuring the Internet, by James F. Kurose and Keith W. Ross

Computer Networks, 3rd ed
by Andrew Tanenbaum

UNIX Network Programming, Volume 1: Networking APIs: Sockets and XTI, 2nd ed by W. Richard Stevens


Homeworks 20%
Projects 40% (the projects are weighted equally)
Midterm exam 15%
Final exam 25%

Any requests for grade changes or regrading must be made within 7 days of when the work was returned. To ask for a regrade, attach to your work a page that specifies:  


There will be one midterm and one final. All exams will be closed book, and will cover material from lectures, readings, and the projects.

Homework Assignments

Homework assignments are to be done by each student individually and are due at the beginning of lecture on the specified date.


You will form groups of at most 3 people to do the projects.  You can work by yourself, but we do not recommend it. It is up to you to form and regulate your own group. To collaborate effectively, your group members should be involved in all of the major design decisions. You should also determine a partitioning of responsibilities so that your group can work effectively in parallel.

The TAs have been instructed to grade in part on design and implementation style and to be increasingly strict about this as the semester proceeds. In other words, it is not enough to get a working solution; you must implement the solution in an organized way that would simplify making further enhancements. It will really benefit you in the long run to work on your software engineering skills.

Projects are due at 11:59pm on the specified date.

Computing Facilities

You will be using your Owlnet UNIX account for programming projects in this course.

Late Policy

Written homework assignments have strict deadlines. Homework handed in late will be marked off 20% per day. Homework more than 2 days late will not be accepted. Extensions will not be granted.

For projects, we will use flexible slip dates. Each student is given an automatic extension of 4 calendar days for the semester. You can use the extension on any project during the semester in increments of a day. For instance, you can hand in one project 4 days late, or one project 2 days late and two projects 1 day late. The slip time will be deducted from each team member's remaining slip time. This should let you schedule due dates around the due dates for other courses.
After you have used up your slip time, any project handed in late will be marked off 20% per day. Projects more than 2 days late will not be accepted. Extensions will not be granted.

Regarding Cheating

It's OK to ask someone about the concepts, algorithms, or approaches needed to do the assignments. We encourage you to do so; both giving and taking advice will help you to learn. However, what you turn in must be your own, or for projects, your group's own work; copying other people's code, solution sets, or from any other sources is strictly prohibited.

Accomodations for Students with Special Needs

Any student with a disability requiring accommodations in this course is encouraged to contact me after class or during office hours.  Additionally, students will need to contact Disability Support Services in the Ley Student Center.