COMP/ELEC 556 - Introduction to Computer Networks (Graduate)
Rice University
Fall 2017

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

Teaching Assistants

Office hour
Jaeho Lee
Jaeho.Lee at
DCH 1083 Tuesday 9:30am-10:30am
Dingming Wu
Dingming.Wu at
DCH 3006 Thursday 1:00pm-2:00pm
Runhua Zhang
Runhua.Zhang at
DCH 2070 Tuesday 2:00pm-3:00pm

10:50am - 12:05pm, Tue & Thu, RYN 201

Course web page (this page)

Online Question & Answer Mechanism
We'll be conducting online class-related question & answer on Piazza ( Piazza is a question & answer platform. We encourage you to ask questions when you're struggling to understand a concept -- you can even do so anonymously.

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. Within these projects, students are challenged to solve advanced problems beyond the scope expected for undergraduates.


COMP 221 or 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:  


Exams will be conducted in-class or as take-home. They will be closed-books exams.

Homework Assignments

Homework assignments are to be done by each student individually.


You may form groups of up to 3 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.

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

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, 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. 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.