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.
| Lecturer/Manager | Professor Henning Schulzrinne | ||||||||||
| |||||||||||
| 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: |
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:
| ||||||||||
| 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. |
| 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) |