CS244: Advanced Topics in Networking, Spring 2014

Professor: Sachin Katti

Lectures: Mon, Wed 2:15PM - 3:30PM at Hewlett Teaching Center 103

Discussion Sections: Friday 2:00PM - 2:50PM in 160-314 160-314 Location

Sachin Office Hours: Wednesday 5:30PM - 6:30PM in Gates 342

Kanthi Office Hours: Mondays 4:30 PM - 5:30 PM in Gates B24A

Milad Office Hours: Thursdays 2:00 PM - 3:00 PM in Gates B24A

Course Description

CS244 is a graduate course in computer networks. Spring 2013-14 marks the sixth offering of this 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

  • Mar 22: Class set up on Piazza - join here.

About the Course

Requirements

You must have taken CS 144, EE 284 or equivalent. If you have any doubt, ask for permission from Sachin. 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. 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.

  1. 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 (15%)

    • in-class participation (15%)

  • 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 critique submission link. Critiques will be accepted until 12am (midnight) the night before class. The purpose of the critique is to ensure you've read the papers before class and therefore all late submissions will be automatically rejected, so please respect the deadline.

It is not possible to make up for a missed critique so please do not email the staff for late day requests.

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.

Programming Assignments

Look at the related section.

Mid-term and Exam

There will be one mid-term and a final exam. The schedule is to be announced. Sample mid-term and final are posted 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 TAs have to juggle grading different assignments at the same time. We've found that this makes the class unmanageable, and your TAs are 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 both the TAs 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 TAs for extensions as they are not authorized to grant them. If you have a medical emergency, then email the instructor 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.