Milestone 2: The A* Engine

In this milestone, the designer/implementer will deliver a functional search engine object capable of solving puzzles with either a general admissible or a monotonic heuristic. This milestone does not specifically include implementations of the PUZZLEs described in Section 3.1, though it may be necessary to develop one or more PUZZLE objects in order to test the system. The instructors will test the search engine object with an arbitrary PUZZLE object obeying the interface specifications given in Section 3.3. This milestone also does not include support for the input file format specified in Section 3.2, though some sort of unit testing is required and limited parsing ability MAY be supported for that purpose. Specific materials to be handed in will be:

Java code
The class file(s) for all objects necessary to compile and instantiate the search engine object, including any supporting code necessary to compile, load, and use the search engine module. Note that this may include one or more PUZZLE objects in order to test the functionality of the engine.
API documentation
The handin MUST also include the full, compiled JavaDoc documentation for the search engine object(s) implementation. This documentation MUST include full descriptions of every public or protected method, field, sub-class, enclosed class, or constructor employed in the code. This documentation hierarchy MUST be included in a sub-directory named documentation/ within the submission tarball package.
Unit test documentation
The handing MUST include a document named PERFORMANCE.extension that describes unit tests on this module and demonstrates correct functionality.
Test cases
If any external test data is necessary for the unit tests of this object, that data MUST be submitted in the subdirectory tests/ within the tarball.
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.

The submission directory MUST be named lastname_p2m2 and the submission tarball MUST be named lastname_p2m2.tar.gz.

Terran Lane 2004-03-24