purdue logo
CS536 : Data Communications and Computer Networks



COURSE DETAILS

Instructor: Ramana Kompella  LWSN 1203 [Office hours: By Appointment Only]
Teaching Assistants
: Yu-Hong Yeung [Office hours: TBD]

Staff Email List: cs536-staff@cs.purdue.edu. Please send all email to this email address so it will be seen by both me and the TA.

Venue and timings: Lectures - TuTh, LWSN 1106, 3:00-4:15pm, Practice Study Observations (PSOs) - 1:30-3:20pm Monday, 9:30-11:20am Friday HAAS 257.

Required Textbook: James F. Kurose and Keith W. Ross. Computer Networking - A Top Down Approach Featuring the Internet. 5th edition.
Recommended: Peterson and Davie. Computer Networks - A Systems Approach. 5th Edition. Morgan Kaufmann.

Grading: Tentative and subject to change.
  • Programming assignments - 40%
  • Paper reviews - 10%
  • Midterm - 25%
  • Final exam - 25%
CHANGES TO GRADING SCHEME AS DISCUSSED ON 11/6
  • No programming assignment 4; PAs 1, 2 and 3 will share the points for PA4.
  • In the final grade calculation, I am going to take MAX{0.25 * Midterm + 0.25 * Final, 0.125 * Midterm + 0.375 * Final} to give you incentive to study hard for the final to potentially improve your grade.

Class Discussion: We will use Piazza for group discussion regarding homeworks and programming assignments. Please visit https://piazza.com/class#fall2012/cs536 for guidelines.


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. While the course is going to primarily to equip you with basic concepts and principles underlying the field of computer networks, the goal is also to learn network programming. The programming language of choice in this course is C (no JAVA!); 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. The pre-requisites are CS 354 (Under graduate operating systems) or  CS 422 (undergraduate networks) or equivalent courses. These courses are not required but no exposure to any of these courses would make it really hard for you to follow the course. (Please see me if you are confused.)

ACADEMIC INTEGRITY

All assignments, programming projects and exams are to be done individually with no collaboration or assistance from any one including the Internet, unless *explicitly* permitted by the instructor. In case of any doubt or confusion, please contact the instructor for clarification on what is permitted and what is not. In any case, if the TA or the instructor finds any case of cheating or dishonesty, the student will be dealt with quite severely. This may include loss of a Grade, a letter to the Dean's office and other such penalties. Further, the department policy is to not provide any kind of funding opportunity (e.g., TAship) to students caught with dishonesty.

For a more elaborate treatment of academic dishonesty policies, please read the following page by Prof. Spafford. http://spaf.cerias.purdue.edu/cpolicy.html.

COURSE SCHEDULE AND SLIDES

The schedule is tentative and is subject to change depending on how much time it actually takes to cover individual concepts. 

NOTE:
The slides below are accessible only from Purdue domain since some of the powerpoint slides contain copyrighted material. If you want to access the slides off campus, please vpn into purdue first. You can find VPN intructions at http://webvpn.purdue.edu.

NOTE: BOILERCAST RECORDINGS ARE AVAILABLE ON iTUNES. PLEASE FOLLOW THIS WEBPAGE.
  • Administrative Details [slides]
  • Chapter 1/Intro [slides]
  • Chapter 2/Application Layer [slides]
    • Domain Name System [slides] Paper describing Akamai CDNs here.
    • Chord Slides [pdf]
  • Chapter 3/Transport Layer [slides]
    • Additional Material on Random Early Discard (RED) [slides]
    • Additional Material on BIC/CUBIC, DCTCP [slides]
  • (10/8-10/09) -- FALL BREAK
  • (10/16) --- MIDTERM (Includes Application layer and Transport Layer)
  • Chapter 4/Network Layer [slides]
    • Note that the slides on switching and buffer sizing (included in the slides above) do not have corresponding explanations in the textbook. For reference you should look at "Sizing Router Buffers" paper for buffer sizing and "iSlip" paper for the design of input queued switch fabrics, which are part of your reading assignments.
  • Chapter 5/Link Layer [slides]
  • (11/21-11/23) -- THANKSGIVING BREAK
  • Physical Layer [slides]
    • Notes corresponding to the slides for further understanding [notes]
    • Read only until page 15.
  • Wireless [slides]
  • Multimedia [slides]
  • FINAL EXAM: Venue: LWSN 1106, Date: 12/11 Tuesday, Time: 1-3pm.
    • The exam will only cover midterm and later stuff.
  • QUALIFIER EXAM: Venue: LWSN 1106, Date 12/11 Tuesday, Time 3-4pm.
    • Note that for the qual, the entire course is in syllabus.
HOMEWORKS

There will be around four homeworks this semester.  I will post the homeworks on this web page. The homeworks however are not graded. I am going to release the homework solutions in roughly a week to give you time to work through the solutions. It will be helpful for reinforcing the material and will aid you in your preparation for midterm and final.
PROGRAMMING ASSIGNMENTS

NOTE: There should be no sharing of code or text. No downloading of assignments or code from the Internet unless explicitly allowed by the instructor. If you have questions, please email the course staff if you have any questions.

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.

PAPER READING LIST

There will be 2 papers assigned each week. Students will review two papers in an online submission prior to the end of each assigned week (Friday by midnight).

If you do not have experience reading research papers, the following paper may help you figure out how to read research papers efficiently.
Architecture and Principles: (8/31)
Overlay Routing and P2P Networks ( 9/7)
Transport Layer (9/14)
Router-Assisted Congestion Control (9/21)
IP Lookups and Router Architecture (10/26)
Buffer Sizing and Routing (11/2)
BGP and Measurement (11/9)
Data Link Layer and Wireless Networks (11/16)
Data Centers and Software Defined Networking (11/30)

REVIEW GUIDELINES

Reviews should be submitted via BlackBoard in the appropriate assignment. Reviews should include the following:
  • Main contribution of the paper should be summarized in about 5-10 lines.
  • Describe the soundness of the methodology. For example: do the experiments support the conclusions? Are the assumptions practical? Are there other experiments which would have been better? Were there other methodological errors?
  • What are the three strongest/most interesting ideas in the paper?
  • What are the three biggest weaknesses of the paper?
  • What question would you ask the author if seen presented at a conference?
  • 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 30 (in essence, 3 reviews of your choosing may be omitted since there are 18 papers).
LATE SUBMISSION POLICY

Paper Reviews: Paper reviews may not be turned in late. You may choose to not submit up to 3 reviews across all the papers. Others, you need to submit on time, otherwise, you will lose points for that paper.

Programming assignments: You have 5 free late days to spread across the programming assignments as you see fit. After that you get a ZERO on the programming assignment. Extraordinary circumstances, such as death in family or severe illness (with doctors note) will not be counted as late days.


ANNOUNCEMENTS


8/21/2012 -- Course web page updated

8/21/2012 -- Please familiarize yourselves with Purdue's Academic dishonesty guidelines posted here. It is quite important for you to review these guidelines. You cannot plead ignorance of these policies once caught with dishonesty.


8/23/2012 -- We will use Piazza for discussions regarding homework assignments.