Garry White, M.A., M.S., C.C.P. Computer Information Systems Southwest Texas State University San Marcos, TX 78666 ABSTRACT Prior knowledge can interfere with new learning. This is due to different contextual uses for the same symbols. Some preconceptions that can lead to misconceptions are the equal symbol (assign value vs compare) and the addition symbol (addition vs concatenation). Computer mathematics has differences from Algebraic mathematics. A solution to these misconceptions is to develop mental models for these new conceptions. A stress on the new context and computer architecture will help show the differences between computer programming concepts and mathematical concepts. THEORY The Constructivism theory of learning states knowledge is constructed from personal experiences. Learning is a result of social interactions. Old knowledge affects new knowledge. (Preconceptions in Computer Science Education, SIGCSE 2000 referred paper) Prior knowledge can lead to preconceptions that become misconceptions. What was learned in a prior context can become an error in a new context. Such misconception might be hidden from student and teacher (Madison, Gifford 1997). Both teacher and student might be unaware of the student's confusion between old and new contexts. For example the "+" symbol means the addition of two numbers. This is what is taught in school. However, in computer programming, the same symbol can mean concatenation, the joining of two characters. These preconceptions, based on context, are different from problem solving misconceptions. Problem solving misconceptions can lead to programming bugs. Bugs can be defined as an inappropriate use of student's knowledge for a step by step procedural specification (Bonar, Soloway 1985). Three types of bugs are 1) parallelism, more than one statement active at one time; 2) intentionality, attribution of goal directedness; and 3) egocentrism, assumes there is more of the programmer's meaning than is present in the code. These 3 bugs assume the programming language is intelligent and has interpretive powers (Pea 1984). The misconceptions I am looking at are due to the syntax and the semantics of the JCSC 16, 3 (March 2001) 2001 by the Consortium for Computing in Small Colleges
JCSC 16, 3 (March 2001) 150 language (Sleeman, Gong 1985). They are based on errors due to a new context of an old concept. A word can have different meanings in different contexts or usage. SPECIFIC PRECONCEPTION PROBLEMS Mathematical knowledge can lead to misconceptions in Computer Information Systems programming. The pre-existing knowledge is correct within mathematics. Yet, this prior knowledge can interfere with learning programming in Computer Information Systems. For example, there is X = X + 1. In mathematics this would be an error. In Computer Information Systems programming, this would be an increment statement for the variable X. An addition is done to X and the results are placed back in X. Computer mathematics is different from Algebraic mathematics. Sometimes the addition of two large positive numbers may result in a negative number when done on a computer. Again this is a violation of mathematics. The cause is due to the architecture of the computer. When a number exceeds the largest value the computer can process, the internal bit code results in a negative sign. The symbols "+" and "=" used in mathematics and computer programming can have different meanings. In mathematics the "+" is the addition operation for numbers. In Computer Information Systems programming it can mean the same thing or it can mean "concatenation," the joining of two characters. "A" + "B" may be confused as an Algebraic statement instead of a joining operation. The result of concatenation is "AB." A similar problem exists with the "=" sign. In mathematics it is equal, indicating the result of a mathematical operation. In Computer Information Systems programming, it can also mean "compare," as seen in an IF statement. Finally, there is the natural way to count. From the first day of school people are taught to start with the number 1 when counting. For example, if you label 5 boxes, you would start with the number 1 on the first box. In Computer Information Systems programming you would start with the number 0 on the first box. This type of problem is found with variable arrays in computers. Either the person fails to start the array with 0 or miscalculates the number of items in the array. CONTRIBUTING CAUSES Even though students might perform adequately on program generation tests, they can still have misconceptions concerning the statements they have learned (Bayman, Mayer 1982). Computer Information Systems teachers would then be unaware of students' misconceptions. The computer text book may poorly clarify these differences between Computer Information Systems programming and mathematical concepts. It can be difficult to conceptualize these new abstract concepts. Therefore, students may not accept these new concepts offered by the teacher or the book since they contradict correct prior knowledge. CCSC: South Central Conference 151 SOLUTION There are several ways these preconceptions problems can be corrected. One way is to develop mental models of what happens in the computer (Bayman 1983). A stress on the new context and computer architecture will help show the differences between mathematical concepts and computer programming concepts. Another method is to teach the students the syntax and semantics of computer programming. A good textbook would be one that stresses these differences involving syntax and semantics. After the teacher or the book presents the concepts, the teacher should have the students verbalize, explain and predict outcomes of short programs (Sleeman, Gong 1985). Learning the syntax is not enough to learn correct computer programming and overcome these misconceptions. The semantics of the language must be included (Bayman, Mayer 1988). A problematic solution is student discussion groups on exercises that address these different concepts. Conceptual change may induce "cognitive dissonance." What was learned earlier is correct. In order to maintain self-esteem, the student may be unable to admit that prior knowledge is now wrong. There is the risk of confrontation due to closed minds. The teacher may have to explain that these prior concepts are being expanded to accommodate new contexts and usage; add more to what is already known. In mathematics these prior concepts are correct and in Computer Information Systems programming these concepts are correct when expanded to new meanings. Once these new concepts are accepted, the students need to practice these new ideas in a range of situations. REFERENCES Referred paper. Preconceptions in Computer Science Education, SIGCSE 2000. Bayman, P. & Mayer, R. E.(1982). Novice Users' Misconceptions of BASIC Programming Statements. Report No. 82-1. ERIC ED238395. Bayman, P. & Mayer, R. E. (1988). Using Conceptual Models to Teach BASIC Computer Programming. Journal of Educational Psychology, v80, n3, p291-98. Bayman, P.(1983). The Effects of Instructional Procedures on Beginning Programmers' Mental Models. ERIC ED238406. Bonar, J. & Soloway, E. (1985). Pre-Programming Knowledge: A Major Source of Misconceptions in Novice Programmers. ERIC ED258805. Madison, S. & Gifford, J. (1997). Parameter Passing: The Conceptions Novices Construct. ERIC ED406211. Pea, R. D. (1984). Language-Independent Conceptual "Bugs" in Novice Programming. Technical Report No. 31. ERIC ED319373. JCSC 16, 3 (March 2001) 152 Sleeman, D. & Gong, B. (1985). From clinical Interviews to Policy Recommendations: A Case Study in High School Computer Programming. Study of Standford and the Schools Technology Panel. ERIC ED257415.