CS536 : Data communications and Computer Networks

Course Information

TTh 10:30a-11:45a
LWSN B134

PSO-002:
Mon, Haas 257, 9:30a-11:20a

PSO-003:
Fri, Haas 257, 3:30p-5:20p

Course Contact Email:
For corresponance regarding the course, rather than email the professors or TA individually, please email cs536-contact@cs.purdue.edu. This will help make sure the course is handled consistently and fairly.

Instructors:
Charles Killian
email: ckillian@cs.purdue.edu
phone: 765-494-6014
office: LWSN 1187
office hours: by appointment

Ramana Kompella
email: kompella X cs Y purdue Y edu (X and Y mean the usual @ and dot)
phone: 765-496-9369
office: LWSN 1203
office hours: by appointment

Teaching Assistant:
Fadi Meawad [email : fmeawad at cs]

Textbook:
James F. Kurose and Keith W. Ross. Computer Networking - A Top Down Approach Featuring the Internet. 5th Edition.
(Note: students with an earlier edition will probably be OK, but if you are looking to buy the book for yourself, I recommend getting the latest edition. Additionally, the course materials will come from the 5th edition, and may vary a little from earlier editions.)

Announcements

Course Description

This course is intended to provide a tour through the basic concepts underlying data communications and computer networks with an eye toward research and implementation. The structure and components of computer networks, packet switching, layered architectures, TCP/IP, physical layer, error control, window flow control, local area networks (Ethernet, Token Ring, FDDI), network layer, congestion control, quality of service and so on will be covered in this course.

Pre-requisites

  1. This course is focused on the principles of field of computer networks. A major part of this understanding is to learn network programming. The programming language of choice in this course is C; so, if you are unfamiliar with C, please take the undergraduate C programming course before you register for this course. This is a strong requirement and no exceptions will be made at all.
  2. CS 354 (undergraduate operating systems) or CS 422 (undergraduate networks) or equivalent courses or experience. While this course will cover the basics of computer networking, it's task is to prepare you for research in the field of networks. Thus, we will be covering basic material quickly, to enable more of the field to be covered, as well as making room for discussion of classical papers in the field of networking. If in doubt, please see me before you register. These courses are not required but no exposure to any of these courses would make it really hard for you to follow the course.
  3. Speaking and reading in English. Written and spoken English is essential since most exams will be in English (US or UK should be fine, i.e., you can spell color as color or colour and not be afraid of getting penalized).

Grades

Subject to change.
UPDATED: 27 October, 2009

Schedule

Updated in an ongoing basis. Note that the paper review schedule is below.

Programming assignments

There will be two individual programming assigments.

Programming Assignment 1: Building and evaluating a web server

The details and description of homework 1 are available here: (HTML). The resources mentioned in the project WRiteup are available here [resources.html]. This homework is adapted for the Purdue environment from the same assignment at Duke University's Computer Science department. The grading criterion is available here: (TXT). Programming assignment 1 is due at 11:59pm on Sunday, September 6th. This assignment is to be done individually. There should be no sharing of code or text. If you have questions, please email the course staff alias.

Programming Assignment 2: Simple Transport Control Protocol (STCP)

The details and description of homework 2 are available here: (HTML). The grading criterion is available here: (HTML). Programming assignment 2 is due at 6:00am on Monday, September 28th. This assignment is to be done individually. There should be no sharing of code or text. If you have questions, please email the course staff alias.

Generic Submission Instructions for PROGRAMMING ASSIGNMENTS

Login to one of xinu* machines.
Create a directory having your user name (career account username);
say YYYY.
Copy everything that you want to submit into this directory.
   Please do not submit unnecessary files.
Move to the parent directory of YYYY.
Enter the following command:

  turnin -c cs536=XXX YYYY

  XXX is your section name:
   PSO2 - 9:30 am - 11:20 am Monday
   PSO3 - 3:30 pm - 5:20 pm Friday

It is not necessary to specify the project under which you are making
the submission for turnin assumes that submissions are accepted only
for the current project.

  e.g: If your user name is foo and you are in section PSO2 you would
enter the following command:

  turnin -c cs536=PSO2 foo

Please verify that all your files have been properly submitted using
the command.

  turnin -c cs536=XXX -v.

Written homeworks

