CS536: Data Communications and Computer Networks

Course Information

MWF 12:30p–1:20p
LWSN B134

PSO-P02:
Tue, Haas 257, 9:30a–11:20a

PSO-P01:
Fri, Haas 257, 9:30a–11:20a

Course Contact Email

For corresponance regarding the course, rather than email the professor or TA individually, please email both the professor AND the TA. This will help make sure the course is handled consistently and fairly.

Instructor

Charles Killian
email: ckillian@cs.purdue.edu
phone: 765–807–7996
office: LWSN 1187 office hours: by appointment, drop-ins welcome

Teaching Assistant

Brent Gregory Roth
email: broth 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: 22 August, 2011

Schedule

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

Programming Assignments

There will be two individual programming assigments. The first will be development of a network application such as a web server, and the second will involve development of a network transport protocol. The full details will be released as the assignments are ready.

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. NOTE: “collaborating” with previous similar solutions is not acceptable (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.

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 distinct networking component. In particular, security and distributed systems are courses of their own, and so projects of that flavor, with only a minimal network component, 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, or other related networking conferences. 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:

See the course slides for details and suggestions.

Deliverables: The final project will be done in groups of 2–3 (no more, no less, except by special exception). 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 professor 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), 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

See Also: 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 professor, 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.