Computer Networks

Summer 2001

Course Abstract

Prerequisites: COMS W3139 (Data Structures) required and COMS W4118 (Operating Systems) recommended. Some background in basic probability and statistics. Fluency in C, C++ and/or Java.

"The design of system software to support computer networks, layered protocol architecture, distributed operating systems. A programming project is required." Overview of modern computer networks, with emphasis on the Internet architecture and protocols, covering link layer through application layer, as well as how to program network protocols and applications. Performance analysis, simulation and measurement will be introduced.

Course Benefits

Professor Schulzrinne

Applicable Degree Programs

Most courses 4000-level can be credited to all degree programs. All courses are subject to advisor approval.
Lecturer/Manager Professor Henning Schulzrinne
Class location: Mudd 535
Office hours: Wednesdays, 4-6 pm in 815 CEPSR
Office phone: +1 (212) 939 7042
CVN exam room phone: +1 (212) 854-8894
Email address: schulzrinne@cs.columbia.edu
Mailing list: cs4119@cs.columbia.edu, subscribe and manage your subscription online. Note that the list offers a digest option if you only want to receive one message per day. Also, you can subscribe as "send only" if you want to just read the archives, making it roughly equivalent to a newsgroup.
Web pages: main
Teaching assistants:
TA Office hours
Amit Kaul

TAs are also reachable as nethelp@cs.columbia.edu. During office hours, the TA can be reached by phone at (212) 854 4916.

Rules: The standard rules apply.
Day and time: pre-taped
Credits for course: 3
Prerequisites:

COMS W3139 (Data Structures) required and COMS W4118 (Operating Systems) recommended, but not required. Some background in basic probability and statistics. Fluency in C, C++ and/or Java.

Description: Introduction to computer networks, from physical layer to applications.
Required text(s): James F. Kurose and Keith W. Ross, Computer Networking: A Top-Down Approach Featuring the Internet, Addison Wesley, 2000. ISBN 0-201-477114. Said to be available from fatbrain and BookVariety.

There is an on-line edition of the book, containing errata and quizzes.

This book and the books below are available from most Internet book merchants. Links on the ISBN number lead to Amazon. You can find the best price from sites such as bestedeal.com, mysimon.com or smartshopper.com.

Reference text(s), not required:

Class notes, copies of slides and reference documents will be available on Columbia machines at http://www.cs.columbia.edu/~hgs/teaching/network/slides. There is also a general list of Internet resources.

Assignments: Six Homework assignments, each including questions and small programming problems. (Some assignments may be split into a written and programming part.) Please follow the submission instructions. The grading status of the assignments is tracked, so please contact the responsible TA if you have not yet received an assignment.
Project(s):

Students are expected to complete several mid-sized programming projects during the course of the semester as part of the assignments.

Programming projects may include:

  • Network client/server;
  • reliable transport protocol;
  • routing protocol;
  • name server resolver;
  • network management.
Midterm exam: 75 min. during class hours, closed book, calculator allowed
Final exam: Two hours, closed book/notes, calculator allowed, comprehensive.
Grading: Assignments 40%, midterm 25%, final 35%.
Computer hardware and software requirements: Computer Science computer account. Access to a Linux or Solaris machine is assumed, either on-campus/local or via dial-in. CRF handles account applications. Programming projects can be done in C, C++ or Java. Familiarity with basic system Unix programming concepts is assumed.
Homework submission: Programming assignments are submitted electronically to the teaching assistants. On-campus students submit written assignments to the TA on paper by beginning of class on due date, while off-campus students should use email.

Course Outline

Schedule subject to change.
Date # Topics/chapters covered Assigned (link to problems) Due (link to solution)
Tues, May 29 1 Course mechanics; introduction (Ch. 1)    
Wed, May 30 2 Computer Networks and the Internet (Ch. 1)    
Fri, June 1 3 Computer Networks and the Internet (Ch. 1; protocols)    
Mon, June 4 4 Computer Networks and the Internet (Ch. 1; transmission, physical layer) 1  
Wed, June 6 5 Computer Networks and the Internet (Ch. 1; protocol layering)    
Fri, June 8 6 Computer Networks and the Internet, Application Layer (Ch. 2)    
Mon, June 11 7 Application Layer (Ch. 2)   1
Wed, June 13 8 Application Layer (Ch. 2) 2  
Fri, June 15 9 Application Layer (Ch. 2)    
Mon, June 18 10 C-based socket programming    
Wed, June 20 11 Transport Layer (Ch. 3)   2
Fri, June 22 12 Transport Layer (Ch. 3) 3  
Mon, June 25 13 Transport Layer (Ch. 3)    
Wed, Jul 11 (14) Midterm (during class time, closed book, closed notes, calculator allowed), covering Sections 1.1 through 3.5.5. No programming.    
Mon, July 2 15 Guest lecture by Akamai    
Thurs, July 5 16 Multicast - guest lecture by Prof. Dan Rubenstein, Columbia U.   3
Fri, July 6 17 Network operations - guest lecture by Kevin Butler, Telcordia    
Mon, July 9 18 Transport Layer (Ch. 3), Network Layer and Routing (Ch. 4)    
Wed, July 11 19 Network Layer and Routing (Ch. 4) 4  
Mon, July 16 20 Network Layer and Routing (Ch. 4)    
Wed, July 18 21 Link Layer and Local Area Networks (Ch. 5) 5 4
Fri, Jul 20 22 Link Layer and Local Area Networks (Ch. 5)    
Mon, July 23 23 Security in Computer Networks (Ch. 7)    
Wed, July 25 24 Security in Computer Networks (Ch. 7) 6 5
Fri, July 27 25 Network Management (Ch. 8)    
Wed, Aug 1 26 Network Management (Ch. 8)    
Mon, Jul 30 27 Network Management (Ch. 8)    
Wed, Aug 1 28 Review Extra-credit assignment Aug 3 6
Fri, Aug 3, Anytime convenient for proctor and student   Final Exam (closed book/notes, calculator allowed, no programming; comprehensive, with emphasis on Sections 3.5.6 and later)    

Last updated by
Henning Schulzrinne