Algorithm Documentation – How to Document an Algorithm Properly with Sample Data

algorithmsdocumentationjavaPHPsql

I am wondering what should an algorithm documentation contain? Can't locate a proper guideline to follow. I have in mind to include

  • summary of the algorithm
  • description of the algorithm
  • flowcharts
  • pseudo codes
  • sample input data set(multiple)
  • output data
  • unit tests
  • experiments

The client requests such a documentation to: Maintain confidence in our own numbers as well as to describe our process to potential customers so they know we are taking steps to check and verify our calculations.

  • How would look like such a documentation? (example PDF)
  • What would you include more in this documentation?
  • What I enumerated is that good, or this should be somehow documented differently?
  • How would you search in Google for such documentation samples?

Best Answer

Some more points:

  1. Performance analysis/benchmark with sample inputs and environments.
  2. Alternates to the algorithm(if exists), really helps for new people, and for comparison analysis.
  3. Examples of best and worst case scenarios/inputs.

How would look like such a documentation?
Cusotmers/Users(/Managers?) don't like PDF, they find PPTs very interesting though, at the same time business will insist on PDF. So you should have a two-level document, one in PPT just to "explain in 20 mins" and other in PDF that covers the gory details of the game.

Related Topic