The course described on this page ended December 15, 2004


CS 441: Computer Networks and Distributed Processing


   Department of Mathematics and Computer Science
   Hobart and William Smith Colleges

   Fall, 2004.

   Instructor:  David J. Eck  (eck@hws.edu)

   Monday, Wednesday, Friday, 9:05 to 10:00.
   Room Lansing 300 (except Eaton 116 on most Fridays).

   Course Handout:  http://math.hws.edu/eck/courses/cpsc441_f04.html
   Course Web Page from Fall 220:  http://math.hws.edu/eck/cs441/index_f02.html

   Office Hours for Fall 2004:  
            Monday and Wednesday,    1:00-- 1:50
            Tuesday through Friday, 10:30--11:30

Lab Worksheets
September 3
Introduction to Networking
September 10
Ethereal and HTTP
September 17
Programming with Sockets
September 24
Writing a Web Server
October 8
NFS and NIS
October 15
Ethereal and TCP
October 22
Masquerading
October 29
Routing
November 12
The Link Layer
November 19
Running MPI
November 22
Programming MPI
 

Assignments and other information for CS 441
will be posted on this page as the course is taught
during the Fall term of 2004.


End of Term: December 15

The final exam for this course is scheduled for Wednesday, December 15, at 10:00 AM in our regular classroom. An information sheet for the final is available. Final project papers are also due on Wednesday, no later than 4:00 PM.


Fifteenth Week: December 6, 8, and 10

This is the last week of classes. On Monday, we will cover a few last topics from the textbook. On Wednesday and Thursday, there will be student presentations. The schedule for presentations is:


Fourteenth Week: November 29; December 1 and 3

We will continue to work on MPI for at least the first two classes of the week. You should be sure to finish reading the MIP handout.

Remember that the MPI homework (Labs 10 and 11) is due in class next Monday.


Thirteenth Week: November 22

There is only one class this week, because of Thanksgiving break. We will continue talking about MPI on Monday, and we will spend part of the class in the lab.

If you plan to do a final project, you need to tell me what the topic will be.


Twelfth Week: November 15, 17, and 19

After finishing up Chapter 5, we will be departing from the original plan for this course. Instead of covering distributed processing during the last two weeks of the course, we will start in on it this week. Then, at the end of the course, we will return to other selected topics from the textbook and to final projects.

During the distributed processing part of the course, you will be working on MPI, an API for multiprocessing with message passing. A reading on background material and the fundamental aspects of MPI was handed out in class. A second handout will cover a few of the more advanced functions of MPI and will explain how to use it in our computer lab.

The lab on Friday of this week will be in the Math/CS computer lab, Lansing 310. It will be an introduction to using MPI.


Eleventh Week: November 8, 10, and 12

We will cover Chapter 5 this week. This chapter deals with the Link Layer. We will cover this material rather quickly and will concentrate on Ethernet. The reading is Sections 5.1, 5.3, 5.4, 5.5, and 5.6. In these sections, we will not cover ALOHA and DHCP at all, and there will be very little detail from Section 5.6.

Information on an optional final project is available.


Tenth Week: November 1, 3, and 5

We will finish Chapter 4 this week. The reading for the week is Chapter 4, Sections 5 and 6. There is a test on Friday, November 5. An information sheet is available for the test.

Because of the test, there is no lab this week.


Ninth Week: October 25, 27, and 29

We will be covering Chapter 4 this week. The reading is Chapter 4, Sections 1, 2, and 4. Section 3 is not required, but you are encouraged to read it for your own information.

Remember that there is a test coming up on Friday of next week.


Eighth Week: October 18, 20, and 22

We will finish Chapter 3 this week. You should finish reading that chapter. Note that we will not cover Section 3.7.2 at all and that Sections 3.4 and 3.6 are not as relevant as other sections of the chapter, since we are mainly interested in how things work in TCP.

We will begin Chapter 4 on Wednesday.


Seventh Week: October 13 and 15

There is no class on Monday of this week, because of Fall Break.

On Wednesday, we will continue with our study of the transport layer, Chapter 3 in the textbook. The lab on Friday this week will be in Eaton 116.

I did not collect the Web browser project last Friday. It is due this Friday instead.


Sixth Week: October 4, 6, and 8

We will begin looking at the Transport Layer this week and at the TCP protocol in particular this week. You should read Sections 3.1 to 3.5, but we will not finish Section 3.5 until next week.

By Friday of this week, you should have finished the threaded Web server that was begun in Lab 4.


Fifth Week: September 27 and 29; October 1

There is a test on Friday, October 1. An information sheet about the test is available.

The new reading for the week in Section 2.6. This section is part of what you should know for the test.

The threaded Web server for lab 4 is due next week, on October 8. You can work on the server individually or in a group. There are a few requirements that are not mentioned in the lab. If you are working as an individual, you should implement the following features:

If you are working in a group, you should also implement the following features:

The sample program TestDate.java demonstrates some of the Java programming techniques that you need to complete the assignment.


Fourth Week: September 20, 22, and 24

We will continue to discuss some sample application-level protocols this week. The reading for the week is Chapter 2, sections 2.3, 2.4, and 2.5. The lab on Friday will once again be in the math/cs computer lab. Remember that you should try to have a simple, working web server when you come to lab.


Third Week: September 13, 15, and 17

After finishing up our discussion of the HTTP protocol, we will turn to the "socket" API for network programming. The reading for this material is Sections 2.7 and 2.9. Starting in this week's lab, you will be writing a threaded Web server in Java. This will be one of the major assignments for the course.

For the Java network programming assignments, you will need to refer to the Java API documentation. Here is a link to a local copy of the Java 1.4 API:

http://math.hws.edu/local/j2sdk-1_4_1-docs/api/index.html

And here are some direct links to the documentation for some of the classes that you might need to use:

  Socket  ServerSocket  InetAddress  Thread 
  InputStream  OutputStream       DataOutputStream  BufferedReader 
  PrintWriter  File  FileReader  FileWriter 

You can also read about files and networking in Chapter 10 of my on-line Java programming textbook, which can be found at

http://math.hws.edu/javanotes/c10/

There is a Department Picnic this Thursday. It starts at 5:30 on the north side of Eaton Hall -- rain location Albright Lobby.


Second Week: September 6, 8, and 10

The reading for the Week is Chapter 2, Sections 1 and 2. This is a general introduction to application-layer protocols, plus a more detailed description of HTTP. In Friday's lab, you will use the network packet sniffer ethereal to investigate the HTTP protocol.

I would also like you to take a look at RFC Number 2616, which defines HTTP Version 1.1.

Advance notice: There is a department picnic on Thursday of next week, September 16, at 5:30 near Eaton Hall.


First Week: August 30 and September 1 and 3

The reading for the week is Chapter 1, Sections 1, 2, 3, 4, and 7. Sections 5 and 8 are interesting, but won't be covered in class. Section 6 is pretty technical and covers the material too fast to be really appreciated. I will go over some of the stuff in Section 6 in class, but we will not cover it in detail until later in the course when it comes up again in other chapters.

On Friday, September 3, class will meet in Eaton 116 for lab. We will meet in Eaton 116 every Friday except for two Fridays when exams will be given.