CS3251 - Computer Networks I

Instructor: Prof. Patrick Traynor (my_last_name 'at' cc.gatech.edu)
Location: Klaus 2447
Meeting Times: TR 9:35am - 10:55am
Credits: 3
Prerequisites: CS 2200 (minimum grade of C)
Office Hours: Tuesday: 11am - Noon
TA and Office Hours: Khyati Shrivastava (Thursday: 11am - Noon; GTISC Common Area)


Communications networks are fundamental to our everyday lives. Whether for enabling global scale commerce or connecting long lost friends, these systems have created an unparalleled age of information. Accordingly, knowledge of such systems is critical for all scientists and engineers. This course provides an overview of networking technologies. Students satisfactorily completing this course will gain the skills necessary to analyze and design networking systems and protocols. The course will begin with the application layer, looking at design patterns present in common application layer protocols. We then move down the network stack, considering topics such as reliable transmission and congestion control at the transport layer, routing at the network layer, and multiple access protocols at the link layer. After this discussion, the latter portion of the course will include wireless/mobile networks and devices, queuing fundamentals, security, and network management.

The majority of readings for this course will come from the following two mandatory books:

  • James F. Kurose and Keith W. Ross, Computer Networking, 5th Edition, Pearson Addison-Wesley, 2010.
  • Michael J. Donahoo and Kenneth L. Calvert, TCP/IP Sockets in C: A Practical Guide for Programmers, 2nd Edition, Morgan Kaufmann, 2009.

A detailed list of lectures, readings, assignments, due dates (subject to change as the semester evolves) is available on the course schedule.


Students will be evaluated based on the following breakdown:

  • 15% Homework
  • 20% Projects
  • 25% Midterm
  • 35% Final
  • 5% Class Participation


The course will include one midterm and one final exam. Students will be responsible for material covered both in the text AND lectures. Attendance is therefore recommended as not all class discussions will be covered in the text.

Homework and Projects

This course will consist of three homework and four programming projects. Hard copies of homework assignments or digital copies turned in via T-Square are due at the beginning of class. Projects must be written in the C programming language (except when specified by Professor Traynor) and submitted to T-Square as a single tarfile by 5:00 on the due date. See the lateness policy below.

Note that this is a systems course - successfully completing coding assignments is a necessary condition for earning a desirable grade.

Class Participation

To do well in this course, students must take active and regular roles in discussion and demonstrate comprehension of the reading and lecture themes. Students are required to do the assigned reading before class. This will be closely monitored by Professor Traynor.

Lateness Policy

Assignments and project milestones are assessed a 15% per-day late penalty, with a maximum of 4 days. Unless the problem is apocalyptic, don't give me excuses. Students with legitimate reasons who contact the professor before the deadline may apply for an extension.

Academic Integrity Policy

Students are required to follow the university guidelines on academic conduct at all times. Students failing to meet these standards will be reported to the Office of Student Integrity, which can result in the student receiving an 'F' for the semester and potential separation from Georgia Tech. Note that students are explicitly forbidden from copying anything off of the Internet (e.g., source code, text, slides), using anything from an answer guide, or copying code/answers from each other for the purposes of completing any assignment or a course project. Source code will be checked using automated tools to detect cheating. Dishonest behavior will absolutely not be tolerated. If you have a question regarding this policy, please consult with Professor Traynor.