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


Instructor
Prof. T. S. Eugene Ng
Email: eugeneng at cs.rice.edu
Office: DH 3005
Office hour: Tue 230-300pm

Teaching Assistants

Name
Email
Office
Office hour
Guohui Wang
ghwang at rice.edu
DH 3001
Mon 200-300pm
Jingpu Shi
jingpu at rice.edu
DH 2117
Tue 400-500pm
Anwis Das
anwis at rice.edu
DH 3011
Thu 400-500pm

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

Course web page
http://www.cs.rice.edu/~eugeneng/teaching/s06/comp429

Course news group
rice.owlnews.comp429 (please read daily)

Mailing list
Use "COMP429-TA-L at mailman.rice.edu" to email to all TAs and instructor

Course schedule, lecture notes, readings, assignments, etc

Follow this link



Description


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.

Prerequisites

Experience with programming in C and UNIX development tools (e.g. make, gcc, gdb) is required. You should also know data structures (COMP 210, COMP 212) and basic probability (STAT 331 or 310).

Textbook

Computer Networks - A Systems Approach, 3rd Edition
by Larry L. Peterson and Bruce S. Davie, Morgan Kaufmann, 2003. 

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

Grading

Homeworks 20%
Projects 40%
Midterm exams 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:  

Exams

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.

Programming Projects

You will form groups of at most 2 people to do the programming projects.  You can work by yourself, but we do not recommend it because the projects will be significant work for two people. It is up to you to form and regulate your own groups. To collaborate effectively, you should both be involved in all of the major design decisions. You should also determine a partitioning of responsibilities so that you can both work effectively in parallel. For example, one might be responsible for generating all the test code while the other is responsible for the main code.

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 a clean way that would simplify making further enhancements. It will really benefit you in the long run to work on your software engineering skills.

Programming 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 programming 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. The project assignments must be the work of the students turning them in.

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.