CS536 : Data communications and Computer Networks

Course Information

TTh 1:30p-2:45p
Haas G066

PSO-002:
Wed, Haas 257, 11:30a-1:20p

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

Instructor:
Charles Killian
email: ckillian@cs.purdue.edu
phone: 765-494-6014
office: LWSN 1187
office hours: Thur 3-4pm

Teaching Assistants:
Zhen Zhu [email : zzhu at purdue] : PSO-003 (Mon)
Camille Gaspard [email : cgaspard at cs] : PSO-002 (Wed)

Textbook:
James F. Kurose and Keith W. Ross. Computer Networking - A Top Down Approach Featuring the Internet. 4th Edition.

Announcements

Course Description

This course is intended to provide a tour through the basic concepts underlying data communications and computer networks. 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.

Grades

Tentative and subject to change.

Schedule

Updated in an ongoing basis

Programming assignments

There will be two programming assigments. The first is available below, the second is still being revised. It is expected that the second will be the implementation of a reliable transport protocol.

Programming Assignment 1: Building and evaluating a web server

The details and description of homework 1 are available here: (PDF). 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 on Saturday, February 28th, 2009, at 11:59pm Eastern. This assignment is to be done individually. There should be no sharing of code or text. If you have questions, please email the TAs.

Update on due date: Please be noted that the deadline for the programming assignment 1 (web server) has been extended 12 hours till Sunday Mar 1st 2009 at 12:00 NOON. Students can request up to 3 extra 12 hours with the penalty of 10 points off for each 12 hours. The total extensions any student can get is 3 x 12 hours. In other words, the latest to submit your assignment is Monday Mar 2nd at 11:59 PM midnight with a penalty of 30 points (your grade will be out of 70 then). Please be noted that bonus points will not compensate for points taken off for any extension after the first 12 hours given to everybody.

Programming Assignment 2: Simple Transport Control Protocol (STCP)

The details and description of homework 2 are available here: (HTML). Programming assignment 2 is due on Saturday, March 28th, 2009, at 11:59pm Eastern. This assignment is to be done in teams of one or two. There should be no sharing of code or text across teams. If you have questions, please email the TAs.

Update: A new network_io_socket.c has been posted, linked from the homework. This overcomes a bug in the distributed code.

Written homeworks

There will be several written homeworks this semester. They will be posted here as they become available:

Final project

We do not have time this semester to cover advanced topics in Computer Networking in class. Therefore, one component of the grading for this course will be the completion of a final project, which is to be a survey of an open area of networking research, such as topics in wireless networking, network security, high-speed networking, or data-center networking.

For this final project, you will be submitting a 5-7 page survey of an area of networking research. This is open-ended, and you are welcome to pick from any topic which interests you and is relevant to the networking community. You should consult with the professor (via email) about your chosen topic by April 9th. The project is due by end of the day on April 30th (the last day of class).

For guidance on suitable topics, following are good ways to find topics:

Examples, based on these directions would include researching active router queue management strategies, recent TCP variants, security standards for wireless communications, security mechanisms for BGP, networking issues for Data Centers, .... The list goes on and on.

Expectations: First let me describe what this project is not. Thhe project is not intended to be new research. It is also not groupwork, nor is it supposed to be paraphrasing other people's papers and books. You should pick a topic which is narrow enough to focus on detailed aspects without having too much to research to do a good job. There will be no final presentation. I do expect you to read several sources in detail to understand the topic you are presenting. I expect a summary and critical evaluation of current work, and an assesment of how well the work solves the research area, and any problems identified in the work. You should submit the paper as a PDF. You should also include citations for the papers included in the survey, and any other papers you refer to. I further expect that you have read and are familiar with most of the papers that you choose to cite.

In grading the final projects, I am looking for evidence of individuality, of thoughtfulness, and application of relevant networking concepts to the subject.

Course Mailing-lists

There are two lists being used for this course. The first is an announcement-only list, which will only accept mail from the professor or TAs. This list has the mailing address spring2009-cs-53600-001 -at- lists.purdue.edu. DO NOT EMAIL THIS LIST. That list is maintained by ITAP, and synchronized periodically with the course roster. The second list is a discussion list. The discussion list is opt-in. To opt-in to the discussion list, from a departmental machine run the command:

$ mailer add [username] to cs536-sp
Anyone can post to this list, and emails will be forwarded to all subscribers. To email this list, send mail to cs536-sp -at- cs.purdue.edu.

Pre-requisites

  1. While the course is going to primarily to equip you with basic concepts and principles underlying the field of computer netowrks, the goal is also 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 (Under graduate operating systems) or  CS 422 (undergraduate networks) or equivalent courses. 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 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).

Course Policies

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, my email address: ckillian@cs.purdue.edu, and my office phone: 494-6014.

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

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.