Rutgers CS 352 Summer 2006 

(Section F6)


Announcements

Overview

Important Dates

Lecture Notes

Homework

Projects

Old Exams

Instructors: 

 
Xiaoyan Li      xili@cs.rutgers.edu      Office Hours:  Monday 4:00 - 5:00 PM @ Core 340   (Please include "CS352" in your email subject line if you need to contact me.)

                       
TA:

 

Tuan Phan:       tphan@cs.rutgers.edu    Office Hours: Thusday 6:00 - 7:00 PM @ Hill 367

Announcements                                     


  1. (8/21/2006) STATISTICS:
    --------Project 1--Project 2--Midterm--Final
    MAX-----100--------95---------108------112
    MIN-----30---------0----------28-------19
    AVE-----73.9-------68.6-------54.6----67.9
    MEDIAN--80---------80---------47.5-----68.75

  2. (8/8/2006) "Extension for project 2": Project 2 will be due on SUNDAY , AUGUST 13, 2006 11:59PM

  3. (8/7/2006) No lecture or recitation on Wednesday (August 9, 2006).  Tuan will have office hours 6:00 - 8:00 PM on Thursday (August 10, 2006).  Next Monday's lecture will include a brief review and a question session.

  4. (8/7/2006) Final will be held on Wednesday, August 16, 2006. A 1 page, double-sided cheat sheet will be allowed. You must turn in your sheet along with the exam. No electronic devices allowed. 

    The following is a list of topics that we may test on:  Layering, Encapsulation, delay modeling, switching,  HTTP, SMTP, DNS, ABP, go-back-N, selective-repeat, UDP checksum,  TCP (timeout,  flow control, congestion control),  IP subnet, CIDR  forwarding, routing, Error detection & correction (hamming code, CRC etc), MAC layer protocols (static, dynamic assignment, CSMA, token-ring),  security (encryption, public/private key), NAT, queue management (leaky bucket, token bucket, fair queuing), queuing theory, P2P networks

  5. (8/3/2006) The NEW version of KeyServer has been updated. If you downloaded the old version before Aug 3rd, please get the new one here: http://remus.rutgers.edu/cs352/Summer06/project2/keyserver.tar .

  6. (7/31/2006) Homework 2 & homework 3 have been posted ! And the solution for midterm is here !

  7. (7/31/2006) We will have neither lecture nor recitation on Wednesday (Aug 2). Instead, we will have the code review for project 1 at Cereal Lab- Hill 248. Here is the time schedule for the code review:
    Student Name Group ID Time
    FAZAL, ASIM 1 6:00-6:15
    BATAC, JULIMAR 2 6:00-6:15
    GOCHKO, KURT W 3 6:20-6:35
    KOZLIK, BLAZEJ M 4 6:20-6:35
    HARDEN, KEVIN J 5 6:40-6:55
    HORNBY, MICHAEL C 6 6:40-6:55
    NGOJE, RAYMOND 7 7:00-7:15
    EVANS, RYAN C 8 7:00-7:15
    RUDIN, SIMON 9 7:20-7:35
    VADLAMANI, LAXMAN V 9 7:20-7:35
    YU, LAWRENCE E 10 7:40-7:55
    ZHANG, SIMON W 10 7:40-7:55
    SHAH, TEJAL A 11 8:00-8:15
    VONSCHILLING, SCOTT W 12 8:00-8:15
    DUPERSOY, MARCO O 13 8:20-8:35
    OLEGARIO, TIMOTHY T 13 8:20-8:35
    TURNER, WILLIAM B 14 8:40-8:55
    PINYAN, JEFF 15 8:40-8:55

    Notes:
    - Please show up at least 15' before your time slot.
    - Prepare your source code in your home directory at cereal machines. DO NOT use your partner's directory.
    - Use the source code version that you submitted in the hand-in system.

  8. (7/27/2006) The new version of KeyServer has been updated. If you downloaded the old version, please get the new one here: http://remus.rutgers.edu/cs352/Summer06/project2/keyserver.tar .
    Midterm grades have been posted on GradeBook: http://gradebook.rutgers.edu/. Here are some statistics: Total points: 115;      Max= 108;      Mix=12;     AVE=49.1;      MEDIAN=40.5

  9. (7/24/2006) Project 2 has been posted here.

  10. (7/11/2006) The description about programming style has been added in Project 1. Sample question 1 has been posted.

  11. (7/10/2006) MIDTERM will be held 7:00 - 9:00 pm on July 19, 2006. No lecture or recitation will be held on that day, but your TA will be available to answer project related questions after the midterm. 
                        According to the Lecture notes, midterm will cover from "Fundamentals" to "Routing", excluding "Network Programming".
                        Here is a summary of topics that we may test upon:  Layering, Encapsulation, delay modeling, switching,  HTTP, SMTP, DNS, ABP, go-back-N, selective-repeat, UDP checksum, 
                                                                                                                    TCP (timeout,  flow control, congestion control),  IP subnet, CIDR  forwarding, routing  

  12. (7/3/2006) Cereal accounts creation for CS352 summer section has been fixed. You can create your accounts here.

  13. (6/30/2006) Project 1 has been posted !!! Click HERE !!!

  14. (6/28/2006) We will have class and recitation sessions as normal on next Monday (July 3, 2006).

 

