next up previous
Next: The set - an Up: A Mathematical-Algorithmic Approach to Previous: A Mathematical-Algorithmic Approach to

Introduction


It is often difficult to draw precise boundaries between disciplines, and it is even harder when it comes to mathematics and computer science: Is computer science a branch of mathematics? Is algorithmics, the central part of computer science merely a branch of mathematics? Is mathematics perhaps a branch of computer science? We will not go into these issues, which have been thoroughly discussed by Knuth in [K1], for example. We will only mention that valid arguments can be made for either propositions. However, and despite what has been just said, artificial boundary lines are drawn between these two disciplines in school and university mathematics or computer science study programs. We want to try to remove these artificial boundary lines, and demonstrate how algorithmic thinking and mathematical thinking can be integrated either in the mathematics curriculum or in the computer science curriculum.

Algorithmic thinking and mathematical thinking have been discussed by mathematicians and computer scientists such as Knuth, Maurer and Ralston [K2,M,MR]. Knuth for example, sums up the common features shared by algorithmic thinking and mathematical thinking in a table. These include formula manipulation, representation of reality, reduction to simpler problems, abstract reasoning, information structures and detailed descriptions of algorithms. He also points out that while mathematical thinking deals with infinity - and algorithmic thinking does not - it ignores completely issues such as computational ``cost", which is always one of the concerns of algorithmic thinking.

Algorithmic thinking encourages learners to construct a solution, prove its correctness, and analyze its complexity. This contributes to the understanding of problem solving, and therefore has pedagogical value, as emphasized by Knuth in [K1]: ``... a person does not really understand something until he teaches it to someone else. Actually a person does not really understand something until he can teach it to a computer, i.e. express it as an algorithm." This is something most of us have experienced, and it definitely strengthens the feeling that the cultivation of algorithmic thinking must be a central component of mathematical education. More about the the different modes of thinking can also be found in [GZ].

In this paper we try to show that algorithmic thinking and mathematical thinking complement each other, and that an integrated mathematical-algorithmic approach can be taken when teaching and learning a subject. We chose an example - a case study - that fits into the mathematics curriculum as well as into the computer science curriculum. We introduce an abstract definition of a set, discuss the structure of the set, and present an algorithm for its construction, leading to questions of the kind: Is the algorithm correct? Can its correctness be proven mathematically? What is the mathematical generalization of the problem? We touch upon concepts such as algorithmic problems, decision problems, and other important and profound concepts like data structures, recursion, complexity of algorithms, and more.

However, we must make one point here: This paper is not supposed to be a study unit. This means that we present briefly fundamental mathematical and computer science concepts. We raise questions, and we lead to other questions, but, we don't necessarily give all the details of the solutions, nor the exact flow of the study. But, we try to provide some guidelines for the professionals who will write the study unit, and for the teachers who will teach this subject. In this paper we attempt to be clear and fluent at the expense of filling in all the details.


next up previous
Next: The set - an Up: A Mathematical-Algorithmic Approach to Previous: A Mathematical-Algorithmic Approach to
2004-01-05