|
Rutgers CS 352 Fall 2007
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Instructor:
Section 08: Richard Martin rmartin@cs.rutgers.edu Office Hours: Tuesdays, 5:30-6:30PM.
Section 08:
Tuan Phan:
tphan@cs.rutgers.edu
Office Hours: Thu 7:00-8:00pm @ Hill 367
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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.
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, the FAS gradebook. and the Rutgers sakai courseware site.
James F. Kurose and Keith W. Ross, Computer Networking, 3rd edition.
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, 2 mid-term examinations, and the final examination.
WARING: 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.
The department academic integrity policy can be found at http://www.cs.rutgers.edu/policies/academicintegrity/. You now need to click explicitly on a link when first login to our computing facilities, use handin, etc., that says you acknowledge being aware of the policy (which you can read through the login screen). If you fail to do the click-through by the end of September, your access to our facilities will cease October 1.
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. 1. A classmate smarter than you. 2. Your TA. 3. The professor.
Two mid-term examinations are scheduled this semester, and both are held during regular lecture hours. A cumulative final examination will be held at the end of the semester.
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.
2 Midterms: 30 % (15 % each) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Event |
Date or Deadline |
Notes |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Section 08 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Mid-term 1 |
Tuesday, October 9th |
No electronic devices or notes allowed. No cheat sheets allowed |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Project 1 |
Monday October 15th |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Project 2 |
Monday, November 5th |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Mid-term 2 |
Tuesday, November 20th |
No electronic devices or notes allowed. No cheat sheets allowed |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Project 3 |
December 14th |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Final |
December 11th |
You must send the instructor email at least 2 weeks before the final if you need to take the makeup! |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Dates |
Theme |
Topics |
Readings from Kurose |
Notes |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 1: |
Fundamentals |
Networks (Core vs. Edge), Switching schemes, Delay Analysis, Pipelining, Layering, Encapsulation |
1.1-1.9 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 2: |
Application Layer Protocols |
Basic Messaging, HTTP, FTP, SMTP, DNS |
2.1-2.5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 3: |
Network Programming |
Sockets, Threads |
2.7-2.9 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 4: |
Peer to Peer (P2P) |
Bitorrent, Distributed Hash Tables |
2.6 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 5: |
Reliable Data Transfer Algorithms |
ABP, Go-Back-N, Selective-Repeat |
3.1-3.4 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 6: |
Transport Protocols |
UDP, TCP (flow control, congestion control) |
3.5-3.7 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 7: |
IP Address |
IP addresses, Routers, ICMP |
4.1-4.4 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 8: |
Routing |
Routing algorithms, routing protocols |
4.5-4.6 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 9: |
Link Layer |
Error detection & correction, MAC sub-layer, Ethernet LANs, token-ring |
5.1-5.6 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 10: |
Security |
Cryptography, Authentication, Digital Signature, Firewall |
8.1-8.8 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 10: |
Wireless Networks |
802.11 MAC |
6.1, 6.3 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 12 + 13: (We are here) |
Queue management + Queuing Theory |
Leaky
Little's Law,Kendall Notation, M/M/1 analysis |
7.5.2 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Week 14: |
Web Services |
Web 2.0 |
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Mid-term 1 |
Mid-term 2 |
Final |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||