CSE533: Network Programming
Fall 2001
Scott Stoller

Other CSE533 Pages

Announcements and Assignments
Project Page
sbcs.cse533 newsgroup

Contents of This Page

Course Description
Course Newsgroup
How to Submit an Assignment
Exam Guidelines
Course Newsgroup
Computers and Accounts
Grading Statistics
Academic Integrity


Scott Stoller

T.A.: Fanglu Guo

Class: Monday and Friday, 12:40pm-2:00pm. Harriman Hall 108.

Instructor's Office Hours: Monday and Friday, 2:00pm-3:00pm. Computer Science 1429.

T.A.'s Office Hours: Tuesday and Wednesday, 4:00pm-5:00pm. Computer Science 2110.

Course Description

This course covers fundamental topics in design and implementation of software for distributed systems. The prerequisites are undergraduate courses on operating systems (
CSE 306 or equivalent) and networks (CSE 310 or equivalent), which cover basic issues in concurrency and communication protocol design. This course is mainly about middleware and application-level software in distributed systems.

We will cover the following core topics:

If time permits, we will explore additional topics, such as distributed shared memory.

The primary textbook is

George Coulouris, Jean Dollimore, and Tim Kindberg. Distributed Systems: Concepts and Design, 3rd edition. Addison-Wesley, 2001.

The coursework includes homeworks, a project, a midterm exam, and a final exam. Most homeworks will be written problems. The project involves a significant amount of programming in Java. Students are expected to be familiar with these languages, though not necessarily with the networking APIs. Students will learn those APIs through the programming assignments.

Extensive on-line documentation of Java networking APIs is available in the Java 2 SDK Documentation (e.g., click on "Java 2 Platform API Specification" and then on package "java.net"). For students desiring a more tutorial presentation, several textbooks are available, such as

Merlin Hughes, Michael Shoffner, Derek Hamner. Java Network Programming : A Complete Guide to Networking, Streams, and Distributed Computing, 2nd edition. Manning Publishing Co., 1999.

Course Newsgroup

All questions should be posted to the course newsgroup, unless the question requires privacy. The advantages of posting to the newsgroup are: (1) you are more likely to get a prompt response, since your classmates, the T.A., and the instructor all read the newsgroup; (2) your classmates benefit from seeing your questions and the answers. If you see a question and know the answer, post it! This helps your classmates and shows us that you know what's going on.

If we receive by email a question that should have been posted to the newsgroup, we will simply forward it to the newsgroup.

There is a link to the course newsgroup in the Table of Contents. You should be able to read the newsgroup in netscape by clicking on that link. If it doesn't work, check that your news server is news.sunysb.edu, with the default news port (port 119); in netscape, use Edit -> Preferences -> Mail&Newsgroups (click on the triangle) -> Newsgroups Servers. Or you can read the newsgroup using GNUS, an emacs-based news reader.

How to Submit an Assignment

To submit a homework that does not involve programming, put hardcopy under the door of Room 1429. Note that you might not have access to my office door after normal business hours, because the door to the suite is locked.

To submit an assignment (homework or project) that involves programming,

Details regarding the .zip file:

Exam Guidelines

During exams, you may use the course textbook, your own notes, handouts that were distributed in class or posted on the course web page, and a dictionary. You may not bring someone else's notes or a mechanical reproduction of all or part thereof. You may not bring a different textbook or a mechanical reproduction of all or part thereof.

Computers and Accounts

The CSE Dept labs accessible to all students in this course are the Sun Lab (Room 2206) and the Grad NT Lab (Room 1239). In the NT Lab, you can run JBuilder directly on the NT machine. The NT machines have X windows, so you can also log into a Sun (compserv2.cs.sunysb.edu or compserv3.cs.sunysb.edu) and use xemacs, Sun JDK, etc., remotely. You can also access the compserv machines remotely from essentially any computer connected to the Internet, using telnet or ssh.

If you are a CSE graduate student, you should already have an account on the Suns. If you are not a CSE graduate student and do not have an account on the CSE Dept's Sun workstations, please send me a message, and I will get an account for you.

You do not need a separate account to use the NT machines; for details, see the Grad NT Lab Home Page.


The weights are:
Project (part 1)10%
Project (part 2)24%

Homework Weights
Item: hw1 hw2 hw3 hw4 hw5
Weight: 0.06 0.06 0.05 0.03 0.06

Project Grading Policies: Each student receives individual scores for the project. Often, members of a team will receive the same scores, but if there is evidence (from the description of contributions in the project submission, the demo, or other sources) that team members did not contribute equally, their scores will reflect this. Students are encouraged to keep track of their contributions carefully throughout the semester.

Each team member is responsible for ensuring that he or she contributes. If you believe that your teammates are preventing you from contributing, discuss the situation with the instructor immediately; if you wait until near the end of the project, it will be too late to remedy the situation, and you will receive low scores for the project.


The following information may be slightly inaccurate, due to score adjustments, late submissions, etc.

Item Mean Std.Dev. Histogram
hw1 (out of 100) 100.4 18.2
proj1 (out of 100) 97.3 3.0
exam1 (out of 80) 49.9 (62%) 10.1 histogram
hw2 (out of 45) 39.6 2.7
hw3 (out of 80) 69.0 19.9
proj2 (out of 100) 100 5.8
hw4 (out of 40) 22.0 8.4
hw5 (out of 70) 42.6 10.0
final (out of 80) 54.5 (68%) 16.0 histogram

Students with Disabilities

The Provost has required that all faculty include the following statement in their syllabus handouts:
If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS), Room 133 Humanities, 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.

Academic Integrity

All students are expected to follow CEAS's
policies governing academic dishonesty. Suspected academic dishonesty will be reported to CEAS's Committee on Academic Standing and Appeals (CASA).

Discussing programming assignments with other people is fine. However, each person (or team, as appropriate) must write its own code and documentation. Showing your own (or your team's) code or documentation to members of other teams, giving it to them, or making it accessible to them (e.g., by making the files world-readable) is academic dishonesty.

In general, using code from textbooks, programming tutorials, etc., is acceptable provided:

  1. the code solves the problem well (clearly, efficiently, etc.). For example, it is a bad idea to use code that solves a more general problem and consequently is significantly more complicated or less efficient than necessary.
  2. you supply a reference to the source of the code (a book, URL, ...), and indicate clearly which part of the code is from each source.
  3. you thoroughly understand all of the code that you submit. We may ask you to come and explain exactly how your submitted code works, regardless of whether you wrote the code yourself or got it from another source. You should be able to convince us that you could re-write that code or similar code from scratch, if needed. Otherwise, your assignment will be graded as if that code were missing.