• No results found

IMPROVING MATHEMATICALLY ORIENTED PROGRAMMING SKILLS IN COMPUTER SCIENCE STUDIES

N/A
N/A
Protected

Academic year: 2021

Share "IMPROVING MATHEMATICALLY ORIENTED PROGRAMMING SKILLS IN COMPUTER SCIENCE STUDIES"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

IMPROVING MATHEMATICALLY ORIENTED PROGRAMMING SKILLS

IN COMPUTER SCIENCE STUDIES

Yifat Ben-David Kolikant

1

and Sara Pollack

2

1

Yifat ben-David Kolikant, The Weizmann Institute of Science, Department of Science Teaching, Rehovot, ISRAEL 76100, ntifat@wis.weizmann.ac.il

2 Sarah Pollack, The Weizmann Institute of Science, Department of Science Teaching, Rehovot, ISRAEL 76100, ntsara@wis.weizmann.ac.il

Abstract  We describe an instructional approach to

enhance mathematical orientation in programming skills among beginning Computer Science students. We were motivated by the belief that adequate mathematical education is a crucial component in a programmer’s training, since mathematical skills are an indispensable component of proficient programmers’ knowledge. We use elementary mathematics to anchor the new CS knowledge and skills, by engaging the students in solving authentic mathematically oriented problems, whose solutions require mathematical inquiry, as well as mathematically oriented programming skills. Solving problems of this type continuously throughout CS studies enables the students to grasp the CS professional work, and in particular the role of mathematics in the work of proficient programmers. We describe three examples of problems, for which we analyze the advantage of using mathematics and recommend on pedagogical activity accordingly. We also exemplify and analyze the implementation of our approach in class. Index Terms  mathematically oriented programming skills, problem solving, professional point of view, instructional approach.

I

NTRODUCTION

Becoming competent in any complex subject domain is “as much a matter of acquiring the habits and dispositions of interpretation and sense making as of acquiring any particular set of skills, strategies, or knowledge” [11, p. 58]. Accordingly, becoming a CS professional requires more than merely mastering the syntax of different programming languages and being familiar with theoretical issues such as computational models and complexity, but rather, developing a unique point of view and work habits CS professionals posses. Point of view means valuing the processes professionals carry out during their work and having a predilection to apply them [12].

Many remarkable CS scholars gave their opinion about the characteristics of the discipline of CS and of CS professional interests, activities, and dispositions, namely their point of view. For example, Hoare [5] explains that the essence of the differences between CS and other professions

is the tendency and the ability to cre ate solutions that can be executed on a digital computer. Knuth [9] claims that although mathematical thinking and algorithmic thinking overlap, mainly in the thinking processes and heuristics (such as the representation of reality, abstract reasoning and reduction to simpler problems), CS professionals have a world view that is different from the traditional mathematicians. The differences are reflected in unique CS concepts, such as complexity, state of a process, and the assignment instruction, as well as in the disposition of CS people to deal with a multitude of quite different cases than do traditional mathematicians. Finally, Hartmanis [3] states that one of the characteristics by which CS can be distinguished is the immense difference in scale of the phenomena CS deals with, which requires CS professionals to develop many levels of abstraction to see things “in the large” and “in the small” simultaneously.

Hoare [5], as well as many other CS scholars [7] claims that mathematics is indispensable to CS knowledge. Furthermore, Hoare perceives programs as mathematical expressions, programming languages as mathematical theories, and programming as mathematical activity. In fact, he views programmers as engineers that have to put mathematics into practice. However, Hoare is concerned by what he calls “ignorance of mathematics” among CS graduates. He stresses that the students might have studied mathematics, but are not capable of taking advantage of their mathematical skills to define a programming problem and to search for its solution. The dissatisfaction with CS graduates mathematical background has been discussed in recent years too [4,7,8]. For example [8] claim that the mathematical nature of CS is not evident in introductory, and therefore many CS students acquire inadequate methods, such as superficial trial and error.

