The final stage of this project is delivery of the complete
PuzzleMuncher system, including ability to parse the complete
description file specified in Section 3.2 and support
for all PUZZLEs specified in Section 3.1, as well as
performance tests demonstrating the relative performance of different
heuristics and the scalability of the search algorithm with respect to
the size and difficulty of the puzzles. This submission MUST include
support for at least the heuristics described in Milestone 1, as well
as any additional heuristics the designer wishes to provide.
The deliverables for this stage are:
- PuzzleMuncher.java
- The primary object of the
PuzzleMuncher program suite.
- Other Java source files
- Any other supporting code necessary to
compile, load, and use the PuzzleMuncher program.
Note: if these programs depend on external library code other
than the Java JDK or the gnu.getopt suite, the submission
tarball MUST either include the library whole or provide easy and
explicit instructions on how and where to access such libraries. This
documentation MUST be provided in the README.TXT file. The
designer is responsible for ensuring that all copyright and
distribution conditions are adhered to.
- README.TXT
- This file MUST describe how to compile,
configure, and install the PuzzleMuncher program. It MUST
also list any dependencies on additional software support libraries.
- Internal documentation
- The handin MUST also include the full,
compiled JavaDoc documentation for all Java source files in the
submission tarball. This documentation MUST include full descriptions
of every public or protected method, field, sub-class, enclosed class,
or constructor employed by the code. This documentation hierarchy
MUST be included in a sub-directory named documentation/
within the submission tarball package.
- User documentation
- The handin submission MUST include complete
user-level documentation for the PuzzleMuncher program. This
documentation MUST include descriptions of how to use the program, any
command line arguments, and the format of the input file. It must
also describe the various PUZZLEs and their respective HEURISTICS.
supported by the code. It must describe the output format of the
program, how to interpret results, and at least one example of
input/output and interpretation for each PUZZLE. This document MUST be
named USERDOC.extension, but it MAY be be a plain text, HTML,
PDF, or PostScript document (with the appropriate extension).
It MUST NOT be a Microsoft Word or other nonportable format document.
- Performance Documentation
- This handin MUST include a document
describing the performance of the PuzzleMuncher system on
different PUZZLEs and with different HEURISTICS. It must clearly
demonstrate differences in performance under different HEURISTICS and
with different sizes of various PUZZLEs and give some analysis as to
why some HEURISTICs are better or worse than others. The designer MAY
choose any tests that she or he desires to establish the performance
of her/his PuzzleMuncher system, but MUST describe all the
tests and why they lead to the stated conclusions about performance.
This document MUST be named PERFORMANCE.extension, but it MAY
be a plain text, HTML, PDF, or PostScript document (with the
appropriate extension). It MUST NOT be a Microsoft Word or
other nonportable format document.
- Test cases
- The submission tarball MUST include a subdirectory
named tests/ that includes all of the input files used to
demonstrate the performance of the PuzzleMuncher system.
- CVS log file(s)
- For each Java source file, the submission
tarball MUST include a corresponding .log file including the
CVS log for that sourcecode.
At the programmer's option, this submission MAY also include:
- BUGS.TXT
- This file documents any known outstanding
bugs, missing features, performance problems, or failures to meet
specifications of your submission. Note that the penalty for such
problems will be smaller if they're fully documented here than if the
instructors discover them independently.
Terran Lane
2004-03-24