Problem Solving as a Technique

Found absolutely gorgeous article dedicated to problem solving techniques: read this original article or find some teether here below.

Most interested for us as for software developers is part where developing algorithms steps and stages are formalised. So, from this prospective,

steps involved in algorithm development are:

Step1. Identification of input: For an algorithm, there are quantities to
be supplied called input and these are fed externally. The input is to be indentified
first for any specified problem.

Step2: Identification of output: From an algorithm, at least one quantity
is produced, called for any specified problem.

Step3 : Identification the processing operations : All the calculations
to be performed in order to lead to output from the input are to be identified in
an orderly manner.

Step4 : Processing Definiteness : The instructions composing the
algorithm must be clear and there should not be any ambiguity in them.

Step5 : Processing Finiteness : If we go through the algorithm, then for
all cases, the algorithm should terminate after a finite number of steps.

Step6 : Possessing Effectiveness : The instructions in the algorithm
must be sufficiently basic and in practice they can be carries out easily.

An algorithm must possess the following properties

1. Finiteness: An algorithm must terminate in a finite number of steps

2. Definiteness: Each step of the algorithm must be precisely and
unambiguously stated

3. Effectiveness: Each step must be effective, in the sense that it should
be primitive easily convert able into program statement) can be performed exactly
in a finite amount of time.

4. Generality: The algorithm must be complete in itself so that it can be
used to solve problems of a specific type for any input data.

5. Input/output: Each algorithm must take zero, one or more quantities as
input data produce one or more output values. An algorithm can be written in
English like sentences or in any standard representation sometimes, algorithm
written in English like languages are called Pseudo Code.

That formalising is helpful for understanding how you should approach with development custom algorithms. Peace and read the original article !