The main aim of the course outlined above, is to give a fairly good knowledge of the basic methods of designing algorithms, without using the more difficult traditional programming languages. When learning this introductory course, the students will be able to concentrate on the algorithmic thinking behind computer programming. The visual tool used to present algorithms - the multy-layered chart - supports methods of structured and modular programming, and stresses top-down and stepwise refinements techniques.
The experience, when teaching the course this way to prospective teachers, showed that most of the students internalized the modular way of thinking when setting out to solve a problem. Some students stated that their approach to problem solving has become more general and methodological in other subjects as well.
Teachers of the second course, which involves
programming, stated that the students were
well prepared to learn programming in Pascal, say.
We pointed
out above, the advantages and disadvantages of the multi-layered chart; we explained that it may lose its overview advantage when it is composed of too many layers or modules. To overcome this disadvantage, we suggest to further develop a visual software tool, based on the multi-layered chart. By doing so we may achieve two goals: First we may overcome the multi-page layout of complex algorithms, using hypertext methods, for example; second, this is an opportunity to integrate the computer into the learning of computer science, not only as a machine that runs programs, but also as an educational tool.
Figure 1: A multi-layer chart of an algorithm that computes and
prints
Fibonacci numbers (, such that
,
) smaller than a given n.
Figure 2: A multi-layer chart for solving a (linear or) quadratic
equation ().
Acknowledgment I would like to thank my colleague G. Zwas for many very fruitful discussions, and my student Ella Tzur, whose Masters thesis motivated this work.