There will be around four written homeworks this semester. Homeworks must be written up individually. Collaboration on the homeworks is allowed, provided that the homework explicitly state who collaboration was done with, and that the homework is written up completely independently (i.e. no sharing of text, solutions, etc.). Homeworks are to be submitted electronically, not by paper. Use either a TXT file or a PDF file. If you need to draw a diagram by hand, that is fine, provided that you scan in the paper and submit it as a PDF.

Homeworks 3 and 4 will not count towards the final grade. We welcome you to submit answers, and we will be happy to provide feedback.

They will be posted here as they become available:

Reading discussion

There will be about 1 paper each week. Students will review each paper in an online submission prior to the class in which it is due. This is included as part of the overall homework grade. If you do not have experience reading research papers, this pamphlet may help you figure out how to read research papers efficiently.

Reviews should be submitted via BlackBoard in the appropriate assignment. Reviews are DUE by class time. Reviews should include the following:

Reviews will be graded on a 0-2 point scale. 0 points will be awarded if there is no submission (or a submission not in good faith). 1 point will be awarded if the submission does not follow the guidelines above. 2 points will be awarded if the review is submitted and meets the guidelines above. The total score for assigned reviews will max out at 20 (in essence, 3 reviews of your choosing may be omitted).

Assigned reviews:

Final project

Topics: The networking final project must have a strong networking component. In particular, security and distributed systems are courses of their own, and so those projects should be conducted there. The project topics must be centered on one or more published research papers. To find appropriate papers, you can look at papers published in TON (Transactions on Networking), SIGCOMM, and INFOCOM. In most cases, a well done project has the potential to (with additional work) go on and be published. The end of the project will be a great time to evaluate whether you are interested in continuing the project, and what faculty members might be interested in continued involvement in the project.

In order of desirability (most desirable first), the following are possible types of projects:

If you need help figuring out appropriate project ideas, feel free to contact the professors. A few possible ideas might include:

Deliverables: The final project will be done in groups of 2-3 (no more, no less). We will expect more work from a 3-person project than a 2-person project. The final project deliverables are:

Additional guidelines: The work for this course project is to be conducted between now and the deadline for the project. Work previously conducted is not appropriate for this course, nor is work completed after the semester ends. We welcome projects which you can also use in your research; however, the work done for this course project must not be used toward any other course you are concurrently taking. That includes independent studies. At the same time, however, it may be appropriate to define a larger project for multiple courses, and identify which part of the project is being done for this course.

Resources: In conducting the course projects, you may find that you need resources for running various experiments. Talking to the professors is a great way to find out what resources are available, but in particular, you might expect to be able to use network simulators (NS2, NS3, GTNetS), network emulators (ModelNet), virtual machines, local clusters of machines, PlanetLab, and possibly Amazon's EC2.

Grading: Subject to change, the grading for the final project is available in the rubric.

Course Mailing-lists

We will sometimes use an iTap-maintained announce-only mailing list to send announcements to the class. iTap automatically adds your official Purdue email to the mailing list when you are registered for the class. You should make sure you can receive mail at that address.

Course Policies

Late Policy: All assignments are due on the day and time posted. Paper discussion responses may not be turned in late. Written homeworks may be turned in up to 1 day late, and late submissions will be scored out of 90 points instead of 100. On programming assignments only, students may have 6 free late half-days to spread across the two programming assignments as they see fit. After the late time is used up, 10 points will be deducted from the assignment score per day late. No programming assignment will be accepted more than 6 days after the assigned due date.

Ample time is given in advance for assignments, so excuses that you did not have enough will not be considered. Extraordinary circumstances will be considered at the discretion of the professors, contact him if you think these apply to you. If you have forseeable circumstantial problems, the best advise is to get the assignment done early. If that will not be possible, contact the professor.

Emergencies: In the event of a major campus emergency, course requirements, deadlines and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances. Here are ways to get information about changes in this course. The course web page, the class mailing list, or by contacting the professors directly.

General policies: This course further adheres to the policies posted at http://spaf.cerias.purdue.edu/cpolicy.html. Please familiarize yourself with them.

Special note on academic dishonesty: In particular, note the section on academic honesty. Violations of this policy are treated as very significant, and will be dealt with both through punitive grading and notification to the Dean of Students.