**8.4 Algorithm design**

During algorithm design, the designer creates mathematical processes that can be used to solve problems. The concept used to develop algorithms is coding engineering. Algorithm design and implementation are achieved by the use of design patterns or template patterns and involve the use of data structures to create programs and subprograms that can be used to derive the mathematical output from a particular data input [27]. In order to develop an algorithm, mainframe programming languages that are recommended include ALGOL, FORTRAN, PL/I, and SNOBOL. The developer of an algorithm can create hand-written processes and a set of mechanical activities to be performed by hand before creating a corresponding algorithm using a computer program.