P

REVIOUS WORK

Much work has been invested in exploring and defining the desired mathematical education for CS studies [4,7], such as defining the topics in mathematics that CS students should study [6], and the optimal instructional approaches. Both of the two following instructional approaches were designed to illustrate the importance of mathematics in CS. Ginat [2]

(2)

suggests an instructional approach, whose goal is to demonstrate the significance of exploration of regularities to CS1 students, based on engaging them in solving colorful problems, whose solutions require a wide range of CS tasks. Manacero and Marranghello [10] suggest an ‘application to model approach’ that demonstrates the relevance of mathematics to CS studies, by analyzing several interesting applications from the aspect of the underlying mathematics in an informal way and referring the students to the relevant math courses.

O

UR

A

PPROACH

We believe that CS students should develop their professional point of view, in particular the predilection to use mathematical knowledge and tools gradually during their studies, beginning in the very first course. This knowledge should grow as an integral part of the process of acquiring adequate work habits. In order to achieve this goal, the students should be explicitly taught how to take advantage of their mathematical knowledge during their work, namely to use mathematically oriented programming skills (MOPS).

Our approach is motivated by the theoretical viewpoint of constructivism that stresses the importance of the continuity of knowledge growth, based on the existing knowledge [13]. From that viewpoint, elementary mathematics can be used to anchor new knowledge in CS, since it is a knowledge base that all the students have and mathematics and algorithmics overlap in many areas [9]. However, teaching mathematics separately from CS will most likely not fruitful, since students construct their knowledge upon judgment of productivity, and will not make connections between mathematical knowledge and CS knowledge unless they will find it necessary.

Therefore, we suggest an instructional approach in which the students are engaged in solving problems that concern typical mathematically oriented CS topics and skills. The problems do not necessarily have to be complex but they should be authentic problems and most importantly, their solutions should require mathematical thinking and an appropriate problem-solving method.

