Data Structures Course - Spring 2000 - Programming exs Guidelines

Data Structures Course - Programming exs Guidelines

All 3 exercises in this course will be based on each other. Thus it is wise to keep in mind while planning each exercise the following: modularity, ease of change, generality, etc. ALL exercises will be checked automatically. Thus you should follow the guidelines to the dot.

Design

  1. Special emphasis should be given to choosing the APPROPRIATE data-structure for each job. Remember that there is no single correct solution, however there are definitely wrong ones. You should justify your design choices, in terms of: ease-of-use, modularity, efficiency etc. This is especially true in ex1 where there are not many structures to choose from.
  2. Design your program (modules, classes, etc..) carefully (and logically):
  3. You should learn to use all the techniques which java offers. Here are 2 simple examples:
  4. The list goes on and on.

Input File

Each ex will have an input file which operates the different methods required by that ex (as well as previous ex's). The syntax of each command in the input file should be exact! Note that ALL command arguments in the input file can be seperated by any whitespaces except for end of line. Each end of line ends a command. Blank line will be ignored. Lines starting with # are comment lines. The syntax for each command is described in the exercises, and an example input file is supplied. Commands are case-sensitive.

Output File

Some methods will require output to the outputfile. The exact format is given in the exercise. NO extra lines, characters OR comments should be included in the output file. Example output files matching the input files are also supplied with the exercises. Your program should produce an EXACT copy of the given output file.

Error Handling

ALL possible errors should be handled. These include errors in command-line, input-file format, i/o operations, dynamic allocations etc. The format of the error messages should be:
    Error: xxxx
where xxxx is a short description of what was wrong, for example:
    Error: Char instead of digit in input file.
The error messages should be informative (e.g. not all errors in the input file are the same!) Points will be taken off for non descriptive error messages and will be chopped off for errors not handled at all!

All error messages should be printed to stderr!!!
Javadocing
You have to use javadoc to document your excercises. The mandatory tags for javadocing are @param,@return,@exception for ALL public methods (along with a short description of the method)