Computer networks are considered as one of the most important and influential infrastructures that exist today (imagine what the world would be like if there were no Internet!). And yet, after 50 years of Internet success, communication networks continue to evolve in size, complexity and functionality with increasingly stringent demand on robustness, scalability, efficiency, flexibility and security. CS4450 is an undergraduate level course covering the fundamental concepts of computer networking:

My goals for you in this course are to learn not only what computer networks are and how they work today, but also why they are designed the way they are and how they are likely to evolve in the future.

Inclusiveness:

You belong here, and we are here to help you learn and enjoy this course. We strive to make CS4450 a welcoming, inclusive, respectful, and supportive environment, consistent with Cornell's Computer Science Department's Values of Inclusion. If you witness something that goes counter to a supportive and inclusive environment, please let Rachit know so that the issue can be addressed.

Lectures:

Monday and Wednesday, 2:45PM-4:00PM, Olin Hall 155.

Ed Discussions:

https://edstem.org/us/courses/25086

Communication

  • All enrollment related questions should be sent to courses@cis.cornell.edu.
  • Use the Ed Discussion for questions about course organization and technical material.
  • For time-sensitive matters, please email cs4450-staff@cornell.edu
  • For non-technical sensitive matters, please email cs4450-prof@cornell.edu
  • Please do not contact any course staff or instructors via their email addresses, facebook, texting, etc. for matters concerning this course.

Prerequisite:

The recommended prerequisite is CS4410, but it is not necessary. This is a 4000/5000-level level course; so, we expect you to know material from the programming, data structures and algorithms courses. In terms of mathematics, you need to know basic probability stuff, and you should be comfortable with thinking abstractly. We assume that you either know the material covered in those courses, or are willing to learn the material as necessary.

Textbook:

Computer Networks: A Systems Approach (5th edition), by Larry Peterson and Bruce Davie. Using the 4th edition is completely alright, though the chapter/section and the corresponding content may be different. While the class has a textbook, we will not follow its order of presentation; instead, we will use the textbook as a reference when covering each individual topic. An e-version of the book is available at Cornell Library website.

Advanced Readings:

There will be "advanced reading" material for several topics in the class. These readings are not compulsory. If your curiosity gets the better of you, go ahead and dive deeper into the topic using these advanced readings. Any material in advanced readings that is not covered in the class will not be in quizzes or exams.

LOST sessions:

We understand that sometimes students lose track of a course for various reasons (health, travel, personal problems, etc.) and spend the remainder of the semester catching up. We are here to help you in such scenarios. We will organize LOST sessions, where one of the TAs will spend 1-1 time with you and help you understand material that you may have missed for any of the above reasons---no questions asked. Please use the cs4450-prof@cornell.edu email below to request personalized LOST session at any time. Since the goal of LOST sessions is to help students get back on track in time and not to provide every student a personal TA, there will be no LOST sessions one week prior to the exams.

Grading:

Your course grade will be based on in-class surprise quizzes, three exams, and filling out course evaluations. There will be six problem sets and four projects during the course, but these will not be graded. We will provide solutions and help with all problem sets and projects, though. See the administration page for more details.

Course Staff:

Office hours:

Meeting Prof. Agarwal:

If you cannot make the office hours, Prof. Agarwal will find time to meet you off-hours. You should never hesitate to ask for an appointment from him, either for discussing the course material or any other related issues. However, you must not use email for asking technical questions---asking technical questions over emails is the easiest way for what is called a denial-of-service attack (the attacker, you :-), could send a one-liner email while the server, Prof. Agarwal, will spend hours drafting page-long answer). To avoid such attacks, Prof. Agarwal encourages you to meet him in person. The best way to reach Prof. Agarwal is e-mail; see contact details.