Computer networks

Computer Science 364 deals with computer networks, the services they provide, and the functionality, specification, verification, implementation, and performance of the communications protocols used to provide those services.

The class meets in the department's computer-equipped classroom, Science 2435, at 3:15 p.m. on Mondays, Wednesdays, and Fridays.

The textbooks

The textbooks for the course are:

I have also ordered copies of a book that goes into more detail about low-level network programming. I recommend it to those of you who want to learn more about what is really happening behind the Java interface. It's also quite useful as a reference book.

The instructor

I'm John David Stone. My office is Science 2418. My office hours this semester are Mondays from 10 a.m. to noon, Wednesdays from 1:15 to 3:15 p.m., Thursdays from 9 to 11 a.m., and by appointment. I can be reached by telephone at extension 3181, or by e-mail to stone@cs.grinnell.edu.

Requirements

Each student in the course is expected to read the assigned sections of the textbooks carefully, to learn the ideas, methods, and techniques that are presented there, to submit solutions to exercises requiring the application of those ideas, methods and techniques, to prepare for and attend the sessions of the class, to participate (along with the rest of the class) in the design, implementation, and testing of a network application program, and to take and pass a three-hour final examination over the subjects that the course deals with.

Readings

The schedule of topics for the course includes reading passages in the timetable. Please read each specified section before the beginning of the class that follows it in the schedule.

I strongly suggest that you keep a notebook for the course. When you are doing one of the readings, open the notebook and write down summaries, comments, and questions. Thinking about what you are reading is an excellent way to prepare for class. In addition, at the end of the class, you may submit such a notebook for credit.

From time to time, I also provide handouts on topics related to the course.

Exercises

Kurose and Ross provide a number of interesting problems at the end of each chapter. (I'm referring to the groups headed ``Problems'' and ``Programming assignments,'' not the ``Review questions'' and ``Discussion questions,'' which are useful but less exciting.) You may work on any of these problems that you like, singly or in groups. Submit solutions to me by e-mail, in plain ASCII or as TEX or LATEX source files. Everyone who works on a solution should sign it.

When I have received at least one promising solution to a given exercise, but not until two calendar days after the class session in which we finish discussing the chapter in which the exercise is stated, I'll post a submitted solution in the directory /home/stone/courses/networks/solutions/. Others in the class may then read this solution and try to improve on it.

Solutions will be posted under pseudonyms rather than under the submitters' names. Submitters may request specific pseudonyms; if you don't request one, I'll supply an arbitrary one.

Class attendance

It is especially helpful if students raise for discussion any questions they may have about the day's topic, the assigned reading, or the exercises, and I'll begin many sessions of the class by asking if you have any such questions.

I've started an ``afterthoughts'' Web page, for follow-ups to topics raised in class and lecture errata. Contributions from the class are welcome.

Class project

In the course of the semester, the class as a whole will design, implement (in Java), and test a network application. I have not yet chosen the project, but you can expect to see an announcement in this space soon.

Final examination

The final examination will be held on Tuesday, May 14, at 2 p.m., in Science 2435. It will be an anthology of short problems and essay questions.

Grading

I use a point system for grading, awarding

Points awarded for a solution to an exercise are divided equally among the signers.

I also occasionally award extra points for ingenious, entertaining, and helpful contributions to the course.

The number of points that you accumulate during the semester determines your final grade, as follows:

Any of these grades may be modified, at my discretion, by the addition of a plus or a minus.

Individual and collaborative work

Since you will receive credit on the basis of your individual performance on the notebook and the final examination, it would be unethical to submit any work that is not your own or to collaborate in any way. Similarly, although you may work collaboratively on the class project and on solutions to exercises, each solution should be signed by everyone who participates in finding or writing up the solution; it would be unethical to arrogate the results of other people's intellectual effort without acknowledgement. Except for me, you may not work collaboratively with anyone who is not a student in the class. If I encounter any indications of plagiarism, the Committee on Academic Standing will deal with them.

Useful links

CERT Coordination Center
Internet Engineering Task Force
World Wide Web Consortium

To obtain the URL for a Request for Comments (RFC) in the repository maintained by the the Internet Engineering Task Force, replace the stars in `http://www.ietf.org/rfc/rfc****.txt' with the number of the RFC.

Previous offerings of this course at Grinnell

Spring, 2000

Similar courses elsewhere

Athabasca University: COMP 347, ``Computer networks 1''

Brown University: CS 196-5, ``Networks''

Drexel University: CS 472, ``Computer networks''

Duke University: CPS 196.3, ``Computer networks and distributed systems''

Harvard University: CS 143, ``Computer networks''

Purdue University: CS 536, ``Data communication and computer networks''


This document is available on the World Wide Web as

http://www.cs.grinnell.edu/~stone/courses/networks/

created January 7, 2002
last revised January 23, 2002

John David Stone (stone@cs.grinnell.edu)