Overview


  • Course Objectives

This course will provide students with a thorough understanding of the basic principles of computer networks, the design philosophy of the Internet, and the details of Internet protocols, and the engineering and scientific principles needed to understand computer networks. Students who complete this course will be able to describe in detail the operations of Internet protocols and develop their own Internet applications. Students will also develop an understanding of the design and construction of network programs via a semester long class project. At the end of the course, you should be capable of network programming.

  • Prerequisites

The prerequisite for CS 352 is Computer Architecture (CS 211), because of number representation, as well as Introduction to Discrete Structures II (CS 206), because students are expected to know basic probability. Students are expect to know how to program in Java and use simple data structures such as hash tables and arrays. Students are also expected to understand the department's facilities and how to use the cereal cluster, handin, and the FAS gradebook.

  • Textbook

James F. Kurose and Keith W. Ross, Computer Networking, 3rd edition.

  • Discussion Tools

Discussion: newsgroup-like discussion board and chat room are available through WebCT . Use the discussion board on WebCT for questions and discussions.

Include [CS352] on the subject line of all emails sent to the list or to instructor/TA. If you don't follow this protocol, your email will likely be discarded.

  • Expected Work

Students are expected to attend all lectures and perform all reading assignments prior to lecture. Students are also expected to attend all recitation section meetings. Students will be evaluated according to their performance on a semester long programming project, 1 mid-term examinations, and the final examination.

  • Project

WARNING: This is a project course, which means that this course should give you more than a passing knowledge of what writing working network programs entails. The project will be a major undertaking. If you complete the projects, you will have learned a lot. However, assess your commitment to this course realistically. If you don't have the time or the inclination to work hard on the project, you would be better off not taking the course. Fortunately, the project will be programmed in Java, so you will not have to learn a new programming language. You will have to learn how to build and debug a reasonably size Java program and make it robust to outside errors. You will also have to describe how your program work in both a written document as well as an oral exam.

This one large project will be assigned, as two sub-projects. Up to two students can work as a group for each sub-project and you can change group members for each project . Students are required to complete the parts by the scheduled deadlines. Failure to turn in the project by the deadline using the "handin" program will result in a zero for all team members. No exceptions!

  • Working Together and Academic Honesty

    Cheating on projects and exams will not be tolerated. We want to protect the fairness and integrity of the class, so we run code similarity detectors on the projects and scrutinize exams for copying. Both parties in the exchange are liable; e.g. if you give away solutions to friends, you're putting yourself at risk too. If you get caught, it's a nasty process--- just don't go there! You're better off dropping the course and trying it again.

The department academic integrity policy can be found at http://www.cs.rutgers.edu/policies/academicintegrity/

  • The Gilligan's Island Rule

