CS244: Advanced Topics in Networking, Spring 2012

Professors: Nick McKeown, Martin Casado, Tom Edsall

Lectures: Tue, Thu 12:50-2:05PM at NVIDIA Auditorium, Jen-Hsun Huang Engineering Center

Discussion Sections: Fri 3:15-4:05PM at Room 018, Jen-Hsun Huang Engineering Center

Nick Office Hours: Wed 5:00PM-6:00PM at Gates Gates 340 (starting Apr 11)

TA Office Hours: Mon, Wed 11:00AM-12:00PM at Gates 359 (starting Apr 9)

Course Description

CS244 is a graduate course in computer networks. Spring 2011-12 marks the fourth offering of this class, and its first time as an SCPD class.

The goals for this class are:

  • To become familiar with the state of the art in networking research: network architecture, protocols and systems.

  • To gain some practice in reading research papers and critically understanding the research of others.

  • To gain experience with network programming using state-of-the-art research platforms.

In the past two decades, the Internet has grown from a research tool to a fundamental part of society; something we all take for granted and use everyday. In this class we'll explore why the infrastructure was designed this way, and the underlying principles and design decisions. We'll explore the pros and cons of the current design, and give some thought to how we can make the Internet better in future.

Announcements

  • May 28: Midterm solutions posted here.

  • May 5: TA slides for the third review session are up on the Review Sessions page. Time to get started on PA3!

  • Apr 20: TA slides for the second review session are up on the Review Sessions page.

  • Apr 11: TA slides for the first review session are up on the Review Sessions page.

  • Apr 3: TA slides for the first class are up on the Schedule page.

  • Apr 3: After the first class, a few TODOs for students:

    • Get a wordpress.com username and email the TAs.

    • Form your teams for the assignments and email the TAs as specified in EC2 Mininet Setup.

    • Assignment 1 is up, and it is due 5pm on Friday, April 13.

About the Course

Requirements

You must have taken CS 144, EE 284 or equivalent. If you have any doubt, ask for permission from Professor Nick McKeown. This background is essential before taking the class, as we'll read a lot papers quickly without time to catch up on the basics. The course assumes an understanding of topics in networking such as packet-switching, routing (distance vector and shortest path first), socket programming, and congestion control. You need an SUNetID to access the papers and print them.

If you want to refresh your background, the following textbooks might be useful:

  • J. Kurose and K. Ross, “Computer Networking: A Top-Down Approach”.

  • L. Peterson and B. Davie, “Computer Networks: A Systems Approach”.

You need to be able to program in Python.

Organization and Workload

The course is based on CS240 ( Advanced Topics in Operating Systems). The class consists of two main activities:

  1. Papers and discussions: We will read 1-2 papers for each class (i.e. 2-4 papers per week), and discuss them in class. You will need to spend about 2 hours reading each paper, and making notes, to prepare you to discuss them in class. This only works if you come to class ready to discuss the papers in detail, which is why 15% of your grade is for in-class participation (SCPD students, see special section below). There will be as much as 10-15 hours of reading per week. Do not take this course unless you are willing and able to do a lot of reading.

  2. Programming Assignments: You will do three programming assignments in Python (see special section below).

Grading Policy

The class is graded as follows:

  • Reading and Participation: 30%

    • critiques before class (10%)

    • in-class participation (15%)

    • scribing the discussion for two lectures (5%)

  • Programming Assignments: 40%

    • p.a.1 (10%)

    • p.a.2 (10%)

    • p.a.3 (20%)

  • Midterm and Final: 30%

    • midterm (15%)

    • final (15%)

Critiques

Before each class, you must submit a short critique of the required readings. To submit your critique, follow the submission link. Critiques will be accepted until 12pm (midnight) the night before class. All later submissions will be automatically rejected, so please respect the deadline. It is not possible to make up for a missed critique.

In-class participation

Is class participation based solely on attendance? No. Attendance is a necessary but not sufficient condition for good class participation. The general policy is that a student will automatically receive a deduction of one letter grade for missing more than 3 lectures. We will not take official roll during lecture, but because we make the effort to know everyone in the class we will notice if a student is frequently absent. If you have any concerns about not being able to regularly attend class (e.g., you will have to miss several classes during the quarter) please discuss this as soon as possible with the course staff. Beyond attendance, we evaluate class participation by observing how prepared students are to discuss the covered paper when they come to class. This is not a trivial requirement because we expect papers to have been read thoroughly prior to lecture.

Scribing a Lecture

Each student is the “scribe” for 2 lectures. Scribing assignments will be assigned after the first lecture. You must complete and submit your script in less than 1 week after the lecture. Scribes will be in the form of blog posts that everyone can read. A scribe should capture a summary of the discussion that took place in class, questions asked and the conclusions we came to. All students should provide the TAs with their wordpress.com's username (and get one if they do not already have one) before second lecture on April 5.

Programming Assignments

Look at the related section.

Mid-term and Exam

There will be one mid-term and a final exam. The midterm is scheduled for Thursday, May 10 (in-class). The mid-term and final details are shown on the schedule page.

Late Policy

We try hard to balance two constraints. On one hand, there are a lot of students in the class and we need to be strict about deadlines. If assignments are not turned in on time, it delays the grading of your work, and your TA has to juggle grading different assignments at the same time. We've found that this makes the class unmanageable, and your TA is left with less time to answer questions and help you with your assignments. On the other hand, emergencies happen from time to time. So here is the policy: If you hand in an assignment 0-24 hours late, you will lose 25% of the grade. 24-48 hours late and you will lose 50% of the grade. 48-72 hours late you will lose 75% of the grade. After 72 hours you will receive a zero.

Despite the tough stuff above, you have one free late of 24 hours for one programming assignment. You can use it whenever you wish, but you must email your TA before the deadline to use your free late. Just like above, the 24 hours is a hard deadline, with no further extensions. We hope this lets you manage your quarter.

Exceptional Circumstances

Please do not ask your TA for extensions as they are not authorized to grant them. If you have a medical emergency, then email me (Nick) to request an extension. At times there may be system problems with the computer cluster which may prevent you from completing your assignment on time. In these cases an extension will be granted to the entire class.

Contacting the Staff

We will be using piazza, and you should post your questions there. Piazza is a good place to advertise for study groups, ask questions of other students, etc. You'll find the course staff respond quickly to questions there - we will try to answer within 24 hours. If and only if your question is private (e.g. you are sick and have to miss class), then please send email to cs244-spr1112-staff@lists.stanford.edu and prefix the subject line with “CS244” for a prompt response. Announcements from the staff will be sent via the cs244-spr1112-students@lists.stanford.edu mailing list to which any registered student will automatically be added. Please don't ever send email to the class mailing list – we'd all be flooded with emails. The names of the teaching assistants and all our office hours are posted on the Staff web page.

SCPD Students

SCPD students are expected to follow the same schedule and deadlines as the in-class students. If possible come to class, and your grade will be calculated the same way as the in-class students. Otherwise, your grade will be calculated without the in-class participation component. SCPD students who don't come to class are not expected to scribe a lecture. However, you are still expected to file critiques by midnight (PST) the night before class, just like the in-class students.