apcsppp

**Personal Programming Project**
** Milestone 1. ** Due on or before May 9, 2011
 * Proposal (25 points) **

** Milestone 2. ** On or before May 16, 2011 ** Program Design (50 points): ** This will include the following (2 to 10 pages): ** Milestone 3. ** On or before June 3, 2011 ** Working Program (100 points): ** This should include the following elements: Criterion >
 * 1) Block drawing from BlueJ showing the relationship of the classes.
 * 2) Printouts from BlueJ outlining each class with descriptors at the top (title, purpose, author, date), important fields, and major methods with their descriptors (purpose, preconditions, post conditions). This is a design. Do NOT include code.
 * 3) Drawing of the GUI/terminal window interface. Note: the operation and purpose of the program should be reasonably evident just by looking at the GUI/terminal window.
 * 1) GUI interface/terminal window
 * 2) Can call a simple help file
 * 3) 3 classes minimum
 * 4) draw a graph or graphical output
 * 5) 300 lines of code minimum
 * 6) user documentation - Javadoc (This is simple to do in BlueJ)
 * 1) ** Project Matches Proposal ( 10 pts ): ** Does the project do what you said it would do? ** Following your own guidelines is more important than having an impressive GUI. **
 * 2) ** Abstract ( 5 pts ): ** Does the applet or main class have a short paragraph in comments at the beginning that explains what it does?
 * 3) ** User Friendliness ( 10 pts ): ** Is the purpose and operation of the program reasonably evident just by looking at the GUI/terminal window? Can a new user understand and use the project by muddling?
 * 4) ** Efficiency of Code ( 15 pts ): ** The program must use loops and methods rather than needlessly repeating lines of code.
 * 5) ** Style ( 5 pts ): ** Does the program follow conventional style and indenting forms?
 * 6) ** Comments ( 5 pts ): ** Are the comments adequate? For example: each class and method should have a purpose. Each fields or variable should have either an obvious name or comment. Each method should have a purpose, preconditions, and post conditions. Algorithms and significant code segments inside methods. Overdoing comments will result in a deduction.
 * 7) ** Help file( 10 pts ): ** Has a pull down menu in the GUI which can display a help feature, or have an option to get help in a terminal.
 * 8) ** Programming elements ( 35 pts ): ** The code must contain the following elements
 * 9) methods
 * 10) loops - both simple and nested
 * 11) parameter passing
 * 12) arrays
 * 13) instances
 * 14) if-else statements
 * 15) sorting
 * 16)  ** Robustness ( 5 pts ): ** Is it easy to crash the program?