Algorithms
Designing Algorithms

Specification:
The problem and the desired solution must be clearly specified and understood.

Design technique:
Most algorithms use some variation on the divide and conquer technique.
A large problem is solved by breaking it up into subproblems (divide) and
putting the solutions to the subproblems together into a complete solution
(conquer).

Representation:
The algorithm must be clearly specified.

Verification: Correctness
should be proved. [**]

Implementation and
Testing: Programming an algorithm results in a computer solution to
the original problem. One algorithm can have
many implementations (realizations in one or more programming languages, and different methods of implementation by individual programmers.).
[**] Early programmers, including Alan Turing [19121954] and John von Neumann [19031957], not only wrote their programs but also accompanied them by formal mathematical proofs of correctness. However most recent programming languages have features that preclude formal proofs of correctness. We will have to change the languages in order to perform the same kind of proof of correctness that we expect of engineering projects!
CS1104
Main Page
Last Updated 01/05/2000
©
L.Heath, 2000