Standardized Mathematics Scores as a Prerequisite for a First Programming Course
White, Garry, Mathematics and Computer Education
Many students fail their first programming course due to the failure of colleges to provide the proper mathematics prerequisites. The purpose of this paper is to address this problem. Past research and accepted theory are presented that show the cognitive requirements for success in a first procedural programming course. The paper then presents how to apply this knowledge as prerequisites and argues for algebra competency as a prerequisite for the first programming course that stresses procedural processes. Standardized mathematics scores will be a good indicator of such competency. Hypotheses are made for prerequisites of object-oriented, visual, and script programming courses. Research is lacking in these areas and after a search of the literature only a few recent references were found.
Prerequisites for four types of programming languages are considered: script, visual, object-oriented, and procedural. Research dealing with cognitive requirements and possible prerequisites has only been done for procedural programming languages. This paper will first focus on cognitive requirements and possible prerequisites for procedural programming. Then, at the end of this article, hypotheses for future research are made for prerequisites of object-oriented, visual, and script programming courses.
Piaget's Cognitive Development
Piaget's cognitive theory deals with three levels of development (Piaget, 1972; Epstein, 1990), pre-operational, concrete, and formal operations. Pre-operational cognitive level is a low level of thinking. Such a person can use symbols from visual and body sensation to represent objects but has problems mentally reversing actions (Biehler and Snowman, 1986, p. 62). An example of pre-operational is stating that a tall container has more water then a squat container, even if the person sees the water in the squat container is poured into the tall container. The next level, concrete, finds a person who can understand conservation of matter and classification/generalization (conclude that all dogs are animals and not all animals are dogs). However, such a person is unable to comprehend mathematical ratios (Barker, 1983). Formal operational level is the highest cognitive development level defined by Piaget. It is the ability to deal with abstractions, form hypotheses, solve problems systematically, and engage in mental manipulations" (Biehler and Snowman, 1986, p. 63). Piaget's theory indicates that formal operational thinking abilities normally develop around age 12 (Chiapetta, 1976). It is at this age that some students begin to move from concrete thinking to logic/abstract thinking.
A precondition to formal operational reasoning development is to understand biconditional reasoning, such as "if and only if" logic (Lawson, 1983). This is significant for procedural programming. Much of procedural programming logic uses biconditional reasoning.
Research has shown formal operations, such as thinking in abstractions and logically, develop at different ages or not at all (Griffiths, 1973; Schwebel, 1975; Pallrand, 1979; Bastian et al., 1973; Epstein, 1980). Many high school students (and adults) fail to attain full formal operational thinking (Renner & Lawson, 1973; Renner et al, 1978). Several studies have shown that a majority of adults, including college students and professionals, fail at many formal operational tasks (Petrushka, 1984; Sund, 1976). Many college students fail to attain full formal operational thinking (Griffiths, 1973; Schwebel, 1975; Schwebel, 1972).
Procedural Programming and Piaget's Cognitive Development
A procedural programming language is "characterized by these three properties - the sequential execution of instructions, the use of variables representing memory locations, and the use of assignment to change the values of variables" (Louden, 1993). The data is kept separately from the procedures (as in COBOL). …