There are three aspects of mathematics that our approach takes into account: (a) a knowledge domain of problems – the understanding and solving of many problems require an adequate background in mathematical concepts and procedures, (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 to mathematics can contribute to the clarification of their meaning.

In the rest of this section we demonstrate our approach with three examples; for each of these we describe the pedagogical activity suggested resulting from an analysis we made of the required CS concepts and procedures, as well as

the mathematics that can be used to facilitate the solution process, according to its three roles.

The ATM Problem

An ATM machine has $20 bills and $50 bills. A client types the requested amount (multiple of 10). The ATM calculates the minimum amount of bills that make up the amount. You have to develop an algorithm/program for this ATM.

This is an authentic problem whose goals should be clear to the students. In addition, the mathematics and CS knowledge needed is very basic; therefore, introductory students can be engaged in solving this problem and are most likely to benefit from this experience.

The analysis of the problem should cause the student to (a) recognize that generally, it is better to give as much $50 bills as possible, and the rest in $20 bills, and then to (b) classify different general cases of money amounts and to generate a rule for the combination of bills for each case, including the amounts that have no combinations.

The activity we suggest is to pose a similar problem of building a mathematical function for finding (m, n) as a function of X, such that X = 50m+20n, and m+n are the minimum of any possible pairs (Table I). The input and the output of the algorithmic problem are the function domain and range, respectively. Representing X as a quotient and a remainder of division by 50 and by 20 enables classifying the input into categories, while composing X as 50m+20n enables finding the matching bills’ combination.

TABLE I

THE MATHETICAL REPRE SENTATION OF A COMBINATION OF BILLS

X (amount) Numbers of bills x =10 or x = 30 No solution x | (x mod 50) mod 20 = 0 no. of 50 = x div 50

no. of 20 = (x mod 50) div 20 x | x > 30 and (x mod 50) mod 20

> 0

no. of 50 = x div 50 – 1

no. of 20 = ((x mod 50) + 50) div 20

During the problem-solving process (of any complicated problem) the student should examine possible solutions according to two leading questions: Is all the input covered? Did I generalize the cases correctly? Similarly when building a mathematical function one has to ensure that every item in the function domain has a matched item in the range, and that the matching rules are correct. The analogy between the mathematical problem and the algorithmic problem might encourage the students to raise these questions and to extend the tools studied in mathematics to answer them. In addition, it can assist the students in the correctness verification of the program, by simply picking one numerical example as a representative of each class of the mathematical function domain (input). Finally, it can be useful in developing an efficient algorithm, as when a student deals separately with the case that the amount is a multiple of 50, and the case in which what left after

(3)

subtracting the biggest multiple of 50 is divided by 20 without a remainder, which can be unified into one class.

The analogy to mathematical functions can also help to clarify the meaning of the concept of representative examples, which is fundamental to CS, since the process of categorization of the input (domain) into subgroups according to the treatment (match) was demonstrated and therefore the notion of picking one representor of each group is clearer.

The “Vertically and Cross-wise” Sutra

Develop and implement an algorithm that multiplies any two natural numbers X and Y, which is an extension of the given cases of two-digit and three-digit numbers.

The ancient Vedic mathematical sutra (rule) Urdhva-Tiryagbhyam (meaning, vertically and cross-wise) is a method of multiplication of two numbers, which is different from the traditional western method [1]. The multiplication of two-digit numbers is graphically represented in Figure 1a. The left digit and the right digit of the result are obtained by multiplying the left digits and right digits of the numbers, respectively (the vertical lines), whereas the middle digit is obtained by summing the multiplication of the left digit of each number with the right digit of the other (the cross-wise lines). Next, the carry over if exists, should be taken care of.

For example 12×32⇒ [1×3, 2×3+1×2, 2×2] ⇒384, and

48×79 ⇒[4×7, 8×7+4×9, 8×9] ⇒[28, 92, 72] ⇒ 3792.

FIGURE 1

THE VEDIC MULTIPLICA TION OF (A) TWO-DIGIT AND (B) THREE-DIGIT NUMBERS

The correctness of this method is clear from the polynomial representation of the numbers where x=10, as demonstrated in (1) for the case of two-digit numbers.

(ax +b)*(cx+d) = acx2 + (ad+bc)x +bd (1) The students are presented with the two -digit and three-digit rules of multiplying, as well as the correctness proof of these rules and are aske d to develop an algorithm that generalizes the method presented and multiplies any two natural numbers.

The knowledge domain required is the multiplication of two numbers, the principles of the decimal representation of numbers, polynoms, and in particular, multiplication of polynoms. Two major skills are required in order to solve this problem: (a) the ability to examine various representations, to convert from one representation to

another, and to evaluate the information available in each, and (b) to strive to unify the myriad rules for generating digits into a general rule.

In order to obtain the general rule of multiplication, the student must go beyond the perception of the result number as a set of digits, each of which is obtained differently, [ac, ad+bc, bd], as implied by the graphical representation, and should strive to find the similarity. The polynomial representation might be the key to recognize another actor in the scene- the position of digit in the number (or the exponent of ten), and to realize that every digit Z, in position k of the result 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 (2). The number of digits in the result is the sum of the lengths of the two numbers, X and Y.

Zk = ∑Xi*Yji+j = k (2)

This activity might drive the students to appreciate the diversity of representations and to refine their ability of judgmental choosing and convertin g representations. This is not a pure mathematical activity, but rather a CS task that requires the use of mathematics. Mathematicians naturally do not have to implement the solution on a digital computer. Therefore they might be satisfied with recognizing the polynomial representation as a possible procedure for digit-calculation and would not bother to formulate the rule in (2), unless a complete proof is needed for other reasons. In contrast, CS people must build a program and therefore would strive to find the regularity [5,9].

After establishing the algorithm, the students have to consider how to implement this algorithm on a computer, and in particular how to represent the numbers. They should evaluate different possible representations, such as integers, real, arrays, strings, and lists, according to the limitations and advantages each representation has.

Thus, solving this problem can contribute to clarifying the concept of representation of numbers in mathematics and in CS. In addition, it might demonstrate the practical importance of mathematical correctness proofs.

The Difference of Two Squares

(i) Develop an algorithm, that for a given natural X, finds A and B, (integers or fractions) such that X = A2 – B2, (ii) find 5 pairs of A and B, and (iii) how many pairs of A and B exist for each X?

This problem is also based on a Vedic Mathematical method. One solution of the problem is described in (3). Using the familiar equation A2 – B2 = (A-B)(A+B), looking for any two numbers m and n whose multiplication is X, equating m to A+B, n to A-B, and solving this two-equation system to eliminate A and B. We can choose any divisors of X, such as 1 and X to compute A and B. Thus, the

a b

c d

ab | ad+bd | bd

a b c

d e f ad| ae+bd| qf+be+cd |bf+ce| cf

(4)

complexity of the algorithms for part (i) and (ii) is O(1), whereas the answer to part (iii) is infinite.

X = A2 – B2 = (A-B)(A+B) = m*n (3) A + B = m A – B = n A =(m+n) /2 B = (m-n) /2

During the solution process the students have to mathematically investigate the problem. They have to build two representations of X and to examine the connections between them, and should be aware of the fact that they can choose m or n, and use it to solve the problem.

We recommend using this problem to demonstrate the importance of mathematical inquiry and its significant contribution to the efficiency of the solution.

We gave this problem to four CS graduate students. All of them used matching or searching loops, relying on the computer‘s computational power, to solve the problem. However, all of these solutions failed to accomplish the problem goals. Three students solved the problem by two nested loops that check if nominated A and B fulfill the

desired equation (O(n2)). Their solutions either were

restricted to integer As and Bs, or jumped in small magnitudes, say 0.01. The fourth student built a loop that jumps on different values of A and calculates B, but does not check if B is rational or not (O(n)). We then directed the students to represent A and B with m and n, as in (3). This hint helped them track the more efficient solution and to re-solve the problem.

I

MPLEMENTATION

We engaged two groups of students in an in -class activity that included solving the ATM problem. The pilot operation was conducted in a CS2 class of 17 students, in order to examine the common approaches and solutions among the students who learn in the traditional way. It was composed of two parts: (a) first, the students were asked to solve the problem individually, and then (b) we conducted a conversation in order to gain information on the solution process. The second operation was conducted in CS1 class, on 16 students. This time, we focused on making the solution process and the required skills more explicit, as well as demonstrating the advantages of mathematics in the solution process. We divided it into three parts: (a) a conversation in which we presented the problem and discussed the inquiry and the plan for solution, (b) individual work of writing the program and verifying correctness, and finally, (c) a conversation about the practical verification techniques. Both of the operations were documented, and the students’ solutions were collected and analyzed.

A

NALYSIS

The Analysis of Students’ Solutions

We gave each solution a score: the score 3 was given to correct algorithms, the score 2 was given to partial algorithms that incorrectly handled the cases in which X mod 50 mod 20>0 but handled the other cases correctly, and the score 1 was given to totally unreasonable algorithms. The analysis of students’ solutions is summarized in Table II. The two left most columns of Table II describe the quality of the solutions, whereas the third and fourth columns present the distribution of the solution types among the students in the pilot and in the second operations, respectively. We classified the students’ programs into three groups according to their closeness to a correct solution.

The students’ performances in the pilot operation were disappointing, since we expected CS2 students to solve this type of questions smoothly. However, only 30% of the students solved the problem correctly. Eight students (47%) gave partial solutions, and four students (23%) gave incorrect solutions. In the second operation, 50% of the students gave correct solutions, whereas four (25%) gave partial algorithms, and another four students (25%) gave incorrect solutions. The means of the scores of the second group is 2.25, which is slightly better than the pilot group, 2.06. However, the difference between the groups is statistically insignificant, both by T-test and by Wilcoxon test.

The most common strategy was to take the maximum $50 bills and then to take the maximum $20 bills of what was left. If there was still a remainder, the partial algorithms either declared the initial amount as impossible to be obtained as a combination of 20 and 50 (type a), rounded the amount (type b), or simply ignored this fact (type c). A correct treatment for this case was by taking one $50 bill, adding it to the remainder and dividing the total by 20.

TABLE II

ANALYSIS OF THE STUDENTS’ SOLUTIONS

Score Degree of closeness First operation Second operation 3 Correct 5 ( 30%) 8 ( 50%) a) Declare as unsolvable 3 ( 18%) 1 ( 6%) b) Round the amount 3 ( 18%) 0 2 Partial

