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:
  1. Give your algorithm a name.

  2. State the input/output specifications of the algorithm.

  3. 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.

  4. Briefly and intuitively explain how your algorithm works. State the design strategy; do not explain your pseudocode line-by-line.

  5. Prove that your algorithm works correctly.

  6. State and prove the resource usage of your algorithm, including its running time and memory usage.

  7. State and prove any significant special properties of your algorithm.

Alan T. Sherman,
Last modified: February 15, 1997