Instructor: | Robert P. Ingalls, Executive Officer, Computer Science Dept |
209 Lally, 518-276-2819 (ext 2819) | |
e-mail ingalr@rpi.edu or ingallsr@cs.rpi.edu | |
Office Hours: W,F 2:00-4:00 | |
Text: | Unix Network Programming: The Sockets |
Networking API, Vol 1, 3rd Ed, by | |
W. Richard Stevens, Bill Fenner, & Andrew M Rudoff | |
Addison-Wesley, 2004 | |
Teaching Assistants: | Bouchra Bouqata bouqab@cs.rpi.edu |
Office Hours: T, Th 10:00- 12:00, Science Center 1W01 | |
Dan Tracy tracyd@cs.rpi.edu | |
Office Hours: T,W 12:00 - 1:50, Science Center 1W01 | |
Web Site: | http://www.cs.rpi.edu/courses/netprog/ |
There will also be a WebCT site. This will have a | |
discussion board, and your grades will be posted here. | |
Students are expected to read the WebCT discussion board | |
and the course web site regularly. |
Course Content: After reviewing some basic networking principles, the first half of the course will cover the socket interface, primarily on Unix, but also on Microsoft operating systems. The second half of the course will cover a variety of network programming methodologies and protocols, primarily for the World Wide Web.
Prerequisites: Students should be strong programmers in C or C++. There will be programming assignments in other languages as well, Java in particular. Students are not expected to know Java, but are expected to be able to learn it quickly. In addition, students should have had CSCI.4210 Operating Systems and all of its prerequisites..
Grading: There will be three exams, each of which will count 18% of the course grade (54% total). There will be no make-up exams. However, there will be an optional comprehensive final exam which can be used to replace a missing test or project or your lowest test or project. There will be about five programming assignments, which will together count 46% of the course grade.
Computing Resources: Programming assignments will be done using both Win32 APIs on a Windows Platform, and Unix system calls using the gnu gcc and/or g++ compilers. You need to find your own Windows computer, but you will be given accounts on the CS Unix network for your Unix computing.
Academic Integrity: All programs submitted must be your own work, and you are expected to develop your programs independently. You may receive as much help as you wish on the use of the operating system, text editors, debuggers, file transfer protocols and so on. You may consult with other members of the class about interpreting the assignment, and you may get help in finding bugs, but not fixing bugs, but you are not allowed to look at or copy another person's code or discuss design decisions with others, and you cannot show your code to others. Students found to be in violation of these guidelines will receive a grade of F for the course. Students found to be cheating on tests will also receive a grade of F for the course.
General Project Guidelines All projects should follow guidelines for good programming practices. Here is my list.
Schedule
Note: This schedule is very tentative and is subject to
changes throughout the semester. If there are topics pertaining to
network programming which you would like to cover which are not on this
schedule, please let me know.
Date | Topic | Reading |
Th Jan 20 | Networking, Protocol Stacks | SFR Chap 1 |
Mon Jan 24 | Intro. to Sockets | SFR Chap 3,4,5,8 |
Th Jan 27 | The Transport Layer, TCP and UDP | SFR Chap 2 |
Mon Jan 31 | The Network Layer, IP | |
Th Feb 3 | The Link Layer, LANs | |
Mon Feb 7 | Application Protocols, HTTP, ftp | |
Th 10 | Advanced Sockets, select, socket options | SFR Chap 6,7 |
Mon Feb 14 | Name servers, DNS | SFR Chap 11 |
Th Feb 17 | Exam 1 | |
Tues Feb 22 | IPv6 | SFR 12 |
Th Feb 24 | Other socket types, Unix, Raw | SFR Chap 15, 28 |
Mon Feb 28 | Server design, daemons, inetd | SFR Chap 13, 30 |
Th Mar 3 | Miscellaneous Socket Stuff | SFR Chap 14, 16, 17, 24 |
Mon Mar 7 | CGI | |
Th Mar 10 | XML | |
Mon Mar 21 | Sockets in Java | |
Th Mar 24 | Cookies, Javascript | |
Mon Mar 28 | Exam 2 | |
Th Mar 30 | Servlets, JSP | |
Mon Apr 4 | JDBC | |
Th Apr 7 | Java RMI | |
Mon Apr 11 | Remote Procedure Calls | |
Th Apr 14 | Routing Protocols | |
Mon Apr 18 | Network Security I | |
Th Apr 21 | Network Security II, firewalls, ssl, ssh | |
Mon Apr 25 | Misc.: grid computing, web spiders | |
Th Apr 28 | Misc.: bluetooth, VoIP | |
Mon May 2 | Exam 3 |