That said, we do encourage you to talk to your classmates, provided you follow the Gilligan's Island Rule. After a joint discussion of an assignment or problem, each student should discard all written material and then go do something mind-numbing for half an hour. For example, go watch an episode of Gilligan's Island (or Reality TV in modern terms) , and then recreate the solutions. The idea of this policy is to ensure that you fully understand the solutions or ideas that the group came up with.

If you follow the Gilligan's island rule, often best route to follow to get a question answered is to ask, in order:

1.        A classmate smarter than you.

2.        Your TA.

3.        The professor.

  • Mid-terms and Exams

We will schedule one mid-term during regular lecture hours. A cumulative final examination will be held at the end of the semester.

  • Homeworks

Written homeworks are for your practice only, we won’t grade them. It will be up to you to do them and ask the TAs and instructors about problems that you don't understand. We highly suggest doing the homeworks before getting/looking at the solutions. This will be critical for the exams. We will also post previous year’s mid-terms and finals so you can get an idea about the kinds of questions that we might ask.

  • Grading

Midterms: 20 %

Final: 35 %

Project: 35% (part 1: 15%, part 2: 20%)

Class Participation:  10%

The programming part of the projects are typically graded on how close they are to the functional requirements. The written portion is graded on how well the TAs can figure out how your project is constructed only from the written description. Exams are typically graded on a curve. As a rule of thumb, the mean is a "C'" and each standard deviation is one letter grade. This rule can be altered, however, if the class does exceptionally well or poorly. 

Important Dates


Event

Date or Deadline

Notes

Mid-term

July 19, 2006

No electronic devices or notes allowed. No cheat sheets allowed

Project 1

July 23, 2006 11:59 PM

 

Project 2

August 12, 2006 11:59 PM

 

Final

August 16, 2006

A 1 page, double-sided cheat sheet will be allowed You must turn in your sheet along with the exam. No electronic devices allowed.

You must send the instructor email a week before the final if you need to take the makeup!

 

Lecture Notes


Week

Theme

Topics

Readings from Kurose

Notes

1

Fundamentals

Networks (Core vs. Edge), Switching schemes, Delay Analysis, Pipelining, Layering, Encapsulation

1.1-1.9

PPT    PDF

1

Application Layer Protocols

Basic Messaging, HTTP, FTP, SMTP, DNS

2.1-2.5

PPT    PDF

1

Network Programming

Sockets, Threads

2.7-2.9

PPT    PDF

2

Reliable Data Transfer Algorithms

ABP, Go-Back-N, Selective-Repeat

3.1-3.4

PPT    PDF

2

Transport Protocols

UDP, TCP (flow control, congestion control)

3.5-3.7

PPT    PDF

2

IP Address

IP addresses, Routers, ICMP

4.1-4.4

PPT    PDF

2-3

Routing

Routing algorithms, routing protocols

4.5-4.6

PPT    PDF

3

Sample Questions

TCP

PPT   PDF

3-5

Link Layer

Error detection & correction, MAC sub-layer, Ethernet LANs, token-ring

5.1-5.6

PPT    PDF
PPT    PDF

5

Security

Cryptography, Authentication, Digital Signature, Firewall

8.1-8.8

PPT    PDF

5

NAT

NAT

PDF

5

Wireless Networks

802.11 MAC 

6.1, 6.3

PPT    PDF

5-6

Queue management

Leaky Bucket, Token Bucket, Fair Queuing

7.7

PPT    PDF

6-7

Queuing Theory

Definition, Kendall Notation, M/M/1 analysis

 

PPT    PDF

7

P2P networks

 

 

PPT    PDF 

8

review

 

 

PPT

 

 

 

 

 

 

Homework


Sample Questions 1

Sample Questions 2

 

Projects


Project 1

Project 2

 

Old Exams


Mid-term 1

Mid-term 2

Final

Fall 2003

Fall 2002,   Spring 2004

Fall 2000,   Fall 2001,   Spring 2004