About the course
Did you ever wonder how the Internet works? How do you send messages to one of billions of computers in the world and ensure that they are delivered efficiently and accurately even if they are on a different physical network and in a different part of the world? If so, then this course is for you!
As its name - 01:198:352 - implies, this course is about Internet Technology. We will cover the architecture of the Internet from the application layer down to ethernet connections. In the course of doing this, we will delve into network programming, TCP and UDP protocols, reliable message delivery, routing, access protocols, VLANs, and firewalls. Think of this course as "networking for computer scientists." We will examine the core algorithms and protocols but tread lighly on stochastic processes and probability and avoid queueing theory and Markov chains.
A tentative syllabus can be found at http://www.cs.rutgers.edu/~pxk/352/syllabus.html. The course content been may change somewhat since I am constantly trying to structure the course to include relevant topics. I will update the web pages as the course progresses.
Course information can be found on my main course web page http://www.cs.rutgers.edu/~pxk/352. The links on that page will take you to prerequisites, homework assignments, exam info, and course policy. Be sure to check out the policy and prerequisites at the start of the course to avoid problems. The link at the bottom will take you to a news page (the link text will state when it was updated). This page will contain a running list of announcements such as homework assignments, exam announcements, corrections, and random comments. Please make a point of checking this page.
Most of this course will follow the textbook. I plan to post lecture notes that summarize lecture content, particularly information that may not be available in the text. While the lecture notes attempt to cover most material that will be presented, I cannot guarantee that they will cover all of the material. The course is not a correspondence course. You are responsible for attending class and for all the material presented in class.
exams and assignments
In order for me to be able to give you a grade in this course, you will have a number of homework assignments, programming projects, exams, and quizzes. My goal is not to torture you but to give you an opportunity to play with some of the material presented and for me to get enough material from you so that I can give you a fair grade without your performance being determined by a single exam.
I expect that you have reasonable proficiency in programming in C and/or Java and/or Python. You cannot pass the course without completing the programming assignments. There will be an exam given roughly every third lecture for half a lecture along with a final exam. All exams will be weighted equally and the lowest grade will be dropped. My hope is that enough of you will do well in the course that you will not have to take the final exam. Largely to reward attendance and to ensure that you're not completely asleep (since it is a late class), I will gived a few quizzes throughout the semester. These will be intended to be quite easy and you will be able to complete them during the lecture using information obtained from the lecture.