Rollout: The PuzzleMuncher System

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