c) Ignore (round) 2 ( 11%) 3 ( 19%) 1 Incorrect 4 ( 23%) 4 ( 25%)

Total 17(100%) 16(100%)

The Conversation in the Pilot Operation

In responding to the question: describe the algorithm and explain how you knew it was correct? S1 (who wrote a correct solution) described a process of gradual refinement of his algorithm based on the results of simulating the

(5)

numerical examples he chose: “At the beginning I did not think of it, but then I tried my algorithm with 210 and noticed that it did not work correctly, so I figured a way to handle it. Then I tried it with 230, I tried more examples only to realize that these are all the cases”. Another student, S7, described his two (correct) algorithms clearly, but when asked, could not explain how he knew that they were correct: “It works, I know that”.

The next question we posed was: if, when, and how did you use numerical examples during the process of solution? Seven students stated that they did not use any numerical example before solving the problem, mostly because they already had a plan for a solution, and because the problem seemed uncomplicated. For example, S4 (who gave partial solution of type a) explained that: “ I knew what I needed to do”. Furthermore, most of those who used numerical examples did not categorize the input, but rather, chose numbers arbitrarily and checked them out, such as S2, S3 (who gave a partial solution of type c, and an incorrect solution, respectively), and S4, who are quoted here:

S2: I used numerical examples after I wrote the program to verify its correctness.

