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
-
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.
-
Design your program (modules, classes, etc..) carefully (and logically):
-
Each class should be put in a separate file.
-
Make sure you don't jam all your code into one class.
-
On the other hand, remember that the object hierarchy should SIMPLIFY the
understanding of the program - don't over do it!
-
You should learn to use all the techniques which java offers. Here are
2 simple examples:
-
When two functions perform the same operation but are given different parameters,
you should use overloading and not two different function names.
-
Similirly, although a program can get by without using exceptions, it is
there to make life easier.
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)