Clearly formulate the problem

Choose the appropriate programming language

Develop the solution

Translate the solution into

the required programming language

Test program with a judiciously chosen

set of special values of input data


Do all

the bugs seem to

be removed

Do you

still think this

the best method

of solution


Remove all

known bugs

Document your program

     You now have a

satisfactory program





The following restrictions apply:


speed of execution is to be maximized,


accuracy of solution must be sufficient,


storage requirements are to be minimized,


programming time is to be minimized,


degree of generality and expandability required must be decided on.

Also, the method of solution should:


take account of special cases,


provide error exits,


be developed in modular form.

The program should include the following:


adequate documentation,


clean, easy-to-follow code,


avoidance of machine or compiler dependant features where possible,


provision for de-bugging output,


the code should be concise, effective, and modular.


Supplement this with hand calculations which can be compared with de-bugging output.

Complete the documentation of your program.