Teacher: how did you choose the numbers? What was your plan?

S2: I chose them arbitrarily. I just picked up numbers. Teacher: Is there anyone who chose the example according to a certain plan?

S3: I did so; it is just that I did not think of the cases I should have thought of. It did pop into my mind.

We then elicited a general heuristic of correctness verification:

Teacher: I am asking myself if it is a matter of luck, the fact that some of you did notice all the cases and some of you did not”.

S4: If you work thoroughly, you will try more examples to check your program and see if it works.

Teacher: Can you be sure that the program is correct? S4: The chances to succeed are higher, this way.

S4 declared working thoroughly as checking more numb ers. He and other students talked about luck and chances, and not about any deeper analysis. Only one student, S5, (who gave a correct solution) claimed that verification must rely on a systematical analysis:

S5: It won’t work if you just check some numbers. You have to find the general cases for your program. In this case the remainder from dividing the amount by 50 must be either 0, 10, 20, 30 or 40. Now 20 and 40 are of the same case because both can be divided by 20, and the cases of 10 and 30 should be looked over, so you take the numbers 60 and 80.

The Conversation in the Second Implementation

The conversation of the second operation started in the same spirit. Immediately after we asked for a plan, one student suggested taking the maximum $50 bills, which was the

most common strategy among the students in the pilot operation. Another student claimed: “It doesn’t work for all the cases”. This remark led the class to examine many numbers suggested by the students. Shortly, they realized that 10 and 30 are unsolvable. Then some of them attempted to gather numbers into groups, mostly without mathematical reasoning, such as “any amount which is greater than 40 is solvable”.

This was the opportunity we were waiting for. We first made the activity more explicit:

Teacher: What are we doing now?

J5: We are trying to find regularity in the input. J6: We are categorizing.

