Logo Programming and Problem Solving
Logo Programming and Problem Solving Roy Pea
The great excitement in education about children’s learning to program with microcomputers is easy to understand. But it is of partic- ular interest to me as a developmental psychologist that such excite- ment has had less to do with the practical value of learning how to write programs for specific applications than with the belief that, through learning to program, children will develop powerful cognitive skills such as planning abilities, problem-solving heuristics, and reflectiveness on the revisionary character of problem solving itself (Pea & Kurland, 1983).
Performance on this command comprehension task was revealing: out of 100 possible points, the mean score for commands understood in terms of this measure was 34, with a huge standard deviation of 25, and only three out of the 50 children scored between 75 and 95. Roughly one- quarter of the children in each of the classes had not become very much involved in the classroom programming and did correspondingly poorly. In the case of writing different programs that would each draw a box of a certain size, we found that, while few children had difficulty writing a prc.gram consisting of a chain of direct commands (n), RT) or a tail recursive procedure, many children could not write a version of such a program using a variable, or a version of the tail recursive program with a conditional test that would stop the drawing. In the area of debugging, many children were able to locate and eliminate “surface” errors of syntax, or missing variable values, but very few found procedural errors in which the order of lines in a program was mixed up.
-> How does this compare to my analysis of students’ in-class assessments?
Rather than constructing a plan, then implementing it as a program to achieve a well-defined goal, and afterwards running the implemented plan on the computer, children would evolve a goal while writing lines of Logo programming language, run their program, see if they liked the outcome, explore a new goal if they did not like the outcome by writing a new programming code, and so on