Computer Networks and Distributed ProcessingDepartment of Mathematics and Computer Science Hobart and William Smith Colleges Fall, 2002. Instructor: David J. Eck. Monday, Wednesday, Friday, 3:00--3:55. Room Lansing 300 (or in a lab).
About This Course
It is hardly necessary to explain the importance of computer networking. It's everywhere. Computer networks are very complex systems, with many levels of organization. It is certainly not possible to learn everything in one term. (Probably not in one lifetime, especially since things seem to change as fast as anyone can learn them.) The key to dealing with this complexity is to learn the basic ideas and fundamental theory of computer networking. I hope that the course will make that possible, while at the same time covering a lot of practical material.
The main textbook for this course is Computer Networking: A Top-Down Approach Featuring the Internet, first edition, by James F. Kurose and Keith W. Ross. We will cover some material from each chapter in this book, while skipping some sections along the way. This book comes with access to a Web site, but I will probably not assign any specific readings from the Web site. The other major source of material will be the on-line user's guide for the Parallel Virtual Machine (PVM). PVM is a system used to write distributed programs. A distributed program is one that runs in pieces on a number of networked computers. We will cover PVM during the last two weeks of the term. There will be additional readings from handouts and on-line sources.
You can expect the course to be a mixture of various elements including: networking theory, details of TCP/IP networking, network configuration, client/server programming, and programming with PVM.
Labs and Assignments
Some classes -- about one per week -- will be in lab format instead of lecture. The labs will include hands-on work with network programming, network configuration, and using network-related software tools. Most of the assignments for the course will begin as exercises in lab that you will finish and turn in later. On many of these exercises, you will have the option of working with another student. You can also expect a few other assignments, in addition to the lab exercises.
The Final Project
In addition to the regular assignments, you will do a larger-scale final project. You should select a topic, in consultation with me, sometime around the middle of the term. We will discuss the possibilities in class before then. I am open to suggestions, but I expect that your project will fall into one of the following three broad categories:
- Design and program a network application, such as: a chat room, an instant messaging system, a multiuser game, or something more original.
- Write a substantial research paper on a topic related to networking, such as: public key infrastructures (PKI), the telephone network, cellular networks, virtual private networks, or some aspect of network security.
- Write a shorter research paper on some network technology, combined with some practical work on setting up, configuring, or programming for the technology. For example: the SQUID proxy server, secure web servers using SSL, Scyld Beowulf, video conferencing, CORBA, Bluetooth, 802.11 wireless networks, or network management with SNMP.
The Computer Science Department might be willing to fund small equipment or software purchases in support of your project, if you choose your topic and put in a request early enough.
Tests and Grading
There will be two in-class tests, which will be given on Friday, October 18 and Friday, December 6. There is no final exam, but the final project is due during the scheduled final examination period for this class, at 1:30 PM on Thursday, December 19.
Your grade for the course will be computed as follows:First Test: 20% Second Test: 20% Assignments: 40% Final Project: 20%
Office Hours, E-mail, and Web
My office is room 301 in Lansing Hall. My office phone extension is 3398. I am on campus most days, and you are welcome to come in anytime you can find me there. I will announce my official office hours as soon as I schedule them.
My e-mail address is firstname.lastname@example.org. E-mail is good way to communicate with me, since I usually answer messages the day I receive them.
The Web page for this course is at http://math.hws.edu/eck/cs441/. I will post weekly readings and assignments on that page.
Very Tentative Schedule
Dates Readings From Possible Lab Sep. 2, 4, 6 Chapter 1 Ping and Traceroute Sep. 9, 11, 13 Chapters 1 and 2 Application layer protocols Sep. 16, 18, 22 Chapter 2 Socket programming Sep. 23, 25, 27 Chapter 2 Socket Programming Sep. 30; Oct. 2, 4 Chapter 3 Protocol configuration in Linux Oct. 7, 9, 11 Chapter 3 Threaded server programming Oct. 16, 18 Chapter 4
Test on Friday
(Fall Break, Oct. 14)
Oct. 21, 23, 25 Chapter 4 Basic network configuration 28, 30; Nov. 1 Chapters 4 and 5 Routing in Linux Nov. 4, 6, 8 Chapter 5 Network utility programs Nov. 11, 13, 15 Chapter 7 Firewalls and NAT Nov. 18, 20, 22 Chapters 6 and 8 Security-related software Nov. 25 PVM User Guide None
(Thanksgiving, Nov. 27 and 29)
Dec. 2, 4, 6 PVM User Guide
Test on Friday
PVM Programming Dec. 9, 11, 13 PVM User Guide PVM Programming Dec. 19 Scheduled Final Exam Period; Projects Due
Thursday, December 19, 1:30 PM