VEDIC ALGORITHMS REVISITED BY MATHEMATICS TEACHERS AND COMPUTER SCIENCE TEACHERS: A COMPARATIVE STUDY Yifat Ben-David Kolikant Department of Science Teaching Weizmann Institute of Science, Rehovot Israel 76100 Tel: 972-8-934-2493 Fax: 972-8-934-4115 ntifat@wis.weizmann.ac.il Sarah Pollack Department of Science Teaching Weizmann Institute of Science, Rehovot Israel 76100 Tel: 972-8-934-2493 Fax: 972-8-934-4115 ntsara@wis.weizmann.ac.il Nurit Zehavi* Department of Science Teaching Weizmann Institute of Science, Rehovot Israel 76100 Tel: 972-8-934-3156 Fax: 972-8-934-4115 Nurit.Zehavi@weizmann.ac.il VEDIC ALGORITHMS REVISITED BY MATHEMATICS TEACHERS AND COMPUTER SCIENCE TEACHERS: A COMPARATIVE STUDY ABSTRACT Using examples from ancient Vedic Mathematics, we describe the interaction between graduate students in Mathematics teaching and Computer Science teaching as they explored Vedic Mathematics. This subsequently led to a comparative study of Vedic Mathematics in workshops for a group of computer science teachers and a group of mathematics teachers. Each group of teachers was exposed to the Vedic algorithms and discussed (a) the knowledge required to perform the methods, (b) the relationship between the mathematical justification and the computer program, and (c) the didactical value. We found that the two groups had a different point of view that influenced their interests, the knowledge they pursued, and the procedures they employed as they studied. However, each group gained from the encounter with the other discipline. Based on the findings, we discuss the epistemological and pedagogical issues that these two groups of teachers can learn from each other in regard to algorithmic thinking. KEYWORDS Interdisciplinary projects, pedagogical issues, improving classroom teaching 2 1. INTRODUCTION This paper describes a comparative study conducted in order to formulate guidelines for cross-fertilization among computer science (CS) teachers and mathematics teachers. We begin with a survey of the literature regarding the relationship between mathematics and computer sciences, and of previous work done on the benefits of cooperation between mathematics education and computer science education. Knuth (1974; 1985) specified the differences between mathematics and computer science and the different approaches in these two disciplines. Mathematics deals with theorems, infinite processes, and static relationships, whereas computer science deals with algorithms, finite constructions, and dynamic relationships. Nevertheless, mathematical thinking and algorithmic thinking overlap in thinking modes, such as formula manipulation, representation, reduction to a simpler problem, abstract reasoning, and generalization. Knuth claimed that computer science and mathematics have a mutual impact. Computer science has been influencing mathematics in many ways, such as facilitating complex computations, providing algorithms as new techniques for mathematical proofs and most importantly, opening a new horizon of interesting problems. Mathematics has been affecting computer science since computer science borrowed concepts, theorems, and techniques from mathematics. Knuth (1974) defined an algorithm as a precisely defined sequence of rules telling how to produce specified output information from given input information in a finite number of steps. He claimed that the ability to deal with algorithms is a powerful general-purpose mental tool, because the attempt to formulate issues such as algorithm leads to a deepening of the understanding of knowledge. The possible pedagogical contribution of each subject matter in relation to the other has been discussed in previous works. First we describe some of the work done about 3 the potential contribution of CS to mathematics education. Johnson (2001) reviewed attempts in using programming in school mathematics, within the past three decades. According to him, the integration of programming in the curriculum of mathematics education can provide (1) a new way to view or express mathematical concepts and relationships, and (2) a new means for solving problems, in other words, becoming competent in programming interwoven with the development of mathematical thinking. He analyzed the task of assessing an algorithm’s efficiency according to mathematical perspective, in order to demonstrate the contribution of studying programming to enhance the development of mathematical thinking. Papert (1991) also advocated the use of programming to enhance learning mathematics. He coined the notion of constructionism, emphasizing that learning is more effective when students construct a product that is meaningful to them or to their classmates. Within this framework, Papert suggested that the students could produce software products on the basis of what they learned in mathematics, such as software that calculated expressions with fractions. Wilkensky (1995) reported a similar experience, in which students who were engaged in a programming project while studying probability developed a better understanding of the basic concepts of probability. Wells (1995) discussed another possible contribution of CS to mathematics: the implementation of ideas and theories of CS in mathematics education such as the use of the term of black-boxes to simplify the concepts of functions. Black-boxing means enabling the manipulations of an object only through it’s interface, similarly to the use of a mathematical function, whereas the implementation of the object is transparent to the manipulator. Sfard & Leron (1996) drew attention to the potential cultural impact of integrating programming into mathematics education on regarding socio- 4 mathematical norms. They claimed that programming norms could help in improving the socio-mathematical norms to be more reality-adapted, for example, to establish the perception that difficult questions are not solved in one shot, but rather by a chain of guessing and conjecturing interlaced with meticulous testing and debugging. The contribution of mathematics to CS education and later to the quality of software engineers has also been intensively discussed. For example, Hoare (1989) claimed that mathematical knowledge is a crucial component of the professional programmer’s knowledge. In fact he perceived programmers as the “engineers of mathematics.” Recently, a group of CS scholars has warned repeatedly from what they refer to as mathematics phobia in the CS curriculum, which damages the quality of future programmers. For a more detailed review of the relationship between mathematical knowledge and CS studies, see Henderson et al. (2001) and the CUPM website. Ben-David Kolikant and Pollack (2002) described an instructional approach to enhance the mathematical orientation in programming skills among beginning Computer Science students, and demonstrated its application. They contend that mathematics has three roles in CS education: (a) a knowledge domain of problems: the understanding and solving of many problems require an adequate background in mathematics, (b) tools and skills that facilitate the process of solution; these tools can be provided to the student when viewing a problem from a mathematical perspective, and (c) an anchor to concepts in CS whose association with mathematics can contribute to the clarification of their meaning. A different approach for enabling the cross-fertilization between mathematics education and CS education was proposed by Gal-Ezer & Lichtenstein (1997). They discussed the possibilities of removing the artificial boundaries between the two disciplines, which they claim exist in formal 5 education, by using topics that fit both CS curricula and mathematics curricula, such as set theory, as well as encouraging an algorithmic approach. The motivation for the comparative study reported in this paper stems from the experience gained in exploring ancient Vedic algorithms in a graduate course “Integration of topics in mathematics through a Computer Algebra System (CAS)”. The course, given by N. Zehavi (the last author), was held at the Weizmann Institute of Science. The participants were graduate students in mathematics teaching or CS teaching. One of the topics in the course was concerned with investigating several methods of Vedic mathematics (see Section 2 for a historical perspective of the Vedic Mathematics and Section 4 for a description of two Vedic mathematics methods). To this end, the students used a computer-algebra programming environment (Section 3) to develop and implement algorithms that simulate the Vedic methods. We noticed that students from these two groups approached the problems differently and each group favored different features and topics. However, these differences did not prevent them from sharing and exchanging ideas, but rather had the effect of stimulating them in a fertile vein of interesting new problems and solution techniques (Section 5). This experience motivated us to explore the perspectives that teachers of both disciplines possess. The significance of exploring the teachers’ communities is clear due to the their pedagogical role as formulators of socio-professional norms. We conducted similar workshops for each of the groups. Specifically, we introduced the teachers to two methods of Vedic Mathematics and their implementation using CAS (see Section 6). The teachers were engaged in using these methods and in proving their correctness, namely, they dealt with mathematical problems of an explicit 6 algorithmic type. In each group we initiated a discussion about the methods and their pedagogical value in order to explore the perspectives of each group. The findings clearly indicate that the two groups have a different point of view, which was demonstrated by different answers to the same questions, and different approaches to the same assignments. The findings are described in Section 7. Finally, Section 8 discusses the possible cooperation between the groups as well as the benefits of sharing experiences. 2. WHAT IS VEDIC MATHEMATICS? To obtain a historical perspective on Vedic Mathematics, briefly we discuss the mathematical developments in India (Boyer, 1968; Katz, 1992). Archeological excavations documented an old and highly cultured civilization in India during the third millenium B.C.E., but no Indian mathematical documents where found from that period. India like Egypt had its geometrical measurement in the form of a body of knowledge known as the Sulvasutras (“rules of the cords”). The word sutra (“thread of knowledge”) means rules expressed by aphorisms relating to rituals or science. This primitive account, dating perhaps before the time of Pythagoras (6th century B.C.E.), contained rules for the construction of right angles by means of triple cords. The period of the Sulvasutras was followed by the age of the Siddhantas (“systems of astronomy”) starting around 500 C.E., which contributed to trigonometry the notion of the sine, namely the ratio of half a chord of a circle and half the corresponding central angle. The trigonometry of the sine function is one of the noted contributions of India to modern mathematics. Another marked development is our system of numeration for integers, called the Hindu-Arabic system (about 700 C. E.). The use of the zero symbol in India existed from the ninth century. Other developments from the same period were indeterminate analysis (Brahmagupta) and algebraic techniques. In 7 the first centuries of the second millenium spherical trigonometry and Pell equations (Bhaskara) were developed. The discovery of power series for trigonometric functions took place around 1500. Hindu mathematians were inclined to further develop topics in number theory and indeterminate analysis in particular. However, these aspects did not contribute to later developments in modern mathematics such as analytic geometry, calculus, and algebra. The term Vedic Mathematics refers to a set of sixteen mathematical sutras and their corollaries derived from the Vedas. The Vedas are ancient texts written in Sanskrit; the word Veda means “knowledge” – knowledge both within and among the senses. It is conjectured that the vedic mathematical system was part of the Sulvasutras. This is a system of calculations based on easy-to-follow rules and principles that can be used effectively to solve problems in arithmetic, algebra, geometry, and trigonometry. The Vedic system was rediscovered between 1911 and 1918 by Sri Swami Bharati Krisna Tirthaji and has been re-structured for use in schools. It is being taught in some schools in several countries as well as being used for scientific applications (see references to Web sites). 3. WHY CAS? Johnson (2001) suggested that one of the major obstacles in integrating programming into the mathematics curriculum is the choice of the programming environment, since learning to program is not a trivial task. However, he claimed that recently developed computerized environments, such as the Spreadsheet and the Computer Algebra System (CAS) are easy to manipulate and master. 8 From an algorithmic point of view, the Vedic rules are sets of instructions that solve problems, that is, algorithms. Therefore, Computer Algebra Systems, having both mathematical and programming power, are suitable for revisiting the ancient Vedic mathematics. The CAS technology can perform symbolic mathematics calculations. We used Derive, which is based on the declarative paradigm of programming (functional programming), a set of pre-defined functions, and programming tools. There are several pedagogical advantages of using such an environment with both mathematics and CS students: - It provides the students with a convenient environment for inquiry of both mathematical and algorithmic problems, mainly due to the variety of representations as well as the built-in functions. - Using the symbolic mechanism, it is easy to verify the correctness because it provides immediate feedback and powerful tools for simplifying mathematical expressions. - The environment enables introducing students to programming. For example, the pre-defined functions can reinforce explanations of re-use and encapsulation (black-boxes), which are fundamental concepts of programming. - Numbers are represented as a list of digits by the software, and therefore big numbers can be manipulated easily, using many pre-defined functions such as DIM(S), which counts S’ digits, ELEMENT(S, N), which returns the Nth digit of S, and INSERT (X, S, N), which inserts the digit X in position N into number S. 9 Thus, we concluded that CAS software provides a suitable environment for both communities of CS and mathematics practitioners. 4. TWO VEDIC METHODS Several Vedic methods were studied during the course. Here we describe two methods, each of which is used for multiplication of two natural numbers. The workshop described later included the use of these methods. For each method we describe its goal, rules of use, correctness justification, the matching algorithmic problem, and its solution. The description of both methods uses the symbol ‘|’ to separate the prefix and the suffix of a number. The term length of a number indicates the number of its digits. Method 1 Multiplication of two numbers x (the multiplicand) and y (the multiplier), where the multiplier’s digits consist entirely of nines; using the Ekanyunena Purvena sutra, which means: “By One Less Than the One Before”. According to this method, the result of x*y comprises two parts: a prefix and a suffix. Case I: if the number of digits of x (x’s length) is greater or equal to the number of digits of y (y’s length), then: The prefix of x*y is x - 1 and the suffix is y - (x - 1). Examples: 1. 7*9 7 – 1 | 9 – (7 – 1) 6 | 3 (meaning 63) 2. 777*999 777 – 1 | 999 – (777 – 1) 776 | 223 10 Case II: If x’s length is smaller than y’s length, then perform the following procedure: 1. Divide x with ‘|’ into two parts, where: - The right part (x2) contains the same number of digits as y - The left part (x1) contains the remaining digits of x. 2. Calculate the prefix as the difference x – (x1 + 1). 3. Compute the suffix simply by the difference y – (x2 – 1). Example: 3. 15639*999 15 | 639*999 15639 – (15 + 1) | 999 – (639 –1) 15623 | 361 In both cases the number of digits of the suffix should equal the number of digits of y, by adding leading zeroes (see example 4 for case I and example 5 for case II). 4. 98*99 98 – 1 | 99 – (98 – 1) => 97 | 2 97 | 02 5. 5499*99 54 | 99*99 5499 – (54 + 1) | 99 – (99 – 1) 5444 | 1 5444 | 01 The matching algorithmic problem for this method is as follows: write a function that implements the Vedic method and multiplies two natural numbers x and y, whereas y’s digits consist entirely of nines. For a suitable algorithm we used the pre-defined Derive function ‘FLOOR’, in order to translate the Vedic instruction: “divide the number with ‘|’ to prefix and suffix”. The function FLOOR(a,b) return the quotient of the operation a/b, for example, 11 FLOOR(758,100) = 7. The distinction between the two cases in the method, based on the length of the two multipliers, was translated to the equivalent two cases, x y and x > y. The cases are equivalent because y’s digits consist entirely of nines, and therefore any number whose number of digits is equal, smaller, or greater than y would be smaller, equal or greater than y, respectively. Figure 1 presents the algorithm for this method. ---Insert figure 1 here--- In order to prove the correctness of the method, we show that in both cases, x y and x > y, the application of the Vedic method yields x*y. The scheme of the proof for case I and case II are illustrated in Figure 2 and 3, receptively. Case I: x y. The first line in Figure 2 presents the result of applying the Vedic method on x and y, according to case I. The result is a concatenation of the prefix x 1, and the suffix y - (x-1). The composition of the number is determined by multiplying the prefix, with the adequate power of ten, y + 1, and adding the suffix, as in the second line. The third line is a simplification of the expression obtained in the second line, which finally yields x*y. --insert figure 2 here --- Case II: x > y The first and the second line in Figure 3 present the calculation of x 1, and x2, according to the Vedic method. The third line demonstrates the composition of the number by multiplying the prefix with the suitable power of ten, y + 1, then 12 adding the suffix. The rest of the lines represent the process of simplifying the expression of the number, finally yielding x*y. ---insert figure 3 here --- The program is presented in Figure 4. ---insert figure 4 here --- Method 2 Multiplication of two numbers x (the multiplicand) and y (the multiplier), using the Urdhva-Tiryagbhyam Sutra, which means: “Vertically and Cross-Wise”. The Vedic instructions are represented visually. The method works for numbers of any length. Here we demonstrate two cases: the multiplication of two-digit numbers illustrated in Figure 4 and the multiplication of three-digit numbers illustrated in Figure 5. Case I: The multiplication of two-digit numbers ac*bd: ---insert figure 5 here --- 1. Compute the intermediate products: a*c | a*d + c*d | b*d. 2. Deal with carry over if necessary. Examples: 13 1. 12*32 =384 In the first number (the multiplicand) a = 1, b = 2 and in the second number (the multiplier) c = 3, d = 2. The intermediate products: 1*3 | 1*2 + 2*3 | 2*2 3 | 8 | 4 and since there is no carry over this is the final result. Examples: 2. 82*57 = 4674 In the first number (the multiplicand) a = 8, b = 2 and in the second number (the multiplier) c = 5, d = 7. The computation of the intermediate products: 5*8 | 8*7 + 2*5 | 2*7 40 | 66 |14. Taking care of the carry over, we get the final answer: 40 | 66 + 1 | 4 40 +6 | 7 | 4 46 | 7 | 4. Case II: The multiplication of three-digit numbers abc*def: ---insert figure 6 here --- 1. Compute the intermediate products: a*d | a*e + b*d | a*f + b*e + c*d | b*f + c*e | c*f. 2. Deal with carry over if necessary. Examples: 3. 194*285 = 55290 1*2| 1*8 + 9*2 | 1*5 + 9*8 + 4*2 | 9*5 + 8*4 | 4*5 → 2 | 26 | 85 | 77 |20 → 2 | 26 | 85 | 77 +2 | 0 → 2 | 26 | 85 + 7 | 9 | 0 → 14 2 | 26 + 9 | 2 | 9 | 0 → 2 + 3 | 5 | 2 | 9 | 0 → 5 | 5 | 2 | 9 | 0 In case that the lengths of the two multiplication numbers are not the same, we should add zeroes at the beginning of the shortest number. The development of a suitable algorithm: The main difficulty is in forming a general rule for any two numbers, based on the cases for two-digit numbers and three-digit numbers, as presented above. The mathematical justification for the Vedic rules using polynomial representation of the numbers, where x = 10, can be a big help: (ax + b)*(cx + d) = acx2 + (ad + bc)x + bd (ax2 + bx + c) *(dx2 + ex + f) = adx4 + (ae + bd)x3 + (af + be + cd) x2 + (bf + ce)x + cf Figure 7 presents the intermediate products (obtained in the first step of the Vedic method Vertically and Cross-Wise) according to the digits of the resulting number formed by these products. ---insert figure 7 here --The relation between the digits’ position and the power values in the polynomial representation led to a general representation of the multiplication: every digit Z, in position k of the resulting number, is calculated by summing the multiplications of pairs of digits Xi and Yj, whose positions i and j are summed up to k, as in the following formula: Zk = Xi*Yj i+j = k. In the following algorithm (Figure 8), m and n are the length of x and y, respectively. The number of digits in the result is the sum of the lengths of the two numbers m + n. However, since digits were referred according to their degree in the polynomial representation, the less significant digit is 15 in degree 0, whereas the most significant digit in the result number is in degree m+n1. The loop boundaries were set accordingly. ---insert figure 8 here --The program is presented in Figure 9. ---insert figure 9 here --- Note: The two Derive programs can be downloaded from http://stwww.weizmann.ac.il/g-math/mathcomp/vedic 4. THE PILOT OBSERVATION We noticed fundamental differences between the approaches to the algorithms of Vedic mathematics among CS teaching students and mathematics-teaching students, as they worked on the Vedic methods during the course. We will highlight the main differences: The students’ immediate curiosity when they were introduced to the Vedic Mathematics was different. The mathematics teaching students’ first questions were about the mathematical history context—they asked about the mathematical knowledge the ancient Indians had: did they base the algorithms on the decimal place value system? Did they have the zero number? They were interested in the development of mathematics in India, and in particular they were curious to know how the algorithms were invented. At the same time, the CS teaching students were very much interested in the future. These students discussed the possible contribution of the implementation of these methods to the solutions of other problems, such as the multiplication of big numbers. 16 We also noticed that the two groups of students approached the activity of constructing the computer program differently. For example, CS students continuously tested numerical examples, in order to verify the correctness of the program. In contrast, the mathematics teaching students deduced correctness from the symbolic manipulation of (x - 1)*(y+1) + (y - (x -1)), which simplifies to xy. However, we noticed a mutual appreciation between the CS-teaching students and the mathematics-teaching students. The CS-teaching students found the mathematical inquiry to be productive since it was used to improve the efficiency of the algorithms. The mathematics-teaching students appreciated the ability of the CS-teaching students to “talk” with the computer at a higher level than merely using manipulations as a way to provide answers. Eventually, they participated in a programming tutorial session that the CS-teaching students held. 5. A COMPARATIVE STUDY The aim of the comparative study was to identify veins for cross-fertilization among CS teachers and mathematics teachers. To this end we conducted two identical workshops, one to a group of 30 secondary mathematics teachers, and the second to a group of 18 CS teachers. Each workshop consisted of the presentation of each of the two Vedic methods previously described. First, we introduced the teachers to the method and discussed the Vedic method in comparison with the traditional method regarding the criteria of the knowledge required to perform the method. Second, we presented the implementation of the Vedic method as a computer program, explaining the development of the algorithm, and analyzed the correctness of the method and the program. We then discussed the importance of the mathematical proof and its 17 relationship to the algorithm. Finally, we discussed the didactical opportunities in using these methods. The discussions were documented. We analyzed the responses of the teachers of the two groups in order to characterize the differences between the groups. 6. FINDINGS For each group we will start by describing the teachers’ general attitude during the workshop. Then we will present the teachers’ responses to our three questions as reflected in the discussions: (a) the knowledge required to apply the methods in comparison with the traditional method, (b) the relationship between the mathematical correctness proof and the algorithms that implement the methods, and (c) the didactical potential of the methods and their correctness proof. The Mathematics teachers General attitude - The teachers were impressed from both methods and appreciated the beauty and the simplicity of the application “in the head”. Knowledge required (for method 1) – Most of the teachers, when asked to solve 243*999 in the traditional method, transformed the task to 243*1000 - 243. For them this is ‘tradition’! In this method one needs to know that multiplying 1000 (or any multiple of ten) is the result of adding three zeros to the multiplicand, and then one must master subtraction from zeros. They admitted that the Vedic method requires less: one only has to master subtraction from 9-digit numbers, which is easier, with no 18 need to master multiplication in its entirety. The difficulty in using the Vedic method is the need to remember the rule. Knowledge required (for method 2) – Multiplication of two three-digit numbers by pencil and paper requires nine multiplications of one-digit numbers, locating the intermediate results correctly according to the two multiplicands, dealing with the carry over and then summing up these results, and again dealing with the carry over. In the Vedic method we still have the same nine multiplications of one-digit numbers, but the locations of the results are clearer and carry over is being dealt with only once, after all the multiplications are over. Thus, the usefulness of the Vedic method stems from the option of performing the intermediate multiplications freely and the simpler location of the intermediate results. The relationship between the justification and the algorithm (in method 1) – The teachers argued that justifying the method requires algebraic knowledge. Most of the teachers discussed the algebraic structures of the mathematical justification. Some of the teachers spontaneously concentrated on justifying each of the methods using arithmetic tools. For example, the following justification to method 1 simplified the Vedic expression into the traditional multiplication: 243 * 999 = 243 – 1 | 999 - (243 –1) = (243 - 1) * 1000 + 999 – 243 + 1= = 243000 – 1000 + 1000 – 243 = 243 * (1000 - 1) = 243 * 999 A few of the teachers insisted on going in the opposite direction, from the exercise to the Vedic rule, in an attempt to “explain how the Vedic came to invent the rule”, where x y: 243 * 999 = 243 * (1000 - 1) = 243 * 1000 – 243 = 19 243 * 1000 + 1000 - 1000 – 243= (243 - 1) *1000 + 999 + 1 - 243 = 243 – 1 | 999 - (243 - 1) Similarly, they backtracked an example for case 2, where x > y: 5489 * 99 = 5489 * (100 – 1) = 548900 – 5489 = 548900 – 5400 – 100 + 99 – 89 + 1 = (5489 – (54 + 1)) * 100 + 99 – (89 – 1) = 5489 – (54 + 1) | 99 – (89 –1) The algorithm and the program did not help these teachers in their justification of the method. They claimed that the execution of the program could reflect its correctness but still a solid proof needs to be constructed. The relationship between the justification and the algorithm (in method 2) – The algorithm that implements method 2 was based on the polynomial representation of the multiplication of the numbers. This representation was a satisfactory proof for the mathematics teachers. The didactical value – In general, most of the mathematics teachers preferred the first method because it was piquant. They commented on a painful familiar obstacle: what would the students say regarding the benefit of these methods compared to the simple use of calculators. The benefit of working with big numbers in a rather convenient representation of the number (rather than with using the exponent, which is built-in in calculators) sounded like a good argument to them. Most of the teachers, however, considered these methods as intellectual amusement, for enrichment and variety. Only two teachers believed that these methods could be used as curricular activities: one suggested using the methods as a type of verbal problems for which the students need 20 to translate the verbal information into algebraic patterns. The other suggested preparing exercises of symbolic manipulations on patterns. In general the mathematics teachers agreed that the instruction of these methods fit junior high students better than high school students, because of their arithmetical characteristics. One attribute of the algorithm that was appreciated by the mathematics teachers was the calculation of the length of the result of multiplication according to the length of the multiplicands. For example, the multiplication of an m-digit number by an n-digit numbers will result in a number with m + n digits, or m + n -1. They offered using this calculation as a verification method of products calculations and suggested integrating this method into the class activities. However, several teachers claimed that junior high students might find the polynomial representation, used in method 2, difficult. Finally, most of the teachers agreed that relating the history background would interest the students and motivate them to explore these methods. It will also serve as an opportunity to reflect on the nature of mathematical development, which most of mathematics students are totally alien to. The CS teachers General attitude - The CS teachers enjoyed the workshop and described it as stimulating. They appreciated the gimmick of performing different algorithms to obtain familiar goals. Knowledge required (for method 1) – The first questions of the CS teachers concerned the domain of numbers to which this method can be applied, or in their words, the possible input. These questions were raised immediately after the first example was given: 7 * 9 = (7 - 1) | (9 - (7 - 1)). The following questions are examples of the 21 questions of the CS teachers: dose it work for all the one-digit numbers? Must the first multiplicand be a one-digit number? Does it work for two-digit numbers or is there another rule? Simultaneously, they started testing the method rules on various numbers. Next, the CS teachers dissected the process into the basic operations of addition and subtraction. They stated that the only difficulty in performing method 1 was remembering its rules. They found the traditional method, in this case long and difficult, because it demanded mastering multiplication and partition as well as addition and subtraction, and dealing with the carry over. These activities require a mastery of the multiplication board, a calculation of the position of mid results, and the mastery of adding numbers including the transmission of the left digits of the mid results. Most of the CS teachers used calculators when asked to solve 243*999 traditionally. After the tutor presented the rule for case II, where x > y, one teacher pointed out that this rule is suitable for both cases as the numbers can be padded in zeros from their left. The other teachers approved. Knowledge required (for method 2) – The CS teachers similarly to the mathematics teachers recognized that the knowledge required for mastering method 2 included multiplication and addition operations. However, they also mentioned operations that are unique to their profession, such as assignment and comparison, and two algebraic operations, DIV and MOD, that were not discussed by the mathematics group. They pointed out that the difficulties of using this method are due to the operations of composition and decomposition of numbers, as well as remembering the method, although its name “vertically and crosswise” is a big help. They also stated that the method is inconvenient for applying on large numbers. The traditional method also 22 required multiplication and addition operations. In addition, it required dealing with the carry over, and the positions of mid results and shifting. The major difficulty of using the traditional method stems from the multitude operations that have to be performed, each relying on another: intermediate multiplication, intermediate addition, shifting, transmitting, and handling positions of numbers, as well as from the need to master the multiplication board. When they examined the algorithm, they were concerned about the representation, especially in transforming the result from a string to number, an issue that naturally was not discussed in the mathematics group. The relationship between the correctness proof and the algorithm - Six teachers argued that understanding the mathematical correctness justification contributes to understanding the dynamics of the algorithm but claimed it was not essential. One teacher referred to the process of implementing an algorithm and claimed that one need not understand why it is correct mathematically in order to implement it, whereas another teacher claimed that an algorithm and a mathematical proof are basically the same. Most of the teachers naturally assumed the Vedic methods are correct and showed no propensity to verify them. All the teachers agreed that developing the algorithms requires an understanding of the rationale and underlying methods, but not all of them agreed that the rationale is the mathematical proof, but rather classified mathematical patterns and proofs as one resource for ideas a developer can use. The didactical value - Most of the CS teachers preferred the second method because it was more general than the first method, and declared the first method as nice but useless. This attitude can be explained by the fact that finding the regularities, and aspiring for a general solution is a basic activity in the CS class. 23 All the CS teachers except for one agreed that these methods could be used as curricular activities for teaching and practicing fundamentals in CS. They suggested exercises to practice the DIV and MOD operations, to exemplify and practice representative input examples, and to demonstrate the concepts of complexity and efficiency of algorithms. Only one teacher suggested teaching these methods as they are, for enrichment. In addition many CS teachers indicated that Method 2 has the potential to serve as a different but efficient solution to the practical, known problem of multiplying two long numbers. 7. DISCUSSION First we will characterize the differences between the approaches of the two groups to the two methods. Then we will discuss the cross-reference and the potential crossfertilization in order to formulate our recommendation for mutual mathematics and computer science workshops. Procedural versus declarative point of view - The difference between the groups was shown even in their responses to the allegedly objective question: “what is the knowledge required to perform the methods”. The mathematics teachers described the required knowledge for both methods in terms of other algebraic methods, such as subtracting from zero, for method 1, and dealing with the carry over for method 2. They did not specify the basic operations that comprise these methods. In contrast, the CS teachers specified each of the very basic operations that comprise the process. For example they detailed the operations that constitute the method of dealing with the carry over. Justification techniques – The mathematics teachers justified the correctness of method 1 by moving backward and forward regarding specific numerical examples. 24 This justification served two goals: to justify correctness and to satisfy their eagerness to understand the historic origins. CS teachers worked in the opposite direction. They mapped the (input) domain into categories of numbers; for each they chose a few numerical examples and applied the method, only to verify that it ‘works’. Appreciation of problems – The mathematics teachers characterized these methods as piquant. They looked for unique cases that they described as ‘beautiful’, and therefore they preferred method 1 over method 2. The CS teachers appreciated the possible contribution for solving real-world problems, such as multiplication of big numbers under the constraints of the space limitation of the digital computer. They also appreciate generality. Therefore, the CS teachers preferred method 2 over method 1, claiming that there is no point in teaching method 1 because it is useless whereas method 2 is general and useful. Integration of the methods in the instruction – Most of the mathematics teachers group perceived the instruction of the Vedic methods as a valuable enrichment activity, in addition to the regular syllabus. The CS teachers, in contrast, pointed out on several issues that can be practiced by using the Vedic methods, based on their own analysis of the required knowledge. Mutual impact – The mathematics teachers group was enthusiastic about calculating the number’s length as a result of arithmetic operations. Some of them decided to integrate it into their instruction, because they thought that these calculations might encourage the students to perceive numbers as objects rather than just performing arithmetic manipulations. The CS-teachers group was excited about the power of mathematics, as reflected in using method 2 to solve realistic problems. However, some of them argued that a programmer does not necessarily have to understand the idea underlying an algorithm, as long as he knows that the algorithm is correct. We 25 concluded that teachers of both disciplines borrowed ideas from the other to improve teaching their subject matter. Recommendations In this work we learned that exposing two similar yet different methods to CS teachers and mathematics teachers groups resulted in different responses. We showed that the CS teachers and mathematics teachers groups had different preferences and areas of interest, and consequently, their pedagogical decisions were essentially different. Yet the exposure of the teachers to both mathematical and CS knowledge regarding the Vedic methods, prompted each group to appreciate and acquire bits of knowledge usually possessed by the other group. We therefore recommend conducting a mutual workshop in which the teachers from both disciplines will together investigate and develop algorithms. We believe that there will be enough interest and that the disagreement that may arise between these two groups because of their different points of view would contribute to a fertile discourse and to a mutual enrichment. Mathematics teachers will benefit from the mental tool of building algorithms (Knuth, 1974). In addition, the encounter with CS teachers can provide them with new images of familiar objects as had occurred in this workshop (the partition of numbers to prefix and suffix, calculation of the number length, and the use of a polynomial to develop an algorithm). This encounter can also result in acquiring more pre-defined functions to their teaching repertoire, such as FLOOR and DIM. CS teachers will also benefit from this encounter. An encounter with a community that tends to perform investigations might influence the CS teachers group to inquire about the problem, rather than just focusing on the implementation. Consequently, 26 their solution would become more elegant and more efficient. Finally, the meeting between practitioners of the old science of mathematics and the young science of CS can teach the CS teachers to appreciate the historical perspective of mathematical developments and later to project them toward the perspective of CS development. An additional advantage of a meeting between CS teachers and mathematics teachers is the reinforcement of mutual activities in school. For example, teaching topics that fit both curricula. Moreover, a cross-reference attitude may enrich the students with a more holistic attitude toward problem solving. Finally, the CAS technology offers a suitable environment for activities of that type, since it can address the needs of both mathematical inquiry and algorithm development, and therefore is convenient for both groups. ACKNOLEDGEMENT The authors are grateful to Dr. Pushpa Agashe for her remarks regarding the Vedic Mathematics. 27 REFERENCES Agrawala, V.S. (1971), Vedic Mathematics, New Delhi: Motilal Banarsidass. Ben-David Kolikant, Y. & Pollack, S. (2002). Improving mathematically oriented programming skills. The Conference of Frontiers In Education, Boston 2002, session T1G, 3-8. Boyer, H. F. (1968). A History of Mathematics. New York: Wiley. Gal-Ezer, J. & Lichtenstein, O. (1997). A mathematical-algorithmic approach to sets: a case study. Mathematics and Computer Education, 31(1), 33-42. Kats, V. J. (1993). A History of Mathematics. New York: Harper Collins. Henderson, P., B., Baldwin, D. et al. ( 2001). Striving for mathematical thinking. ACM SIGCSE Bulletin Inroads, 33(4), 114-124. Hoare, C. A. R. (1989). Computer science. In C. A. R. Hoare & C.B Jones, Essays in Computing Science (pp. 89-101). Englewood Cliff, NJ: Prantice-Hall. Integrating Mathematical Reasoning into Computer Science Curricula, CUPM Discussion Papers and Interim Reports, (2001). http://www.maa.org/news/cupm.html. Johnson, D. (2000). Algorithms and programming in the school mathematics curriculum: support is waning - is there still a case to be made? Education and Information Technologies, 5 (3), 201 – 214. Knuth, D. (1974). Computer science and its relation to mathematics. American Mathematical Monthly, 81(4), 323-343. Knuth, D. (1985). Algorithmic thinking and mathematical thinking. American Mathematical Monthly, 92(3), 170-181. 28 Papert, S. (1991). Situating Constructionism. In I. Harel & S. Papert (Eds.) Constructionism (pp. 1-12), Norwood, NJ: Ablex. Pollack, S., Yeshno, Z., Levi-Rashti, D., & Zehavi, N. (2001). Ancient mathematics and 20th century technology: programming of Vedic Mathematics using Derive. The Derive Newsletter, 43, 8-13. Sfard, A. & Leron, U. (1996). Just give me a computer and I will move the earth: programming as a catalyst of a cultural revolution in the mathematics classroom. International Journal of Computers for Mathematical Learning, 1(2), 189-195. Vedicmaths.org. Retrieved April, 1, 2003 from http://www.vedicmaths.org. Vedic Mathematics. Retrieved April, 1, 2003 from http://vedmaths.tripod.com/ Wells Charles (1995). Communication mathematics: useful ideas from computer science, American Mathematical Monthly, 102(5), 397-408. Wilensky, U. (1995). Paradox, programming and learning probability: a case study in a connected mathematics framework. Journal of Mathematical Behavior, 14(2), 253280. 29 VITAE Yifat Ben-David Kolikant has submitted her doctoral thesis at the Department of Science Teaching at the Weizmann Institute of Science where she is a member of the computer science group. She has developed materials for computer-science teachers and conducted in-service teacher training. Her doctoral research explored the dynamics of knowledge evolution of high school students who studied concurrent and distributed computation. Her research interests involve the characterization of dynamic learning processes both from the cognitive and social aspects in order to design effective instructional methods. Sarah Pollack has recently received her Ms.c degree form the Department of Science Teaching at the Weizmann Institute of Science where she is a member at the computer science group. She has developed materials for computer-science teachers and conducted in-service teacher training. In her research she designed learning materials for project-based learning in computer science and evaluated these materials. Dr. Nurit Zehavi has been working on curriculum development and research in the Science Teaching Department at the Weizmann Institute of Science since 1972. She has coordinated mathematical software development and professional training courses for teachers on using computers in the classroom. Her current research interest is in using computer algebra for teaching mathematics. She is the head of the MathComp project, which was initiated in 1996 with the aim of integrating computer algebra systems into the mathematics curriculum. 30 LIST OF FIGURES Figure 1 :The algorithm for method 1 Figure 2:the correctness proof of the Vedic method “By One Less than the One Before” for case I Figure 3: the correctness proof of the Vedic method “By One Less than the One Before” for case II Figure 4: The program that implements method 1. Figure 5: The multiplication of two-digit numbers Figure 6: The multiplication of three-digit numbers Figure 7: The components of each digit in the multiplicand x, multiplier y, and the result x*y Figure 8: The algorithm for calculating the intermediate products for method 2 Figure 9: The program that implements method 2 31 If x y then compute: Prefix = x – 1 Suffix = y – ( x – 1) Else { if x>y} compute: x1 = FLOOR(x, y + 1) x2 = x – FLOOR(x , y + 1) * (y + 1) Prefix = x – (x1 + 1) Suffix = y – (x2 – 1) If the number of digits of the suffix is smaller than the number of digits of y, add leading zeroes. Compose the two parts (prefix and suffix) into one number i.e. compute: Prefix * (y + 1) + Suffix Figure 1 :The algorithm for method 1 32 [x-1, y – (x-1)] (x – 1) * (y + 1) + y – (x – 1) =x*y + x – y – 1 + y – x + 1 = x* y Figure 2:the correctness proof of the Vedic method “By One Less than the One Before” for case I 33 x1 = FLOOR( x / (y + 1)) x2 = x – x1* (y + 1) (x – (x1 + 1)) * (y +1)+ y – (x2 – 1) = (x – (x1 + 1)) * (y + 1) + y – (x – x1* (y + 1) – 1) = x* (y + 1) – x1* (y+1) – (y+1) + y – x + x1* (y + 1) + 1 = x * y + x - x1* y - x1 – y – 1 + y – x + x1* y + x1 + 1 = x * y Figure 3: the correctness proof of the Vedic method “By One Less than the One Before” for case II 34 Figure 4: The program that implements method 1. 35 a b c d Figure 5: The multiplication of two-digit numbers 36 a b c d e f Figure 6: The multiplication of three-digit numbers 37 4 a*d 3 a*e + b*d 2 1 0 Digit position (k) a b c x (i) d e f y (j) a*f + b*e + c *d b*f + c*e c*f x*y Figure 7: The components of each digit in the multiplicand x, multiplier y, and the result x*y 38 for each k between 0 and m+n-1 do Z[k] 0 i0 for each i < m do j0 for each j < n do if k = j + i then Z[k] Z[k] + x[i] * y[j] Figure 8: The algorithm for calculating the intermediate products for method 2 39 Figure 9: The program that implements method 2 40