## Algorithm's Policy

Whenever you are asked to design a new algorithm, there are a number
of things you should do. This document itemizes your responsibilities
as an algorithm designer. In particular, you are expected to
do each of the following tasks whenever writing up a solution
to design problem in CMSC-441 or CMSC-641:
- Give your algorithm a name.
- State the input/output specifications of the algorithm.
- Write your algorithm in clear HIGH-LEVEL pseudocode.
Your pseudocode should be detailed enough that a programmer could easily
translate it into a high-level programming language; however,
your pseudocode should not be so detailed as to look like low-level
C code. Write your code as clearly and in as high a level as possible.
- Briefly and intuitively explain how your algorithm works.
State the design strategy; do not explain your pseudocode line-by-line.
- Prove that your algorithm works correctly.
- State and prove the resource usage of your algorithm, including
its running time and memory usage.
- State and prove any significant special properties of your algorithm.

Alan T. Sherman, sherman@cs.umbc.edu
Last modified: February 15, 1997