We then suggested organizing the knowledge obtained from the inquiry similarly to the presentation of a mathematical function.

Teacher: What are the categories that we have found so far? Let’s organize them in a table. {Drawing a table, like Table I and fills according to the rest of the discussion}. The left column is the input categories. What should be in the right column?

J3: The combination of bills.

The students then naturally looked for categories to fill in the table:

J7: There are the unsolvable amounts… Teacher: Which are?

J7: 10 and 30.

J6: There is the category of those numbers that the remainder of the division by 50 divides by 20 without any remainder, and the case in which the remainder is not divided by 20.

J6: There are no more possible cases since the remainder from 50 is 0, 10, 20 30 or 40 and we considered all the cases.

After the students solved the problem we continued the conversation and asked: how did you know your program was correct? Student J8 (who gave a correct algorithm) reported that he checked his algorithm for the inputs 110, 120, and 130, and that he chose these numbers because they were representative. We used J8’s answer to clarify the concept of a representative example and to provide the students with a practical tip. We therefore asked J8 to explain why and how he decided that these numbers were

representative. J8 then matched between each number and

the relevant case. Several students pointed out that the unsolvable numbers did not have a representor, and that 110 and 130 are two representors of a single case (of the third row in table I). We then defined a general practical procedure:

J9 {who gave correct algorithm}: Once you have classified the input into categories, you simply pick up one number from each class and execute the program with it.

(6)

D

ISCUSSION

Most of the students in the pilot operation did not classify the input into categories according to the algorithm, and instead were satisfied with merely checking arbitrary numbers. Furthermore, many of them decisively avoided any mathematical inquiry of the problem beyond the initial plan This performance reflects that the students’ common strategy was superficial trial and error, which was used both

to create the solution and to verify its correctness. The

students explicitly talked about luck and chances, and reflected poor ability to reason the correctness of the program, which implies on inadequate work habits.

The discussion in the second group started in a similar strategy, since the students’ first tendency was to examine many numbers without any systematical plan. However, after the students were introduced to the representation of the knowledge domain of the problem as a mathematical function, they naturally took advantage of this representation and used it as a tool to reason and verify the correctness of their solution, meaning they used MOPS in the solution process.

We also took advantage of the equivalence, by using it to refine the concept of representative examples of input and to provide the students with a practical procedure for choosing representative examples. Thus, this activity exemplifies the applicability of using mathematics to anchor concepts in CS.

The insignificant differences between the programs’ quality of the two groups is not surprising. First of all, we must take into account that the students of the pilot group are more experienced in solving problems than the students of the second group. More importantly, this performance should be viewed as a result of a single shot in the direction of fostering the use of MOPS and of developing a more meticulous process of problem solving. In that view, the conversations in the second operation reflect an improvement in the work habits and the dispositions from superficial trial and error in the direction of systematical planning and reasoning [5,7]. Naturally, it is not enough to use one example to convince the students to develo p MOPS, but rather, this problem should be included in a sequence of gradually more difficult problems during the first course and continuously throughout the CS studies. Each problem should be designed to enable the student to refine and extend the knowledge and skills achieved by solving the previous problems. We therefore also recommend evaluating and designing each problem not only from the aspect of the CS concepts and procedures, but also from the aspect of contributing to the development of a professional point of view.

The mathematical knowledge used in these problems is basic, to avoid mathematical phobia in the very first stages of the students in the world of CS, and to enable the new student to learn to appreciate the strength of mathematics

and its advantages without unnecessary difficulties. However, the skill of acquiring new concepts in mathematics when needed to solve a problem should also be taught explicitly in the same approach we describe here.

C

ONCLUSION

We used relatively simple problems to expose the students of introductory course in CS to the role of mathematics in CS, and to enable them to develop MOPS. Our approach motivates the students to use familiar mathematical knowledge to solve CS problems. We believe that solving problems of this type continuously, throughout the CS studies will enable the students to appreciate the strength of mathematics and therefore to develop a mathematically oriented CS-point of view.

