COMP/ELEC 429 - Introduction to Computer Networks (Undergraduate)
Rice University
Fall 2023

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

Teaching Assistants

Office hour
Brianna Barrow
bmb15 at
DCH 3037
Wed 3pm-4pm
Hariharan Sezhiyan
hs86 at
DCH 3036
Thu 1pm-2pm

9:25am - 10:40am, Tue & Thu, HRZ 212

Course web page (this page)

Course schedule, lecture notes, readings, assignments, etc


Computer networking is a rapidly advancing field. New technologies such as software-defined networking and optical switching continue to transform computer network infrastructures. Everyday computer systems critically rely on the Internet for communication, data access, and information dissemination. Building scalable networked computer systems and effectively solving hard computational and data analytics problems using distributed, data-intensive, and parallel-computing techniques will require an intimate knowledge of the underlying computer networks' performance characteristics. It is therefore important for computer scientists and computer engineers to be familiar with the fundamentals of computer networking. This 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.


COMP 321


Computer Networks - A Systems Approach, 5th Edition
by Larry L. Peterson and Bruce S. Davie  

Other references

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

Computer Networks
by Andrew Tanenbaum and David J. Wetherall

UNIX Network Programming, Volume 1: The Sockets Networking API by W. Richard Stevens, Bill Fenner and Andrew M. Rudoff


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

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:  

Homework Assignments

Homework assignments are to be done by each student individually.


You may form groups of up to 4 people to do the projects. You may also work alone. 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.

Computing Facilities

You will be using your CLEAR computer account for programming projects in this course. You can remotely login to a CLEAR server by using the secured shell (ssh) to connect to ""

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. Additional extensions will not be granted.

Honor Code and Issue of Cheating

First and foremost, when in doubt of whether a specific behavior is acceptable, ask the instructor for a written clarification. Broadly speaking, for homework and project assignments, it's acceptable to ask someone about the concepts, algorithms, or approaches needed to do the homework and project 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. For exams, you are strictly prohibited from receiving any form of outside aid. Do not go on GitHub or use any other Internet search tools or Chatbots to search for solutions. Do not publicly share your own solution to GitHub or any other sites. Any such act is considered a violation of the Honor Code. Suspected honor code violations will be reported to the Honor Council. For further information about the honor system at Rice, visit

Accomodations for Students with Special Needs

Student with a disability requiring accommodations in this course is encouraged to contact me and Disability Support Services in the Allen Center, Room 111.

Title IX

Rice University cares about your wellbeing and safety. Rice encourages any student who has experienced an incident of harassment, pregnancy discrimination, gender discrimination, or relationship, sexual, or other forms interpersonal violence to seek support through The SAFE Office. Students should be aware when seeking support on campus that most employees, including myself, as the instructor/TA, are required by Title IX to disclose all incidents of non-consensual interpersonal behaviors to Title IX professionals on campus who can act to support that student and meet their needs. For more information, please visit or email