Flexible Algorithms - Selections from a course for beginners

Raphael B. Yehezkael · 2006

Here flexible algorithms are used for teaching purposes in a course for beginners. Flexible algorithms have a simple notation and are multifaceted. They may be executed in a variety of orders, sequential or parallel, producing results independent of the execution order. They may be converted to sequential algorithms and to hardware block diagrams. They may also be used for giving an overall description of systems. The educational approach is as follows. (1) Reading and executing flexible algorithms - understanding their behaviours. (2) Acquiring an early awareness of parallelism. (3) Converting flexible algorithms to hardware block diagrams (arouse curiosity). (4) Converting flexible algorithms to sequential algorithms (tail recursion). (5) Deeper understanding of flexible algorithms computational induction. (6) Changes to flexible algorithms. (7) Writing flexible algorithms. (8) Overall description of systems using flexible algorithms (arouse curiosity). The "core" algorithmic notation is based on functions with "IN", "OUT" but no "INOUT" parameters, and conditional statements. As in mathematics, variables, parameters, etc., receive a value once only. Blocks, loops, etc. (including nested forms) are not part of the "core" language but viewed as abbreviations for certain compound forms in the "core" language. Our notation has an iterative style and includes a once only assignment statement. This material is suitable for beginning undergraduate students of computing science and for suitable students in their final year of secondary school.

Read the paper · More papers on PaperTik