Internet and Intranet Applications and Protocols

Description

Course Information

Home page: http://www.cs.nyu.edu/artg/internet/Spring2003/
Spring 2003
Wed 5:00 PM – 6:50 PM
WWH 109
Syllabus:http://www.cs.nyu.edu/artg/internet/Spring2003/syllabus.html

Instructor Information

Instructor: Arthur Goldberg
Office: WWH 409
Email: artg@cs.nyu.edu
Office hours:  Wed 1-3
Course #: G22.3033-002

TA Information

Jeremy Weinberger
email: jeremy at cs
719 Broadway, 12th floor, 212-998-3327

Vikram Sharma
420 Warren Weaver Hall, (212)998-3490
email: sharma at cs

Course Description

Internet and Intranet Protocols and Applications studies the world’s most widely used application level network protocols and software systems.
We study protocols, such as HTTP for the Web, and SMTP, POP3, and IMAP for email. We consider protocol design issues, especially as they influence functionality, reliability and performance. We carefully read protocol specifications, such as the HTTP specification, RFC 2616.

We study the systems which use these protocols, clients and servers. We also study intermediate systems which enhance performance, such as caching proxies and content delivery services. We will examine complex functionality and performance issues, such as time-out management and high-performance concurrent servers.

Programming assignments ask students to write clients and servers to the sockets interface. Students write several small programming assignments and one large project. Guest lecturers may present current research and practice on a subset of the following issues: reliable internet multicast, the design and implementation of the Apache Web server, performance issues in WWW servers, and Internet security.

The last quarter of the course may examine research that enhances internet and Web performance.

Topics

We hope to have one or two guest lecturers during the semester.

Prerequisites

If you have difficulty programming, do not take this class.

Required Text

James Kurose and Keith Ross, Computer Networking: A Top-Down Approach Featuring the Internet, Addison Wesley, 2nd edition, 2002, ISBN: 0201976994.  Note that we're using the 2nd edition.

Recommended Texts

Other software texts that you may find useful in your work or future studies:

Douglas Comer, Computer Networks And Internets with Internet Applications, 3rd Edition, Prentice Hall, ISBN 0130914495.  An excellent simple introduction to internetworking, that you can use as a backup if Kurose confuses you.

Comer, D.E. and Stevens, D.L., Internetworking with TCP/IP: Volume III: Client-Server Programming and Applications, BSD socket version, Second Edition, Prentice Hall, ISBN 0-13-260969-X.  A detailed reference on socket programming in C.

Ken Arnold, James Gosling, David Holmes, The Java Programming Language, Addison-Wesley Pub Co.  The best--most concise and technically deep and insightful--introduction to Java, from the inventors.

Bob Quinn, Dave Shute, Windows Sockets Network Programming, Addison-Wesley Advanced Windows Series, ISBN: 0201633728.

Merlin Hughes, Michael Shoffner, Derek Hamner, Java Network Programming: A Complete Guide to Networking, Streams, and Distributed Computing, Manning Publications Company; ; 2nd edition (July 1999).  Very extensive.

Steve C McConnell, Code Complete: A Practical Handbook of Software Construction, 857 pages (May 1993), Microsoft Press; ISBN: 1556154844.  Even though MSFT published it, still the most practical guide to writing good code I know.

Assignments and Student Evaluation

The programming assignments are below.  The fractional importance of the final grade is indicated.
 
Assignment Points Passed out (week) Due Date
Email sender (answer) 15 3 Week 6
Fault-tolerant UDP Program 30 8 Week 10
IMAP Server 30 11 May 11

Rules for Working on Assignments

All assignments must be emailed to the professor.  To avoid problems with "lost emails" ("the Internet ate my homework") you should save a copy of your EMAIL (not simply the assignment itself).

Late Assignments

Assignments are assessed a 1.5% penalty per day late.  Since I want to hand out and discuss answers 2 weeks after the due date, NO credit will be given for ANY assignment submitted later than two weeks from the due date.

Cheating Policy

The software you submit in assignments should be your own work.  The only exception is that you may (should) use code that we provide that you for use in your work.
The distinction between improper copying, which is cheating, and your own work is quite clear.
Improper copying occurs when you incorporate in your own code multiple lines of code that someone else wrote.  The copying is improper even if you modify the code.
Modifying the code to conceal that it is a copy (i.e., changing variable names, indentation, linebreaks, etc.) makes the cheating worse.
We expect and hope that you will read other code and documentation to help you write your software.  It is OK to copy a brief comment that describes use of a function.  It is OK, and encouraged, to use libraries that implement useful functionality.  However, check which libraries are permitted by a particular assignment.

The penalty for first cheating offense will be a grade of ZERO on the assignment. The penalty for a second cheating offense will be a grade of F for the course.

Class Email List

All students must register with the class email list, which is used for all technical and logistical discussions concerning the course. To register, go to the following web page, and follow the instructions:

        http://cs.nyu.edu/mailman/listinfo/g22_3033_002_sp03

Please send your questions to this list so that everyone may participate in the discussion.   To post a message to all the list members, send email to g22_3033_002_sp03@cs.nyu.edu.