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.

Lectures:

Tuesday and Thursday, 2:55PM-4:10PM, Hollister Hall B14.

Prerequisite:

This is a 4000-level level course; so, we expect you to know material from the programming, data structures and algorithms courses. In terms of mathematics, your algebra should be very solid, 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 "Secure, Private Channel to Staff" 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 prelim and two weeks prior to the final.

Grading:

Your course grade will be based on in-class surprise quizzes (20%), one prelim (30%), one final exam (45%) and filling out course evaluations (5%). For students who feel they do not perform well in exam settings, there will be optional projects for make up. These projects will not impact the grades for students who opt to not take up on this option. 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:

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. The best way to reach Prof. Agarwal is e-mail; see contact details.

Piazza:

http://piazza.com/cornell/spring2020/cs4450

Secure, Private Channel to Staff:

Please use the following email to request LOST sessions: cs4450lost@gmail.com.