R

EFERENCES

[1] Agrawala, V.S., Vedic Mathematics, Delhi: Motilal Banarsidass, 1971. [2] Ginat, D., “Colorful examples for elaborating exlpration of

regularities in high school CS1”, Proceedings of the Fifth SIGCSE/SIGCUE Conference on Innovation and Technology in Computer Science Education. Helsinki, Finland, 2000, 81-84. [3] Hartmanis, J., “Turing award lecture: On the computational

complexity and the nature of computer science”, Communicationof the ACM, 37,10,1994, 37-43.

[4] Henderson,P., B., Baldwin, D. et al, “striving for mathematical thinking”, ACM SIGCSE Bulletin Inroads, December 2001, 33(4), pp 114-124.

[5] Hoare, C. A. R. & Jones, C.B, Essays in Computing Science, Prantice Hall International, 1989.

[6] Hurley, T., C., “Benefits and Advantages of an Integrated Mathematics and Computer Science degree”,

http://tedser.ucg.ie/deptinfo/degr ee/benefits.html.

[7] Integrating Mathematical Reasoning into Computer Science Curricula, http://brastias.cs.geneseo.edu/~baldwin/math-thinking.

[8] Kelemen, C., F., Tucker, A., Henderson, P., Bruce, K. & Astrachan, O., “Has our curriculum become math phobic?”, Proceedings of the Fifth SIGCSE/SIGCUE Conference on Innovation and Technology in Computer Science Education. Helsinki, Finland, 2000, 132-135. [9] Knuth, D.E., “Algorithmic thinking and mathematical thinking”,

American Mathematical Monthly, 92, 3,1985, pp. 170-181. [10] Manacero, A. & Marranghello, N., “Turning math attractive to

computer science students: An application-to-model approach”,

Proceedings of the 1999 Frontiers in Education Conference, November, 1999, San Juan, Puerto Rico.

[11] Resnick, L.B., “Treating mat hematics as an ill-structured discipline”, in R.I. Charles & E.A. Silver (Eds.), The Teaching and Assessing of Mathematical Problem Solving, Hillsdale, NJ: Lawrence Erlbaum Associates, 1988, pp 32-60.

[12] Schoenfeld, A. H., "Learning to think mathematically: problem solving, metacognition, and sense making in mathematics", in D. Grouws (Ed.), Handbook for Research on Mathematics Teaching and Learning, New York: MacMillan, 1992, pp. 334-370.

[13] Smith, J.P.,III,diSessa, A., A, & Roschelle,J., Misconception Reconceived: A Constructivist Analysis of Knowledge in Transition. Journal of the Learning Sciences, 3(2), 1993, 115-164.

References

Related documents

Giovenale, Sharon University of Connecticut Jesano, Rae University of Florida Killion, Vicki Purdue University Knehans, Amy University of Hawaii, Hilo Konieczny, Alison

I understand that although Emporia State University verifies the completion of the alternate route/restricted teacher license program, only the Kansas State Department of Education

UniRef50 members that are hit under a PSI-BLAST (Altschul et al., 1997) search started by the recruiter (a COG member from the same UniRef50 cluster) are labeled as valid

4 www.musicartistdatabase.com/ forum.musicartistdatabase.com/ 5.59 Message boards over 30 million posts and 1.8 million members. Get your

This includes a duty to prevent, report, and raise public and especially institutional awareness, of criminal activities such as the damage, destruction or devastation of

Numerous interpretations of models and modelling have appeared in the literature, including with reference to completing word problems, conducting mathematical

The Contracting Authority, Transport for London (TfL), on behalf of itself and others (as detailed in VI.3) is seeking to award a Framework of Concessionaires who will be

DF-1 cells in 24-wells were infected with 300 ml of collected supernatant from SegA transfection or SegA þVP1 (IBDV-A viral particles).. After absorption for 1.5 h, medium was added