SD 257 441 IR 011 673 Kurland, D. Midian, Ed. Title: Docuxidit Resume
SD 257 441 IR 011 673 Kurland, D. Midian, Ed. Title: Docuxidit Resume
ABSTRACT
The five papers in this symposium contribute to a
dialog on the aims and methods of computer education, and indicate
directions future research must take if necessary information is to
be available to make informed decisions about the use of computers in
schools. The first two papers address the question of what is
required for a student to become a reasonably proficient programmer.
The first--"Mapping the Cognitive Demands of Learning to Program" (D.
Midian Kurland, Katherine Clement, Ronald Mawby, and Roy D.
Pea)--reports a study of high school programming novices who
participated in an intensive summer programming course. The second
paper--"The Development of Programming Expertise in Adults and
Children" (D. Midian Kurland, Ronald Mawby, and Nancy
Cahir)--examines how expert programmers acquired their skill, with
attention to the amount of time invested and the type of resources
available when they were learning to program. The last three papers
look beyond programming to the issue of transfer. The third-- "Issues
and Problems in Studying Transfer Effects of Programming" (Kate
Ehrlich, Valerie Abbott, William Salter, and Elliot
Soloway)--examines whether learning to program helps students solve
problems in other related intellectual domains. The fourth--"What
Will It Take to Learn Thinking Skills Through Computer Programming?"
(Roy D. Pea)--discusses research on the transfer of high level
thinking skills from programming. The final paper--"Making
Programming Instruction Cognitively Demanding: An Intervention Study"
(John Dalby, Francois. Tourniaire, and Marcia C. Linn)--describes a
study in which a curriculum was designed explicitly to make
programming more cognitively challenging. A concluding commentary by
Jan Hawkins discusses the issues raised in the papers and offers
thoughts on current and future directions for research in this field.
(THC)
r-
aftl"
1%*.
tr.
4
u* DEPARTNINIT OF EDUCATION
NA NAL INSTITUTE OF EDUCATION
EDU TIONAL RESOURCES INFORMATION
CENTER (ERIC,
L. TIM, document has been reproduced
received from the person at °roam:awn
onornaung rt
1 Mena chengss hive been made to improve
reproductron wieldy
_
rooms I we.* at 000n,erie 'UMW P1 the Paco 1
moot do not oacasaailk intraimont official ME
paestion Or pokey
b_4122.4*-;.4:3 11,A4011N40-..
2
0
ti.
October 1984
3 1
DEVELOPMENTAL STUDIES OF COMPUTER PROGRAMMING SKILLS
Technical Report No. 29
Discussant:
Jan Hawkins 7
4
INTRODUCTION
D. Midian Kurland
Center for Children and Technology
Bank Street College of Education
The systematic study of how children interact with computers is only just
beginning. The fields of software psychology and developmental cognitive
science are still very much in ti,,tir infan...y. Yet schools are under
pressure right now to make dech..../ns about what they should be doing
with programming. Whether because of a belief in the educational value
of programming or fear of being left behind, in the past two years many
schools have opted to introduce some form of programming instruction into
their curriculum. In many schools it has now replaced traditional. CAI as
the primary way in which computers are being used at most grade levels.
The determination to teach programming has occurred despite the almost
total absence of information on how to teach programming, or what
aspects of programming languages children of various grade levels are
most able to understand and use effectively.
The rush to acquaint students of all ages and abilities with the basics of
computer operation and programming has engendered a raft of new
problems which extend far beyond the selection of the best hardware and
software packages. While promoters of computer programming have been
quick to make promises about its educational benefits, they are promises
that have not as yet been fulfilled through practice, nor addressed
adequately through systematic research. Instead, the field is being
driven by largely philosophical debates on the potential educational value
of letting students discover science, math, and linguistic concepts
through the medium of programming. The claims for the benefits of
programming have excited the imagination of thousands of teachers,
parents and researchers. Unfortunately, however, in moving from
educational philosophy to pedagogical practice, we find ourselves on less
fully developed ground. Educators are giving their students time to
freely explore with the computer using languages such as Logo, or are
teaching students to code in BASIC or Pascal on the grounds that
programming is a fundamental skill necessary to participate fully in the
new "information society". Yet because no one knows quite what to
expect from such instruction, nor even how or what to assess in order to
know whether the instruction is successful, programming's foothold in the
schools, particularly at the earlier grades, is tenuous, and the directions
it should be taking unclear.
The papers in this collection fall into two categories. The first two
papers address the question of what is required for a student to become
a reasonably proficient programmer. The last three papers look beyond
programming per se to the difficult issue of transfer. Specifically, they
ask whether programming promotes the development of generalizable
thinking skills or mathematical concepts.
The first paper by Kurland, Clement, Mawby and Pea reports on a study
of high school programming novices who took part in an intensive summer
programming course. This paper examines some of the potential cognitive
prerequsites for being able to program well. The second paper by
Kurland, Mawby and Cahir reports on an interview study with expert
child and adult programmers. This paper examines how expert
programmers acquired their skill, with particular attention to the amount
of time they invested and the type of resources they had available when
they were learning to program.
4
8
MAPPING THE COGNITIVE DEMANDS OF LEARNING TO PROGRAM
D. Midian Kurland, Catherine Clement, Ronald Mawby and Roy D. Pea
Center for Children and Technology
Bank Street College of Education
Introduction
Vociferous arguments have been offered for incorporating computer
programming into the standard pre-college curriculum (Pale .t, 1980;
Luehrmann, 1981; Snyder, 1984). Many parents and educators believe
that. computer programming is an important skill for all children in our
technological society. In addition to pragmatic considerations, there is
the expectation among many educators and psychologists that learning to
program can help children develop general high level thinking skills
useful in other disciplines such as mathematics and science. However,
there is little evidence that current approaches to teaching programming
bring students to the level of programming competence needed to develop
general problem solving skills, or to develop a model of computer
functioning that would enable them to write useful programs, Evidence of
what children actually do in the early stages of learning to program (Pea
& Kurland, 1984; Rampy, 1984) suggest that in current practices,
programming many not evoke the kinds of systematic, analytic, and
reflective thought that is characteristic of expert adult programmers (cf.
Kurland & Cahir, 1984).
2 0
writing and debugging (See Pea and Kurland, Different
1983).
combinations of activities will entail different cognitive demands. For
example, a large memory span may facilitate the mental simulations
required in designing and comprehending programs. Or analogical
reasoning skill may be important for recognizing the similarity of different
programming tasks and for transferring programming methods or
procedures from one context to another. An adequate assessment of the
cognitive demands of programming will depend on analyses of the
programming activity and examination of the demands of different
component processes.
Specifyink Levels of Programming Expertise
In assessing the cognitive demands of programming, specifying the
intended level of expertise is essential. Different levels of expertise will
entail different cognitive demands. In many Logo programming
classrooms, we have observed children engaging in what we term brute
force "paragraph" programming, or what Rampy (1984) has termed
product-oriented programming. This style is analogous to so-called
spaghetti programming in BASIC. When programming, students decide on
desired screen effects, then write linear programs, lining up commands
that will cause the screen to show what they want in the order they want
it to happen. Students do not engage in problem decompositie or use
the powerful features of the language to structure a solution to the
programming problem. For example, if a similar shape is required several
times in a program, students will write new code each time the effect is
required, rather than writing one general procedure and calling it
repeatedly. Programs thus consist of long strings of Logo primitives that
are nearly impossible, even for the students who have written them, to
read, modify or debug. Though students may eventually achieve their
goal, or at least end up with a graphics display they are content with,
the only "demands" we can imagine for such a linear approach to
programming are stamina and determination.
Thus, as a first step in determining what cognitive demands there are for
learning or doing programming we need to distinguish between linear and
modular programming (or between learning to program elegantly and
efficiently, in contrast to a style emphaaizing the generation of effects
without any consideration of how they were generated.)
1984)
Method
To investigate empirically the relationship between these cognitive abilities
and programming competence, we studied novice programmers learning
Logo. Logo was chosen in part because of the high interest it has
generated within the edx,cational community, and in part because the Logo
language has specific features which support certain important thinking
skills. For example, the strategy of problem decomposition is supported
by Logo's modular features. Logo procedures may be created for each
subpart of a task. The procedures may be written, debugged, and saved
as independent, reusable modules and then used in combination for the
solution of the larger problem. Efficient, planful problem decomposition
in Logo results in flexibly reuseable modular procedures with variable
inputs. While the same can be true of languages such as BASIC, the
formal properties of Logo appeared to be more likely to encourage
structured programming on the part of the student.
Participants and Instructional Setting
Participants in the present study were 79 8th-l1th grade female high
school students enrolled in an intensive six-week summer program
designed to improve their math skills and introduce them to programming.
The goal of the program was to improve students' mathematical
understanding while building up their sense of control and lessening their
anxiety about mathematics. (See Confrey, 1984 and Confrey, Rommney &
Mundy, 1984 for details about the affective aspects of learning to
program.) Those admitted to the program r, e students who were
generally doing very well in school and had high career aspirations, but
who were doing relatively poorly in mathematics and, in some cases,
experiencing a great deal of math related anxiety.
Each day, the students attended two 90 minute mathematics classes as well
as lectures and demonstrations on how mathematics is involved in many
aspects of art and science. Each student also spent 90 minutes each day
in a Logo programming course. The teachers hoped that the programming
experience would enable students to explore mathematical principles, and
lead them to new insights irto mathematics. The guiding philosophy of
the program, which influenced both the mathematics and Logo instruction,
was constructivist. This Piagetian inspired philosophy of instruction
holds that a person's knowledge and representation of the world is the
result of his/her own cognitive activity. Learning will not occur if
students simply memorize constructions presented by their teachers in the
form of facts and algorithms. Thus, students were expected to construct
understandings for themselves through their direct interactions and
explorations of the mathematics or programming curriculums.
The Logo instruction was structured around small classes with the
students working primarily in pairs, i.e. two students to a computer.
There was a six to one student-teacher ratio, and ample access to
printers and resource materials. In order to provide structure for the
students' explorations of Logo, the staff of the program created a detailed
curriculum designed to provide systematic learning experiences involving
the basic Logo turtle graphics commands and control structures. While
the curriculum itself was detailed and carefully sequenced, the style of
classroom instruction was influenced by the discovery learning model of
Papert (1980). Thus students were allowed to work at their own pace
and were not directly accountable for mastery of specific concepts or
commands. The instructors saw their primary role as helping the
students develop a positive attitude towards mathematics and
programming. In this respect, the program seemed by our observations
to have been very successful.
The emphasis of the course was on learning to program and doing turtle
geometry. While the teachers repeatedly drew attention to underlying
mathematical principles at work in assignments given, they also tried to
bring students to an adequate level of programming proficiency. Thus
the curriculum was designed around a series of "challenges" (i.e.
worksheets) that students were to work through in a systematic order.
These challenges included creating graphics using basic Logo primitives,
unscrambling programs, predicting program outcomes, coordinating class
projects to produce large-scale programs, and exploring properties of
degrees, radiants, and circles. It was assumed that the students would
find the challenges and the opportunity to work at the computer
enjoyable, and therefore largely self-motivating.
Measures
We were interes*zd in how their level of programming proficiency would
relate to the spet..,fic cognitive abilities which our analysis of the demands
of programming had indicated to be potentially important for mastery. We
therefore developed measures cognitive demands and programming
proficiency to use in this study.
Demands Tasks
Two demands tasks were developed and administered to students at the
beginning of the program. The first, Procedural flow of control task,
was designed to assess students' ability to use procedural reasoning to
follow flow of control determined by conditional relations. Students had
to negotiate a maze in the form of an inverted branching tree (see Figure
1). At the most distant ends of the branches were a set of labeled
goals. To get to any specific goal from the top of the maze students had
to pass through "gates" at each point where a branching occurred. The
- 10 - ld
conditions for passage through the "gates" required satisfying either
simple or complex logical structures (disjunctive or conjunctive). Passage
through gates was controlled by varying sets of geometric "tokens" that
the student was presented with at the beginning of each problem. Each
gate was marked with the type or types of tokens that were required to
gain passage through it. For example, it students were given a circle
token, they could pass through a circular gate, but net a square gate.
If they had both a square and triangle token, then they co'.ild pass
through a joint square-triangle gate but not a joint square-circle gate.
The task had two parts. In the first, students were presented with five
problems in which they had to find paths through the maze that did not
violate the conditions for passage through the gates. Students were
given sets of tokens and asked to discover all possible goals that could
be reached with that set.
The task was designed using non-english symbolisms so that verbal ability
and comprehension of the "if-then" connectives would not be a
confounding factor. In natural is nguage, if-then is often ambiguous, and
its interpretation dependent on context. We did not include standard
tests of the if-then connective in propositir ial logic because computing
1J
CQ
ik.
truth values as these tests require is not strictly relevant to following
complex conditional structures in programming.
The students were instructed to select five of the seven figures and write
Logo programs to produce them. The task called for students first to
indicate the five figures they would write programs for, and then to
number them in the order the programs would be written. This
instruction, it was hoped, would encourage the students to plan before
they began to write their programs. Students were free, however, to
alter their choice of figures and/or order once they began to code. For
each of their five programs, they were to write the code and give the
run command needed to make the program produce the figure.
am
oni i ia
ate
Mena WI I Sung:
laspermsa swag Ng MINN
no mum um
'
111,81116411O8
in
i mu ma
MIR MO
Jilin: a ommimpeasso
me WIMP
me
11110§MIUSOOSIMIEMS
cwmgmfaXMOWOOMMIS WI
IMMO US
MINIM
sallarnallia umasAMMISMOUSOURO genops4 Us
mmommangESUMBUSIMOSOUSSMOICAOMENOW a
WWII ,
ITAIRTIMASPUSErall,:=1 11111111WI
Illiminitsuldiiiiiiiiiii1111111111111111
...
i 1111111111111
EMS .IM 111
Itsimast iumegus.
1111111111111
I
1111=11 ammusammonse 11111111Mlesumwm
111111111:11:1121111111.4111111111 Willi'
IfiligNI11111111111111111111:14g111111111
wassumummusammumesommennumasousal11111111:::
iiiiini1111111111111111M0111111/111
11111111111111/1111111°""""I
WallininniUMUMILIMIIIMMUMMEI
gmemensammummommummommossommannewaramommaluat
mils:::::::::::::::::::::::::::::::::::::::::!:::
Emma
masimmftsmsussammummummunmenum............imismos
1111111111111111111:1: IIIIIIIII
R"..."1"28.11177:allidiiiiiiiirain
"Mina 11101
RUMWOMMUsomensmaSSIONWOO:UMMEMSIMOM:SOmmuuMM
immumatimummisinsummunilliiir
":77:Enegassulle.. I
num min wilignillig
SOMISSMOSimmumlle
mum
MOUUMMUMUMMOMMOU
MOOMMUOURSOUSUOMOBERUMUSUROMROMM
MOSMOMMOSUMMROU
mopommummmn.wOMMMOOSUOMOMS
minummiummatmommesimmummum
mum
rtr
The task was designed to encourage planning for modular procedures
which could be reused across programs. In fact, figures B, C, E, F,
and G could be programmed by writing just three general purpose
procedures. An optimal solution would be to write a procedure with two
variable inputs to produce rectangles, a "move -ver" procedure with one
input, a "move up" procedure with one input, and then to use those
three procedures in programs to produce figures B, C, E, F, and G.
Also, Figures B and G could be most efficiently produced using recursive
programs, though recursion was not necessary.
Figures A and D were included as distractor items. Unlike the other five
figures, they were designed not to be easily decomposed and cannot be
easily produced with code generated for any of the other figures.
Procedure
The demands measures were administered to the students on the first day
of the program along with a number of mathematics, problem solving and
attitude measures. (See Confrey, 1984 for a discussion of the attitude
measures.) Students were tested together in a large auditorium.
Instructions for each test were read by the experimenters who monitored
the testing and answered all questions. Students were given 17 minutes
for the procedural reasoning task and 12 minutes for the debugging task.
In the final week of the program, the students were administered the
Logo proficiency test. Testing was done in groups of approximately 30
students each. Again the experimenters gave all instructions and were
present throughout the testing to answer students' questions. Students
were given 30 minutes for the production task and 15 minutes each for
the comprehension tasks.
Results
Programming Proficiency Tasks
To use Logo as a tool for high level thinking one must use relatively
sophisticated Logo constructs, such as procedures with variable inputs
and super procedures which call subprocedures. To write and
understand Logo program- using these language constructs one needs to
understand something about the pragmatics of writing programs as well as
developing a good grasp of Logo's control structure, that is, how Logo
- 17 -
25
Demands of Programming
FIGURE 3
First Logo Comprehension Task with Correct Drawing of
the Resulting Screen Effects
TO FLAG :X
FORWARD 15
BOX :X
CENTER
END
TO BOX :SIDE
REPEAT 4 [FORWARD :SIDE RT 90]
END
TO TWOFLAGS :X
E
CENTER
FLAG 15
PENUP
RT 90 FORWARD 20 LT 90
PENDOWN
FLAG :X
END
26
-18-
Demands of Programming
FIGURE 4.
First Logo Comprehension Task with Correct Drawing of
the Resulting Screen Effects
TO MID :X :Y 1
BOT :X :Y
RT 90
ROT :X :Y
END
TO TOP :X
IF :X 5 RT 90 BACK 10 STOP
REPEAT 4 [FORWARD :X RT 90]
FORWARD 5 LT 90
TOP :X 10
END
TO ROBOT :X :Y
HT
MID :X :Y
BACK 15 LT 90
BOT :X - 10 :Y - 15
RT 90 PU FORWARD 50 PD
TOP :Y - 10
END
determines the order in which commands are executed. The empirical
question addressed here is whether students develop such an adequate
understanding as the result of five weeks (approximately 45 hours) of
intensive Logo instruction.
Comprehension tasks. The assessments of Logo proficiency given at
the end of the course indicated that mastery of Logo was limited. On the
TWOFLAGS task, 48% of the students correctly drew the first flag, which
required simulating the execution of TWOFLAGS through its call to FLAG
in line 2. Then 21% correctly drew the second flag with 19% of the
students correct on both flags, showing that in almost all cases
performance way cumulative.
A third of the students were partially right on the second flag. Analysis
of errors on the so- .id flag by these students indicated that more of
them had trouble following the flow of control than keeping track of the
values of the variables. An error in place on the second flag suggests
that the student's simulation did not execute all the positioning lines of
code, especially the call to CENTER in the last line of FLAG. This
reveals an error in flow of control. An error in size on the second flag
suggests that the student did not correctly pass the variable from
TWOFLAGS to FLAG to BOX.
On the ROBOT task, 65% of the students correctly drew the body of the
robot, which involved simulating the execution of ROBOT through its call
to MID. Then 37% correctly drew the leg, which involved following the
execution through ROBOT's call to BOT in line 4. TOP is the recursive
procedure which, with inputs to ROBOT of 30 25, would execute three
times. The first time TOP draws the head, the second time it draws the
nose, and the last time it draws the mouth, and then stops. Finally, 16%
of the students correctly drew the head, 13% succeeded with the nose,
and only 2% were able to follow the program execution all the way through
to the mouth. The cumulative percentages are within 3% of these absolute
percentages.
zo 28
than followed the flow of control. In partially correct drawings, the
parts of the robot were more often correctly sized than correctly placed.
Some students failed to grasp the fact that since variable values are local
to the procedure call, values can be passed among procedures under
different names. Even more failed to understand the most basic fact of
flow of control: after a called procedure is executed, control returns to
the next line of the calling procedure. Inadequate models of recursion,
including conflation of recursion with Logo's REPEAT command, were
shown by some students (cf. Kurland & Pea, 1984),
Production task. Results with the production task showed limited
use of efficient programming techniques that required variables and
reusable subprocedures. While most students were able to generate the
figures, many did so following the "linear" programming style. ally 21%
of the students avoided both distractor items. An additional 35% avoided
either A or D singly. Thus 44% of the students wrote programs for both
A and D. Given a low level of programming proficiency choosing the
distractors is reasonable because, by design, linear programs for the
distractors are easier than linear programs for figures B and G (and
comparable to C and F).
Among the possible approaches to the task are "analytic" and "synthetic"
decomposition. By "analytic" decomposition, we mean analyzing a single
figure into compcnent parts, writing procedures for the parts, and
having the program call the procedures. By "synthetic" decomposition we
mean decomposition of the entire problem set into components, writing
procedures for the parts, and then having each of the five programs call
the appropriate modules of code. Note that while the five non-distractor
figures contain only rectangles, the rectangles are of different sizes.
Thus high level "synthetic" decomposition, unlike "analytic"
decomposition, requires a general procedure with variable inputs for
producing the rectangles.
The graph at the top of Figure 4 shows, for each f: are, the range of
number of commands used, the mean, and the region containing the
middle 50% of the scores. For comparison, we include the number of
_ 22ao
501 Interval
EM3111it niA 61)u:1911RM:I
nein
0 *star of oconaves in on
*tint solution of the 5-fl osge took
*seer
of
31
commands used in an optimal solution of the task as a whole. This
particular optimal solution "synthetically" decomposes the five rectangular
figures with three subprocedures, and produces the programs in the
order E, F, C, B, G.
The figures fall into three groups: the distractors A and D; C, E, and
-; and B and G. As noted, nearly half of the students chose figures A
and D, and 90% of the students who chose these figures were able to
write a Logo program to produce them. As expected from the design of
the figures, less than 10% of these programs used variables or REPEAT.
Most of the code was low level "brute force" style which could not be
reused in other programs. Thus, while the students wrote programs to
produce the figurt, their programming style gave no indication that they
were engaged in the high level thinking which Logo can support.
Fewer students chose figures B and G (60% and 31%, respectively), and
only half of these students wrote wor cable programs to produce them.
These programs used REPEAT and variables more often (REPEAT: 49% in
B, 68% in G; variables: 43% in B, 40% in G). It seemed that the more
skilled students chose these figures and did them quite well. Of the
others who chose these figures, about half the students did not attempt
to use variables, and half used variables incorrectly. Again, because few
students did "synthetic" decomposition, most programs had more than an
optimal number of commands.
No one tried to write a recursive program for any of the figures except B
and G, where recursion is appropriate. But fewer than 10% of the
- 24 -
32
students who chose figure B or G wrote correct recursive programs.
This powerful Logo construct was conspicuous in its absence.
What factors may have kept these students from using the powerful and
elegant features of Logo? It is unlikely that students did not notice the
geometrical sirnilarit:r among, for instance, Figures C, E, and F. But to
do a "synthetic" decomposition of the task one needs to write procedures
with variables. Moreover, coordinating subprocedures in a
superproceeure requires a good understanding of Logo flow of control.
Performance on the comprehension tasks showed that students had a fair
understanding of individual lines of Logo code, but had difficulty in fact
in following program flow of control. Thus to produce elegant Logo
programs one needs to comprehend Logo variables and control structure.
Cognitive Demands Tasks
There was a fairly broad range of performance on the demands tasks
(Clement, 1984). Many students showed moderate or high levels of
reasoning skills as assessed by these tasks, and a few found the tasks
fairly difficult.
Procedural flow of control task. The two parts of this task were
examined individually. The first part included a series of problems for
students to solve. Each problem posed a different set of constraints
and/cr goals for going through the maze. Some difficult problems
required more exhaustive testing of conditions than others (i.e., the
given tokens satisfied many nodes early on). Some had benefits for
using alternate strategies, such as searching from the bottom up rather
than top down. Performance was relatively low on the more difficult
problems (30-40% correct as opposed to 55-70% correct on the less r-)mplex
problems). This indicated that when many possibill.ies had to be
considered, and there were no easy shortcuts to reduce the number of
possibilities, students had difficulty testing all conditions. Doing so
required careful attention to the structure of the maze and the sequential
relationships between the gates.
In the second part, there were three levels of efficiency among correct
routes corresponding to the number of tokens required to successfully
reach the goal. Only 14% of the students on the first problem and 21% of
the students on the second problem found the most efficient route, while
43 of the students on the first problem and 79% of the students on the
second were unable to reach the goal at all. Thus few subjects tested
the hypotheses needed to discover the most efficient route.
Debugging task. Table 1 shows the percent of students detecting
and correcting each of the four types of bugs in the task. As shown,
inaccurate information and temporal bugs were easiest to detect and
correct (72$ to 91% success). It was more difficult to successfully correct
the ambiguous instructions. Only 48$ of the students were able to write
instructions that were explicit enough for a driver to choose correctly
among alternate routes. For the lines with embedded bugs only 21$ h of
the subjects fully corrected the instructions; 40$ caught and corrected
one bug but not the other.
Results indicate that subjects had little difficulty detecting first order
bugs and correcting these when the corrections were simple, for example,
changing a number or direction to turn. However, when subjects had to
be very explicit and exhaustively check for ambiguity and for additional
bugs they were less successful.
Relationship of the Demands Measures to Programming Proficiency
Analysis of the relationship between these demands tasks and the
assessments of programming proficiency yielded an interesting set of
results. As can be seen in Table 2, the demands measures correlated
moderately with composite scores on both tests of programming
proficiency.
DEBUGGING TASK
(S of students; Nu7?)
Procedural
Reasoning Part 1 A
Procedural
Reasoning Part 2 B .34** --
Debugging
Task C .38*** .27**
Math
Level D .51*** .304** .42***
Production
Proficiency E .45*** .19* .394* .38***
Comprehension
Proficiency F .54*** .50*** .45*** .59*** .26*
Teacher
Rating G .30** .20* .22* .37*** .26** .54*** --
P4.05
** p4.01
* *IP P4.001
were not highly correlated. However, few students engaged in either of
these forms of programming. Thus, because of the floor effect it is
difficult to know how to interpret this lack of a significant correlation.
Interestingly, though few used the more advanced programming
techniques, many students manifested high levels of reasoning skills on
the demands measures. Their demonstrated logical abilities, however, were
not sufficient to enable employment of sophisticated programming
techniques. Other knowledge specific to the programming domain would
appear to be required in addition to the underlying cognitive capacity to
reason in the ways we assessed.
Discussion
The present study was aimed at identifying the cognitive demands for
reaching a relatively sophisticated level of programming proficiency. We
examined students learning Logo in an instructional environment that
stressed self discovery within a sequence of structured activities, but
with no testing or grading. Given this setting and amount of instruction,
we found students for the most part managed to master only the basic
turtle graphics commands and simpler aspects of the program control
structure. While they gained some understanding of such programming
concepts as procedures and variables, most did not develop enough
understanding of Logo to go beyond the skill level of "effects
generation". Thus, for example, though they used variables within
procedures, they seldom passed variables between procedures, used
recursion, or reused procedures across programs. Those aspects of
programming requiring a more sophisticated understanding of flow of
control and the structure of the language were apparently not mastered.
Without this understanding students cannot use the powerful Logo
constructs which engage and presumably encourage the development of
high level thinking skills.
- 30 -
many students does not require that they ase formal or systematic
approaches in their work. Programming can .nvoke high level thinking
skills, but clearly such skills are not necessary for students to get by in
the early stages o: writing programs to generate desired screen effects.
Conclusions
The field of computer education is in a period of transition. New
languages and more powerful implementations of old ones are rapidly being
developed, and more suitable programming environments engineered for
both the new and established languages.
Our results indicate that certain reasoning abilities are linked to higher
levels of achievement in learning to program, but that most students often
opt for a programming style which negates the need for engaging in high
level thinking or planful, systematic programming. Thus, the demands
issue remains clouded by inherent characteristics of interactive
programming languages, which promote the e of a trial and error
approach to program prL auction, and the particular characteristics of the
instructional environment in which learning ,ccurs.
One the one hand, much more work is needed to discover what kinds of
instructional environments and direction are best suited for achieving
each of the many goals educators may have for teaching programing to
children of different ages. We are only beginning to understand how to
teach programming. In fact it still comes as a surprise to many parents
and educators who read Mindstorms (Papert, 1980) too literally that
programming has to be taught at all. But the unguided, free exploration
approach, while possibly effective for some purposes, does not lead many
students to a deeper understanding of the structure and operation of a
programming language, and thus does not lead them to use or develop
high level thinking skills such as problem decomposition, planning, or
systematic elimination of errors.
On the other hand, our ability to design more effective instruction will
depend in part on further experimental work to tease apart the role
various cognitive abilities play in influencing students' ability to master
particular programming commands, constructs and styles. Our knowledge
of the cognitive demands of operating with a language should help focus
our instruction and to identify those aspects of programming which will be
difficult for students of different age and ability levels. While the
relation found here between conditional and procedural reasoning ability
and programming suggests some important skills, our conjecture is that at
a more fundamental level, these tasks correlated with programming
proficiency because they required the ability to reason in terms of formal,
systematic, rule governed systems, and to operate within the limitations
imposed by them. This, we feel, may be the major factor in determining
whether students will obtain expert levels of proficiency. What remains
to be determined is whether programming at proficiency level below that
of the expert require and/or help develop high level cognitive skills and
abilities.
REFERENCES
Confrey, J. (1984, April). An examination of the conceptions of
mathematics of youngs women in high school. 'Paper presentedJ7117
annual meeting of the American Educational Research Association,
New Orleans, LA.
Confrey, J.; Rommney, P.; & Mundy, J. (1084, April). Mathematics
anxiety: A person-context-adaptation Model. Paper presented at ta.
annual meeting of the American tducaignal Research Association,
New Orleans, LA.
Hawkins, J. (1983). Learnin Loo to ether: The social context. (Tech.
Rep. No. 13). ew or : Ban treet o ege of Education, Center
for Children and Technology.
Kurland, D.M. & Cahir, N. (1983). The development of computer
ro rammin ex ertise: An interview stud of ex ert adult
programmers. i npu s e manuscript, ank Street lege o
education, Center for Children and Technology.
Kurland, D.M., Mawby, R., & Cahir, N. (1984, April). The development
of programming. expertise. Paper presented at the annual meeting of
the American Educational Research Association, New Orleans, LA.
Kurland, D.M. , & Pea, R.D. (in press). Children's mental models of
recursive Logo programs. Journal of 'Educational Computing
Research.
Luehrmann, A. (1981) Computer literacy: What should it be? Mathematics
Teacher, 74.
Mawby, R. (1984, April). Determining student's understanding of
programming concepts. Paper presented at the annual meeting of
the American Educational Research Association, New Orleans, LA.
Mawby, R., Clement, C., Pea, R.D. , & Hawkins, 3. (1984). Structured
interviews on children's conceptions of computers. (Tech. Rep.
\7=9). New fork: Bank Street College of Education, Center for
Children and Technology.
Pea, R. D. & Kurland D.M. (1983). On the cognitive prerequisites of
learning computer _programming. (Tech. Rep. No. 18). New York:
Bank Street College of Education, Center for Children and
Technology.
Pea, R. D & Kurland D. M. (1984) . Logo programming and the develop-
ment of plannin& skills. (Tech. Rep. No. 16) . New York: Bank
Street College of -Education, Center for Children and Technology.
Papert, S. (1980). Mindstorms. New York: Basic Books.
Rampy, L.M. (1984, April). The problem solving st le of fifth graders,
using Lo o. Paper presented at the annual meet ng o the ' merman
ucat on Research Association, New Orleans, LA.
Rogoff, B. & Wertsch, J. V. (Eds. ). (1984). Children's learning in the
"zone of proximal development". New Directions for Child
Development, Number 23. San Francisco, Ca: Jossey-Bass.
Snyder, T. (1984, June). Tom Snyder: Interview. inCider, pp. 42-48.
Werner, H. (1937). Process and achievement. Harvard Educational
Review, 7, 353-368.
THE DEVELOPMENT OF PROGRAMMING EXPERTISE IN ADULTS AND CHILDREN
D. Midian Kurland, Ronald Mawby, & Nancy Cahir
Center for Children and Technology
Bank Street College of Education
4
their ideas, what they did when they get stuck, and what role other
programmers and/or supervisors played in their work.
Results
A detailed report of the results from these questionnaires and interviews
is available elsewhere (Kurland & Cahir, 1984). Here we would like to
comment on three of the more striking themes which emerged from the
interviews and, where appropriate, relate these observations of expert
programmers to previous findings about novices.
First, there was little consensus among the programmers over what
specific characteristics or abilities were important for learning to
program. Most indicated that being logical, systematic, and curious about
how a formal system operated were the most important traits required to
excel at programming.However, the programmers also mentioned a wide
variety of other traits or abilities that they believed contributed to
becoming a successful programmer. This list included being creative,
flexible, smart, personable, dedicated, planful, disciplined, organized and
patient. Several emphasized that these characteristics were entering
requirements, not outcomes to be expected from learning to program.
Most indicated that they were logical and disciplined thinkers before they
ever began programming and simply found programming compatible with
their style of thinking. This view of the relationship of programming to
thinking contrasts sharply with one of the major tenets of educational
computing, namely that learning to program (like latin and geometry in
past generations) is good mental exercise for developing logical thinking
processes. The fact that these programmers claimed to have been logical
thinkers prior to learning to program does not preclude the possibility
that learning to program may for others help promote this style of
thinking. However, it does suggest that educators must look more closely
at the cognitive styles of novice programmers, and tailor instruction to
take advantage of, or compensate for, students' preferred thinking
styles.
51
"Interruptions can be unfortunate. It can take hours after a
telephone call! When I am interrupted at an unfavorable time
where many threads run together and I am not completely
finished yet, I have to start all over."
We have observed that many novices do little planning of this type (Pea &
Kurland, 1984), and have little idea about what kinds of problems they
and spend almost all of their programming time writing code, In
contrast, these expert programmers viewed coding as much less central to
the programming process. They reported that coding, the actual writing
of programs, took only 20-25 percent of the total time they spent
programming. The rest of the time was spent writing specifications for
programs, planning and designing procedures. and algorithms,
systematically debugging and testing code they had generated, and in
some cases documenting their code to help other programmers understand
it. Just as knowledge of grammar and spelling is not the focus of good
writers, knowledge of the rules for a computer language clearly is t the
focus of good programmers.
Finding such children was not easy. Children who knew some
programming or who spent thousands of hours playing sophisticated
computer games were quickly identified, but children who were deeply
involved with programming were much harder to find. We defined a
programming expert as any child who had (1) written a commercially
published program: or (2) had produced programs or utilities that others
(e.g., their school or friends) were using; or (3) who had taught
programming courses; or (4) in some equivalent way was clearly capable
of producing software usable by others. We attempted to screen out
children, whose programming consisted solely of short programming
exercises produced for their own amusement or interest.
We analyzed the examples of their work and asked them to write several
programs for us in order to verify that they were knowledgeable
programmers. During this phase of the study three of the original nine
participants were dropped from the study because they appeared to lack
sufficient expertise. For example, one child showed us a program he had
written that looked impressive when run, but examination of the code
showed that it had been written in an inelegant, brute force manner, with
the exception of one routine which, it turned out, the child's tutor ha t
provided. We also dropped a child who had experience doing a wide
- 12 - 5 3
variety of activities with computers, such as using Visicalc to keep his
comic book collection organized. However, on closer scrutiny it was
apparent that his father did most of the organizing and conceptual work
while he served as helper. The third child we dropped was the one
female programmer in the group. She used the computer primarily as an
artistic medium for producing pictures. Her programming was restricted
to fairly elementary routines in the Pilot language to generate graphic
images. Thus, though these three children had some knowledge of
programming and were interesting in other ways, they were clearly not
expert programmers of the type required for the purposes of the present
study, and so were not included in our final sample.
Results
The final group of clearly knowledgeable programmers consisted of six
very bright boys between the ages of 9 and 14 (see Table 1 below) from
middle to upper income homes. Though these six programmers were much
more knowledgeable about programming than children in any of the school
samples we had previously studied, they still displayed a very wide range
of programming ability and understanding. However, all appeared to
have a reasonably deep understanding of computer languages that went
beyond simply knowledge about individual commands.
- 14 -
On a second task, the boys were asked to write a program to determine
how many ways there are to make change for a dollar using nickels,
dimes and quarters. This problem requires the ability to develop an
algorithm (i.e., for testing all possible ways to figure change) plus the
ability to use conditionals and stop rules. Five of the six boys handled
the problem well. Three did it with no help, though again there were
large differences in speed. Two needed one or two small hints on how to
formulate the rule for testing whether a particular combination of coins
satisfied the goal (i.e. , 5*nickels + 10*dimes + 25*quarters = 100). The
last child developed an interesting approach to the problem based on
randomly selecting collections of coins to test, but his program failed to
meet the stated goal of printing out all possible combinations. While his
p...ogram would eventually, through random search, find all the
combinations, he had no provision for testing whether a combination was a
new one or one that had been previously found.
It was interesting to note that all three boys who succeeded without help
tried to go beyond the simple requirements of the task and attempted to
find an optimal solution. One found a tight algorithm that would get the
answer by making the fewest number of comparisons possible. Another
said that he would improve his BASIC program by writing it in assembler
so that h would run faster. The third was distressed at the "slowness"
of his algorithm but could not discover a faster one. This search for the
elegant solution was something we have rarely encountered in novices,
but was commented upon frequently in our interviews with the expert
adult programmers.
While the boys all did some programming in school (and one helped teach
a course in BASIC), they all claimed that they learned nothing about
programming in school since no one in school knew as much as they did.
Their schools did not have the equipment, books, manuals or
knowledgeable people required to help them with their programming
problems. Thus they relied on the programmer's underground and/or
expert programmers (sometimes peers) outside of school for guidance and
assistance.
Not surprisingly, all the boys owned one or more computers where they
did the majority of their programming. In each case, there was a
significant older person--parent, high school tutor, adult friend--who had
provided substantial early encouragement and in some cases, instruction
on a one-to-one basis. The three best programmers in the group (who
were also the oldest) had spent the most time programming, and had the
most access to knowledgeable experts. One boy, for example, spent
hours every day in the computer center of the university where his
mother worked. While there he programmed on the university mainframe
with the help of the people at the center. Another was tutored by an
adult friend with a background in electronics. Together they built
electronic devices and then worked together on programming projects.
Thus, in contrast to the situation in many classrooms, these boys began
in a rich programming environment with ample support materials and, most
'importantly, knowledgeable experts to help guide them through their early
learning.
The appeal of programming for these boys appeared to stem from several
sources. One was the sense of power it provided. For example, one boy
stated that he liked programming because: "Well, the feeling of power,
definitely. Going into the software underground. So that if I write
something good it will probably be copied and recopied for lots of people
in America." Others commented that they liked the challenge and the
feeling experienced when they succeeded in making a complex program
59
- 16
work. However, the domir Int motivator appeared to be social.
Programming played an important role in the social lives of all the boys.
All six reported that many or most of their friends were involved with
computer activities of one sort or another. Programming provided a
common bond with their peers and with adults with whom they shared
mutual interests. In addition, two of the boys had become involved with
local computer bulletin board systems and communicating with other
programmers through the their modems. One had programmed his own
bulletin board system system for a VIC 20 computer and ran it several
hours per day out of his bedroom. He claimed to have met most of his
friends, including a current girl friend, over the modem. Thus, the
boys not only found programming cognitive gratifying, it also gained them
entry into a social network whose purpose went beyond simply helping
each other with technical problems.
Conclusion
What conclusions can be drawn from these interviews with expert
programmers? Three factors of relevance to schools have already been
considered. First, learning to program well, like becoming expert in any
other domain, takes a tremendous amount of time and dedication.
Hundreds of hours per year were spent by both the adult and young
programmers. For the young programmers, even this much time had not
made them all fluent programmers. Several struggled over our assigned
programming tasks and took a lot of time developing solutions. It seems
clear that unless radically better methods for teaching programming are
discovered, not everyone can or should become proficient in the general
purpose programming languages available today.
Third, although all the adults and children were good at mathematics,
they seemed to view their abilities in mathematics and programming as
stemming from a more fundamental interest in logical, formal systems.
Similarly, we were intrigued by the observation that many of the
programmers in both age groups were accomplished musicians. We
speculate that there is a particular cognitive style that makes
understanding and controlling an elegant rule governed system such as
music, mathematics, chess, physics or programming highly appealing for
some people. While this is just speculation, it would be interesting to
pursue this point more systematically in future research with novice and
expert programmers.
We sensed from these programmers that programming did not teach them
to think logically or approach problems in a more systematic manner.
This 's the way they approached problems prior to learning to program,
and thus was one of the reasons why they found programming so
appealing. It remains an open question whether children who do not have
this cognitive style to begin with would develop a more formal and
systematic approach to problem solving as the result of learning to
program. However, it seems that many novice programmers apply their
preferred mode of problem solving to programming and thus do not
necessarily or automatically develop new ways of thinking by virtue of
their programming experiences.
id2
program, do word processing, manipulate a data base, construct elaborate
graphics, create musical compositions, or do any other of the myriad
activities for which computers are appropriate. The question thus comes
down to, what do expert programmers know that novices could know
without having to themselves become expert programmers. The challenge
that faces computer educators today is to identify these concepts and find
ways to teach them, whether it is through programming or other
computer-related activities.
63 - 20
REFERENCES
Dalbey, J., & Linn, M.C. (1984, April). Making pre-College instruction
in programming cognitively demanding: issues and interventions.
"Paper presented at the American Educational Research Association
Annual Meeting, New Orleans, LA.
Johns, R.P. (May 28, 1984) Don't judge a programmer by expertise alone.
Computerworld, 18.
Kurland, D.M. & Cahir, N. (1984). The development of computer
programming expertise: An interview study of expert adult
Unpublished manuscript, Bank Street College of
Education,
Education, Center for Children and Technology.
Kurland, D.M., Clement, C., Mawby, R. & Pea, R.D. (August, 1984).
Mapping the cognitive demands of learning to program. Paper
presented at the Conference on Thinking, Cambridge, MA.
Kurland, D.M., Mawby, R., & Cahir, N. (1984, April). The development
of rammin Paper presented at the annual meeting of
Research Association, New Orleans, LA.
Mawby, R. (1984, April). Determininstudent's understanding of
programming concepts. Paper the anntiriIneetink
the American Educational Research Association, New Orleans, LA.
Molzbeeger, P. (1983)Aesthetics and programming. (in A. Janda (Ed),
Chi'83 Conference Proceedings. Boston, MA.: ACM. (pp. 247 -249).
Pea, R.D. & Kurland D.M. (1983). On the cognitive prerequsites of
learning computer programming. (Tech. Step. No. 18). New York:
Bank Street College of Education, Center for Children and
Technology.
Pea, R.D. & Kurland D.M. (in press) On the cognitive effects of
learning computer programming: A critical look. New Ideas in
Psychology.
Sheingold, K., Hawkins, J. & Kurland, D.M. Classroom software for the
information age. (Tech. No. 23). New York: Bank Street
Rep.
College of Education, Center for Children and Technology.
Soloway, E., Erlich, K., Sonar, ,T., & Greenspan, J. (1982) What do
novices know about programming? In B. Sneiderman & A. Badre
(Eds.), Directions in human-computer interactions. Hillsdale, NJ.:
Aplex.
Watt, D. (1984). Creating Logo cultures. Pre-Procedings of the 1984
National Logo Conference, 25-29.
60
- 22
ISSUES AND PROBLEMS IN STUDYING
TRANSFER EFFECTS OF PROGRAMMING
Kate Ehrlich
Honeywell Information Systems
Waltham, Mass.
Valerie Abbott
Yale University
Dept. of Psychology
New Haven, Ct.
William Salter
Bolt, Beranek, Newman, Inc.
Cambridge, Mass.
Elliot So loway
Yale University
Dept. of Computer.Science
Address correspondence to:
New Haven, Ct.
Kate Ehrlich
Honeywell Information Systems
200 Smith St.
Waltham, Ma. 02154
This work was supported by the National Science Foundation, under NSF Grant IST-81.14840.
66
Ehrlich, Abbott, Salter, Soloway Page 1
ABSTRACT
It is commonly believed that programming helps students develop new thinking skills that they
can use to solve problems in a variety of problem-solving domains. We examined whether
programming skills transfer by testing a group of college students before and after they had
taken their first, introductory programming course. We also tested a group of students who were
not enrolled in any programming course. The study focused on procedural skills. These skills are
linked to understanding the steps that are needed to solve a problem as contrasted with simply
memorizing formulae. Many students fail to adopt a procedural, active style of problem-solving.
The study examined whether students can transfer some of the procedural skills they develop in a
programming course to other non-programming problems. The results of the study offered some
support for the transfer of procedural skills. However, the results were not conclusive due to
unexpected problems with the control group of subjects. These results form the basis of a
discussion of issues and problems related to studying transfer effects from programming.
Ehrlich, Abbott, Salter, So loway Page 2
1. INTRODUCTION
Educators are responding to the growing importance of computers and computer literacy by
stressing the need to integrate computers and, especially programming courses, into the school
curriculum. The motivation for the emphasis on computer education is two-fold. On the one
hand it is firmly believed that students who can add programming skills to their other scholastic
achievements have a greater chance than students without these skills of finding employment
when they leave school. On the other hand, the emphasis on giving students training in
programming reflects an implicit belief that programming indirectly improves students' problem-
solving skills. This paper addresses some of the :slues raised by the second of these goals: the
educational benefits of programming. In particular, we will focus on one of the more farureaching
and contentious claims: that programming teaches students thinking skills which can be
transferred to other problem-solving domains
Some of the belief that programming skills can transfer comes from the idea that programming
emphasizes the "bow" of problem-solving. That is, programming is believed to teach students
general methods for solving problems ( [7]). Although programming is a skill that is not easily
acquired e.g., 11, 10, 9, 31, the difficulty of learning to program seems to reinforce the belief that
those students who have successfully grasped the fundamental concepts of programming have
learned some general problem-solving skills as well. Previous research on transfer (e.g., 17, 81)
offers some interesting conjectures and anecdotes to support the importance of teaching
programming to young children to better position them to master more traditional math and
science subjects. However, the empirical support for transfer is weak.
Programming constructs such as assignment statements provide powerful metaphors for the
active process of transforming input values into output values. Moreover programming teaches
students to solve problems by breaking the problem down into small components and it teaches
students how to represent the steps involved in solving a problem. In these ways, programming,
at least in procedural languages such as Pascal and Basic helps students develop their procedural
skills. Furthermore, in earlier empirical studies we found that programmers were better able to
write algebraic equations in the context of a computer program when compared to writing
algebraic equations in a standard algebra context (18, 41). Given this prima facie evidence for
the benefits of programming, we felt it worthwhile to tackle the transfer issue directly.
The study reported in this paper focused on trying to obtain evidence that procedural skills do
transfer from programming to other domains. We examined the issue by testing students on a
set of algebra word problems. The kind of problems we used were based on previous research,
which will be reviewed in the next section. This research identified a set of algebra word
problems that elicited errors that could be traced to the adoption of a descriptive rather than a
procedural approach to solving the problem. Our intent is to examine whether programming, by
Ehrlich, Abbott, Salter, So loway Page 3
2. PREVIOUS RESEARCH
Clement and his colleagues carried out a number of videotapell interviews in order to understand
the source of these errors 12]. Using this technique they were able to identify a number of
strategies which led to the reversal error. What seemed to underlie the strategies, was that
students seemed to be adopting a descriptive approach to the problem. The incorrect equation
and the descriptive approach contrasts with the correct equation S or, which needs to be
viewed as expressing an active operation being performed on one number (the number of
professors) LI order to obtain another number (the number of students).
J
Ehrlich, Abbott, Salter, Soloway
PROBLEM 1
Given the following statement:
Write an equation to represent the above statement. Use S for the number of students and P for
the number of professors.
PROBLEM 2
"At Mindy's restaurant, for every four people who order cheesecake, there are five people who
order strudel."
Write an equation to represent the above ststemcat. Use C for the number of cheesecakes
ordered and S for the number of strudels ordered.
Table 1:
EXAMPLES OF ALGEBRA WORD PROBLEMS
Ehrlich, Abbott, Salter, Soloway Page 4
on algebra word problems after completing a programming course as compared with their
performance before they have taken the course.
Problem Decoml asition. We also obtained results which pointed to specific effects related to
programming. In the earlier study on algebra word problems, Clement et al. 12j found that
students performed more accurately on problems in which only one of the variables was multipled
by a number (e.g., S SP) as compared with problems in which both variables were multiplied
by a number (e.g., 5C 4S). Both of these problems were included in the preliminary study.
For the sake of brevity we refer to the first, simpler problems as an integral problem, and the
second problem as a non-integral problem. The data from the two problems are shown in Table
2. These data indicate that although the nonprogrammers are still performing worse on the non-
integral than on the integral problems, the programmers are performing equally well on both.
One explanation for the better performance by the programmers is that they developed skill in
problem decomposition and that they were applying that skill to the non-integral problems.
Why should programming help problem decomposition? One answer is that students are taught
to solve problems by breaking them down into small manageable components. For instance, we
have observed students who solved a non-integral problem by writing the equation as
X=C5
S=X/4
instead of writing the equation, S 5/4 C directly. The skill that is exercised here is both
decomposition and composition. The student must be able to see that a single equation can be
broken down into two parts, and that a correct solution can be composed by using an additional
variable to connect the separate parts. The advantage of decomposing a problem in this way,
whether it is done explicitly or not, is that it is often easier to generate two simple equations than
a single, more complex one.
Equations as active operations. The second result which demonstrated influence of the
programming course occurred on a set of problems which were constructed to elicit improvements
71
Ehrlich, Abbott, Salter, Soloway
NON-PROGRAMMERS PROGRAMMERS
Number of subjects (N = 26) (N = 31)
GENERATE
Correct %Correct %Correct
NON - INTEGRAL Answer
At Mindy's restaurant for every 4 people 4S--5C 39% 67%
who ordered cheesecake, there were
people who ordered strudel.
INTEGRAL
At a Yankees game for every 3 hot dog H=3C 62.5% 68%
sellers there is a Coke seller.
in performance. Equations for the word problems given in Table 1 can be written equivalently as
a ratio: C/S 4/5; as a multiple expression: SC 4S; or with a single vitriolic on one side of
the equation: C 4/5 S. In an unpublished study, we found that there was a strong correlation
between the form in which students wrote their equation and the accuracy of that equation.
Equations written as multiples were commonly incorrect (i.e., 4C 5S), while equations written
in either of the other two forms were more commonly written correctly. Indeed, the previous
researcg on algebra word problems noted that many of the incorrect equations were associated
with a simple word-order match strategy in which the order of numbers and variables in the
equation matches the order these were mentioned in the problem description. This strategy, of
course, will generate an incorrect multiple equation, 4C low 5S. We reasoned that if students were
making errors because of this strategy, showing them an equation not written as a multiple might
elicit better performance. To test the effect of the form of the equation on performance, we gave
students partial equations to complete; examples of the problems and the results are shown in
Table 3.
Two important results emerged. Firstly, we found that students were more accurately on
equations that were written in the form of a ratio than on equations written as a multiple. This
result is perhaps not surprising given that the problems we were using are properly classified as
ratio problems. The result is more important, however, for its demonstration that the completion
task can elicit more accurate performance, and, by implication, that the task is sensitive to
changes that might result from a programming course. The effect of a programming course on
algebra word problems can be seen in the next result.
Secondly, we found th.it the programmers performed better than the non-programmers on
problems in which the equation was written with a single variable on one side. This is the form
in which equations and assignment statements arc most often written in a program. Moreover,
assignment statements in a program convey the notion of an active operation in which the output
variable (e.g., S in the assignment statement, S : 5/4 ' C) is assigned the result of the
operation on the input variable (e.g.,the result of 5/4 * C). One interpretation of this result is
that programmers are exposed not only to a particular form of equation, but that they are
exposed to the notion of an equation (as an assignment statement) being associated with an
active operation. This interpretation amounts to the claim that programming helps students
overcome their descriptive approach to equations and instead encourages them to take a more
active, procedural approach.
73
Ehrlich, Abbott, Salter, So loway
NON-PROGRAMMERS PROGRAMMERS
Umber of subjects (11 26) (N = 31)
AV AILABLE
BEST COPY
Ehrlich, Abbott, Salter, Soloway Page 6
3. CURRENT STUDY
The present study was designed to follow up the preliminary results from the pilot study in a
more experimentally controlled setting. The study focused on the following question:
1. Do students improve their performance on algebra word problems as a result of
taking a programming course?
2. Can we attribute any improvement in performance to the development of particular
skills or strategies?
skills associated with problem decomposition
strategies associated with viewing an equation as an active operation
generality of transfer across problem types
3.1. Materials
The first question was addressed by comparing performance for each student over the whole test.
The test consisted of 36 items; these items are described below.
The second question has three parts: EVoblem Decomposition, Problem Strategy,
Problem Type.
Problem Decomposition. We examined skills associated with problem decomposition by
varying the complexity of the problem. In addition to the integral and non-intepal versions
used in the pilot study, we added a third level of complexity, called combination problems. In
these problems, both an integral and a non-integral equation are required to solve the problem.
Examples of the problems are given in Table 4. If programming teaches problem decomposition
and students can transfer that skill, we should find that students from the programming course
show more improvement on the complex problems compared with the simple problems.
Problem Strategy. We examined whether students will view equations in a more active way
after taking a programming course. To examine this question we used the same completion task
Ehrlich, Abbott, Salter, Seloway
PROBLEM 1: INTEGRAL
PROBLEM 2: NON-INTEGRAL
"M Mindy's restaurant for every 4 people who ordered cheesecake there
were 5 people who ordered strudel?
PROBLEM 3: COMBINATION
"The candy store sells 4 bars of chocolate for every 3 ice-creams it sells
and it also sells 5 ties as many bars of chocolate as candies."
Table 41
EXAMPLES OF RATIO PROBLEMS AT THREE LEVELS OF COMPLEXITY
Ehrlich, Abbott, Salter, Soloway Page 7
we used in the pilot study. In this task, students are given a partial equation to complete instead
of generating an entire equation. The test included 12 of these completion problems. As in the
previous study, the three alternate forms of writing an equation were used. These forms are:
ratio, single variable and multiple. Each form occurred equally often (i.e., times) acmes the
total of 12 problems. Examples of the probLms are shown in Table 5. If students approach
problems in a more active manner we should find that this change is picked up by their response
to the tingle variable forms of equations because this form of equation is most similar to an
assignment statement in a program. Moreover, if programming encourages a different approach
to problem solving rather than simply exposing students to a particular form, we should find
improvement on both the single variable forms and on the multiple forms.
Problem Type. In the pilot study we used only one kind of algebra word problem; those
involving ratios. In order to broaden the scope of our inquiry into transfer effects, the present
study included a set of algebra word problems that involved percentages. Percentages are
commonly used in algebra word problems, for example, to calculate interest or to assess the
amount of different ingredients in a mixture e.g., 15). Percent problems are of particular interest
here because they can be constructed to have the same surface form as the ratio problems, even
though their underlying structure and method of solution may be different. An example is:
"The number of paper bags on the ground at the park is 45% of the number of people visiting
the park that day."
There are a number of superficial similarities between the percent and ratio problems. However,
there is one very important difference. In the percent problems, a word order match strategy
(i.e., a non-procedural approach) can be used to generate a correct equation; this strategy will
lead to an incorrect equation for the ratio problems. If programming gives students a general
improvement in performance, we should find that students improve on both problems as a result
of taking a programming course. Alternatively, if programming is associated with teaching
procedural skills then there should be more improvement for the ratio problems since these
problems benefit more then the percent problems from a procedural approach.
77
Ehrlich, Abbott, Salter, Soloway
RATIO FORM
Given the following statement:
Let P represent the number of plumbers and let E represent the number of
electricians. Complete the equation given below by replacing the question
marks.
E
Y P
'At the last company cocktail party there were 3 people who drank
wine for every 7 people who drank beer.'
Let W represent the number of wine drinkers and let B represent the number of
beer drinkers. Complete the equation given below by replacing the question
marks.
I
B -W
I
MULTIPLE FORM
Given the following statement:
'When Elizabeth Taylor goes to Tiffany. she buys 5 rubies for every
6 emeralds.*
Let B represent the number of rubies and let E represent the number of
emeralds. Complete the equation given below by replacing the question marks.
YE mitt;
Table 5:
EXAMPLES OF PROBLEMS USED IN COMPLETION TASK
PROBLEM I: INTEGRAL
"The number of paper bags on the ground at the park is 45% of the number
of people visiting the park that day.'
PROBLEM 2: NON-INTEGRAL
"70% of the number of long distance calls that Mary made accounted for
30% of the total number of calls she made."
PROBLEM 3: COMBINATION
Table as
EXAMPLES OF PERCENT PROBLEMS AT THREE LEVELS OF COMPLEXITY
Ehrlich, Abbott, Salter, Subway Page 8
3.2. Design
The test consisted of 12 completion problems and 24 problems which required students to either
generate an equation or a numerical solution when supplied with the value of one of the
variables. For the 24 'generate' problems 2 factors were independently varied: problem
complexity (integral, non-integral, combination) and problem type (ratio, percent). Crossing
these 2 factors yielded 3 x 2, i.e., 6 experimental conditions. There were 4 problems/condition,
giving s total of 24 test items. The main measure of performance was accuracy.
Two tests were constructed each with 36 items; one called Test A and the other called Test
B. The two tests differed only in the particular lexical items that were used in the problems; in
all other respects the tests were identical. Subjects were given one test at the beginning of the
semester (e.g.,Test A) and the other test at the end of the semester (e.g.,Test B). Subjects were
randomly assigned either Test A or Test B for the first testing session.
3.3. Procedure
The study was run using the following procedure. Subjects were college students who were
enrolled in an introductory programming course. The language they were taught was Pascal. A
complete test of the 38 algebra word problems was administered to each student at the beginning
of the semester, before they had taken the programming course, and again at the end of the
semester after they have finished the course. In order to be confident that the results we obtain
are due to the programming course rather than to other factors involved in a test-retest situation,
we also gave the same test to a group of students who were not enrolled in a programming
course. This second 'control' group were carefully selected so that their background matched
that of the experimental group as closely as possible. In particular we asked all students to allow
the university to release to us their SAT scores so that we had some independent assessment of
their general ability level.
3.4. Subjects
Experimental Subjects. These subjects were recruited from an introductory programming
course in the computer science department at a large state university. The course we recruited in
was open to students throughout the university and was taught at a level appropriate for
students who were not majoring in computer science. The department did offer a parallel course
that semester for computer science majors. Subjects were paid $5 for participating in the first
pre-test and an additional $15 if they returned to take part in the second post-test.
A total of 132 subjects participated in the initial pre-test. 92 of these subjects, i.e., 70%,
returned for the post-test session at the end of the semester. Because the study was designed to
test the effect of programming on performance on algebra word problems, we eliminated those
Ehrlich, Abbott, Salter, Soloway Page 9
subjects who had taken previous programming courses at college level from further consideration.
By this criterion we rejected 10 out of the 92 subjects who had completed both the pre-test and
the post-test. We were thus left with a awe group of 82 subjects who had completed both the
pie -test and the post-test and who had no previous significant programming experience.1
Control Subjects. This group of subjects were recruited from upper level psychology courses,
specificIlly a course on motivation and a cognitive psychology course. Subjects were given
experimental credit for participating in the first, pre-test and experimental credit + 110 for
returning to take the second, post-test.
A total of 4f subjects participated in the initial pre-test. 2 of these subjects turned out to be
enrolled in the programming course and have been included in the data for the experimental
subjects. Thus, there were 44 control subjects who took the initial pre-test. 32 of these subjects,
i.e., 739 , returned for the post-test session at the end of the semester. From this initial pool of
32, we eliminated those subjects who had significant prior programming experience, using the
same criterion as we used for the experimental subjects. By these criteria, we eliminated 4
subjects. We were thus left with a core group of 28 subjects who had completed both the pre-
test and the post-test and who had no previous significant programming experience and who were
not currently enrolled in a programming course.
In terms of background, 79% of the programmers had arts majors with the remaining 21%
having majors in science or engineering. All the non-programmers had non science majors. Thus
most of our subjects, both experimental and control, were not science majors.
4. RESULTS
Before going through the results we need to point out that after carrying out the study, we found
that we had an uneven distribution of men and women in our two groups of subjects. The
genderes were evenly distributed for the programmers: there were 42 women and 40 men.
However, of our core group of 28 control subjects, 24 of them were women and 4 of them were
men. If it were the case that men and women responded the same way across all conditions, we
would be justified in ignoring gender and simply evaluating performance on the basis of the pre-
test and the post-test for the two groups of subjects. However, as will become apparent, we
found differences in performance between men and women throughout all the data analyses.
Thus, it must be stressed, that although we will present the data for all groups of subjects, the
data from the male control group are not reliable because the sample site is too small, and the
!We did not exclude subjects who said they had taken a programming course such as BASIC in high school, since
our previous research has led us to believe that these courses do not exert sufficient influence on a student's problem
solving to warrant the exclusion of that student.
Si
Ehrlich, Abbott, Salter, Subway Page 10
4.1. Overall
The first set of results we will present relate to our first question:
Do students improve their performance on algebra word problem, as a result of taking
a programming course?
The data which are presented in Table 7 indicate that any support for that question has to be
qualified. In particular, the data indicate that the men did improve as a result of taking the
programming course but the women did not. An analysis of the data confirm that observation;
when level of improvement was compared, the men programmers showed more improvement than
the women (ANOVA: F1, 80 mg 7.4, p < 0.01). The men showed a highly significant
improvement in performance when tested separately from the women, (t test: t35 4.96, p <
0.0005). It. must be stressed, however, that the data we are discussing is improvement in
performance. The women are performing as well, in fact better, than the men on the initial test.
That is, the data imply that men and women are equally capable of solving algebra word
problems, hut, for some reason, men are more likely to improve their performance.
We need to add a further qualification to our result. In the absence of an adequate control group
of men aon-programmers, we cannot draw a definitive conclusion about the contribl:tion of the
programming course to the improvement in performance. Indeed, the data in Table 7 show that
there was some improvement for the men non-programmers, although that improvement was not
reliable (t test: t3 1.88, n.s.) because of the small sample and the extremely high variance in
their data.
The data show that the women programmers did not improve their performance on the test.
One might want to conclude from those data that the women programmers, did not transfer their
skills and learning from programming to the algebra word problems. An alternative explanation
is that the women have higher SAT scores on average than the men (see Table 7). Thus there
may be more women than men who are already performing near their optimum level on the pre-
test and hence who are not able to improve their performance. This alternative explanation was
not borne out by our analysis. We found that SAT scores accounted for only .1% of the variance
in the improvement scores, while gender accounted for 9%. That is, a subject's SAT score was
not a very good predictor of improvement, but the gender of the subject did predict
improvement.2 Thus, their higher SAT scores do not account for the failure of the women to
7We also looked at the data for the individual subjects and found that 17 of the 42 women programmers actually
did worse on the post-test than on the pre-test. Only 7 of the 40 men showed a decrement in performance.
Ehrlich, Abbott, Salter, So loway
ALL PROBLEMS
PROGRAMMERS NON-PROGRAMMERS
MALE FEMALE MALE FEMALE
(N = 40) (N = 42) (N = 4) (N = 24)
SAT 620 560 540 500
improve.
We also found that, in general, the men were more consistent than the women, particularly with
respect to the relation between performance in the programming course and amount of
improvement. It. might be expected that students with higher grades in the programming course
should show more improvement b..tame they have a better understanding of programming to
transfe4 (assuming that the grades are measuring programming understanding). This expectation
was borne out for the men; those with higher grades in the course showed more improvement
than those with lower grades (correlation an 0.38, p < 0.05). There was, however, no correlation
between course grade and improvement, for the women (correlation 3. 0.01). It should be noted
that the women received the same grades in the course, on average, as the men.
In Table 8, we show the pre-test and post-test scores for the men and women as a function of
grade. The me:Y3 SAT score for the subjects at each grade level is also listed. The data for the
men show a highly consistent and regular pattern of performance across grade, SAT, pre-test
score, post -test score and difference (i.e., improvement) score. The pattern for the women is
much less consistent.
What can we conclude from these data? One conclusion certainly seems to be that our test is not
eliciting the same evidence of transfer from the women programmers as from the men. There are
a number of requirements for programming skills to transfer. One is that the student acquire a
good enough understanding of programming to be able o change previous problem-solving
behavior. A second is that the student perceive, either consciously or unconsciously, that there is
some commonality between the algebra word problem and programming. If a student keeps
knowledge of each subject area locked in separate mental compartments, there is no
communication for transfer to take place. A third requirement is that sufficient time has to
elapse for well-rehearsed behaviors such as those used in the algebra word problems, to be
replaced by the newer behaviors learned in the programming course. The women programmers
may have a different agenda than the men witL respect to any of these requirements.
The differences between the men and women could of course, reflect some idiosyncracies of the
particular students we tested, and certainly further studies need to be conducted to verify our
findings. However, to the extent that the present results are valid they offer some intriguing
differences between men and women that only show up on certain types of problems and when
students are tested for changes in performance.
Ehrlich, Abbott, Salter, Soloway
MALES
FEMALES
Table 8:
The mean pre-test and post-test scores for male and female programmers
as a function of grade in programming course
Ehrlich, Abbott, Ss her, So 'away Page 12
When we looked at the data for these two problem types we first found a dramatic difference in
performance between men and women; the data are shown in Table 10 and Table 11. On the
ratio problems the men programmers improved (by 15%) while the women programmers showed
no improvement. However, on the percent problems the women improved (by 9%) but the men
did not. An ANOVA confirmed the three way interaction between gender (male/female) problem
type (ratio/percent) and test time (pre/post) (ANOVA: F1, 80 mu 57.11, P < 0.002). Note that
the women programmers showed more improvement than the men on the percent problems even
though their initial performance was higher than the men. These data further highlight that men
and women differ in their style, rather than their accuracy of solving 1..oblems.
Ehrlich, Abbott, Salter, Solowsy
COMPLEXITY
PROGRAMM1,18 8 - M
M.
PRE 69% (3%) 50% (4%) 84% (5%) 69% (4%) 63% (4%) 40% (4%)
POST 69% (5%) 61% (4%) 47% (5%) 69% (4%) 61% (5%) 47% (5%)
NON-PROGRAMMERS
PRE 69% (6%) 53% (9%) 38% (20%) 54% (6%) 47% (7%) 30% (6%)
POST 72% (16%) 78% (11%) 63% (14%) 58% (5%) 50% (6%) 31% (7%)
.,,....10*,
Ehrlich, Abbott, Salter, So lowsy Page 13
The improvement in performance by the women on the percent problems cannot be attributed to
their programming experience, however. A comparison of the level of improvement between the
women programmers and the women nonprogrammers revealed that there was nu difference
between them (ANOVA: F1, =6 0.133); the non-programmers improved as much as the
programmers. The men programmers showed no improvement in performance. These data
suggest that programming makes little or no contribution to performance on percent problems.
Both the men programmers and non-programmers showed some improvement on the ratio
problems. The improvement for the men non-programmers was not statistically reliable (t test:
t3 1.36, n.s.) due to the high variance in the data.
The comparison of ratio and percent problems is consistent with the claim that programming
helps students develop a procedural approach to problem-solving. This conclusion follows from
the argument that a procedural approach should improve performance on the ratio problems
only, which is what we found, albeit for the men programmers only, and with some question
about the contribution of programming rather than gender.
These data provide the strongest evidence so far for transfer effects from programming. Even
though we cannot rule out other explanations, at least some of the improvement on these
problems represents transfer from programming. It is also interesting to note that the men
improved more on this completion task than on the set of ratio problems presented earlier which
used a generate task. The difference between these two results was not reliable (t test: t39
1.62).
The completion problems, particularly those problems in which equations are presented in the
form of a single variable c one side of the equation, represent the situation of nearest transfer in
Ehrlich, Abbott, Salter, So loway
PERCENT PROBLEMS
PROGRAMMERS NON-PROGRAMMERS
MALE (N=40) FEMALE (N=42; MALE (N=4) FEMALE (N = 24)
RATIO PROBLEMS
PROGRAMMERS NON-PROGRAMMERS
MALE (N=40) FEMALE (N=42) MALE (N=4) FEMALE (N = 24)
PROGRAMMERS
PRE 63% (6%) 40% (5%) 26% (6%) 71% (6%) 46% (6%) 38% (6%)
POST 77% (5%) 61% (6%) 54% (6%) 66% (6%) 49% (6%) 42% (6%)
NON-PROGRAMMERS
PRE 75% (18%) 63% (16%) 25% (14%) 65% (8%) 34% (7%) 33% (8%)
POST 81% (19%) 38% (24%) 50% (29%) 65% f8%) 34% (7%) 27% (8%)
COMPLETION TASK
PROGRAMMERS NON-PROGRAMMERS
MALE (N=40) FEMALE (N=42) MALE (N=4) FEMALE (N = 24)
this study. It is thus not surprising that we should find the greatest transfer where there is the
greatest similarity between the items in the test and the kind of problems the student gets in the
programming course. However, more subtle skills must also be transferred from programming to
algebra word problems to account for the exceptional improvement in performance on the
problems which were presented in the multiple form. Students are not likely to see equations
written in this form in computer programs. However, this form of writing an equation is the form
that is "most strongly associated with making errors. The students who improved their
performance when the equation was presented in this form may very well have realized how to
write correct equations in a single variable form. They may have then completed the multiple
form equations by first changing it into the single variable form, solved it that way, and then
changed it back into a multiple.
Our conclusion from these data is that they provide quite strong evidence not only that a
programming course can improve performance, but that programming encourages students to
develop skills associated with viewing equations as active procedures rather than as descriptions.
Both the data from the comparison of the problem types and these data from the completion
problems are consistent with that conclusion.
5. DISCUSSION
There is a strong belief that students who learn programming for the first time should be able to
transfer some of their new programming skills to other disciplines. However, it has proven
extremely difficult to provide empirical evidence for this belief in part because there is a lot of
uncertainty over where to look for transfer effects.
In the present study we took a very focused approach to the transfer issue by examining whether
a programming course improved procedural skills. In particular we examined whether
programming helps students decompose problems, whether it helps them develop a more active
approach to problem-solving and whether the kind of transfer we were examining was specific to
particular non-procedural strategies. To further demonstrate the influence of programming on
individual students, we tested the same students before and after they had taken their first,
introductory programming course, on a set of algebra word problems. The performance of these
programmers was compared with a similar group of students who had not taken a programming
course.
Our data were inconclusive with respect to the transfer issue. Unexpectedly, we found a large
gender difference which translated into the suggestion that men were far more likely than women
to show transfer effects. That is, more of the men improved their performance on the set of
algebra problems than did the women. Moreover, clue to an inadequate control group for the
men programmers, it was not possible to demonstrate whether this improvement wz1 due to
93
Ehrlich, Abbott, Salter, Soloway Page 15
r
gender differences or to programming experience. However, even if we take a pessimistic view of
the data and treat the means from the control group of men as being representative of men non-
programmers in general, there is some evidence for one of the procedural skills; the men
programmers did adopt a more active approach to problem-solving after taking the programming
course as compared with their previous performance. The improvement was most clearly
demonstrated when the problem prompted the students to take a more active approach rather
than when this approach was expected to emerge spo-' neously.
It seems unlikely that students who take a new course in any subject do not learn something new
that can be applied to other old, more familiar subjects. Despite the apparent strong face
validity of transfer effects from programming, it seems very difficult to provide strong empirical
evidence in its favor. Based on what we found in this study, future studies of transfer effects will
need to pay more attention to individual differences, in addition to focusing on the specific types
of skills that are learned in programming that might be transferred.
Ehrlich, Abbott, Salter, Soloway
References
11) Bonar, J., Ehrlich, K., Soloway, E.
Collecting and Analyzing On-Line Protocols from Novice Programmers
Behavioral Research Methods and Instrumentation 14:203-209, 1982.
121 Clement, J., Lochhead, J., and Monk, G.
Translation difficulties in learning mathematics.
American Mathematical Monthly 88:215-40, 1981.
131 Ehrlich, K., Soloway, E.
An Empirical Investigation of the Tacit Plan Knowledge in Programming.
Technical Report 82-30, Dept. of Computer Science, T ale University, 1982.
141 Ehrlich, K., Soloway, E., Abbott, V.
Transfer Effects From Programming To Algebra Word Problems: A Preliminary Study.
Technical Report 257, Dept. of Computer Science, Yale University, 1983.
191 Soloway, E., Sonar, .1., Woolf, B., Barth, P., Rubin, E., and Ehrlich, K.
Cognition and programming: Why Your Students Write Those Crazy Programs.
In Proceedings of the National Educational Computing Conference. NECC, No. Denton,
Tx., 1981.
1101 Soloway, E., Ehrlich, K., Bonar, J., Greenspan, J.
What Do Novices Know About Programming?
Ablex, Inc., 1082, .
95
WHAT WILL IT TAKE TO LEARN THINKING SKILLS
THROUGH COMPUTER PROGRAMMING?
Roy D. Pea
Center for Children and Technology
Bank Street College of Education
But you had observed that studies bearing on this claim had always been
done in societies such as Senegal or Mexico, where literacy and schooling
were confounded. Perhaps schooling was responsible for these changes in
thinking, rather than the use of written language per se.
Like all the psychologists before you, you have brought along suitcases
filled with psychological tests and materials for experiments on concept
formation and verbal reasoning. Results from performances by the Vai
with and without written language experience will tell you whether
possessing literacy affects the way they think. You then carry out your
research.
As you look over your results from several years of work, you find no
general cognitive effects of being literate in the Val script. For example,
the literate Vai were no better than the nonliterate Vai in categorization
skills or in syllogistic reasoning. Literacy or se did not appear to
produce the general cogil:tive effects on higher thinking skills you
expected.
So you mull over this fact for some time. How could this be? The
arguments were so plausible for why written language would affect the
way people think. You wonder -- could the studies be done more
carefully?
This reorientation literally turns on its head your paradigm of looking for
general cognitive effects of literacy. You have abandoned the approach
of making general predictions from developmental theory to effects on
general intelligence. You now start with concrete observations of literacy
behavior and build up to a general functional theory of the cognitive
effects of specific literacy practices.
With this new approach you find that the Vai use their written language
primarily for letter-writing, and for recording lists and making technical
'farming plans.
You then begin a new phase of research, to tease out cognitive effects of
specific literacy practices rather than literacy per se. You design new
tasks for assessing literacy effects that draw on related skills to those
required by the practices you observe, but which involve different
materials.
What you find when guided by this new functional perspective are
dramatic cognitive effects of literacy. But they are more restricted in
nature. For example, letter writing, a common Vai literacy practice,
requires more explicit rendering of meaning than that called for in face to
face talk. So you refine a communication task where the rules of a novel
board game must be explained to someone unfamiliar with it, either face to
face or by dictating a letter for an absent person. You find, lo and
behold, that performances of Vai literates are vastly superior on either
version of this task to those of nonliterates.
This is no mere parable. It is an account of an extensive five-year
research project carriee out by Professors Sylvia Scribner and Michael
Cole (1981). It is the account of an intellectual voyage not so far
removed from what children are learning with Logo programming. We can
fruitfully apply the schema of this Vai story to questions about the
cognitive effects of programming. And here I believe, is where one will
find what will be needed to learn thinking skills through programming.
Here, too, there are persuasive and intuitively appealing arguments for
why people should become better thinkers by virtue of the use of a
powerful symbol system such as the Logo programming language. It is
alleged that children will acquire general cognitive skills such as planning
abilities, problem solving heuristics, and reflectiveness on the revisionary
character of the problem solving process itself. The features of
programming literacy assumed here include the necessarily explicit nature
of writing program instructions, the strategic and planful approaches
ingredient to modular program design, and experience with the logic of
conditionals, flow of control, and with program debugging.
Let us move our West African story to the context of the American
Classroom. Here again we enter as psychologists, looking for general
cognitive effects, much like the first literacy questions of the African
enterprise.
- 4 -9
But we should give pause--for we have entered another culture. What
will children do with a programming language in a discovery-learning
situation, in Logo's "learning without curriculum" pedagogy (Papert,
1980), without benefit of being shown what kinds of things can be done,
or being taught about the powers of the system or of thinking skills?
- 6 - 101
For the Vai society, one could imagine introducing new logical and
analytic uses of their written language. Similarly, one could imagine
introducing children the Logo programming practices many educators
*a..
have heretofore taken for granted will emerge. In either case, we would
argue that without some functional significance to the activities for those
who are learning the new practices, there is unlikely to be successful,
transferrable learning. Serving some purpose--whether being able to
solve problems one could not otherwise, satisfying an intrinsic interest in
complex problem solving, or achieving solidarity with a peer group who
define their identity in part by "doing" Logo or written language--is a
necessary condition for the symbolic activities we are interested in
promoting to be ones our learners find a commitment to.
It is my hunch that wherever we see children using Logo in the ways its
designers hoped, and learning new thinking and problem solving skills, it
is because someone has provided guidance, support, and ideas for how
the language could be used. They will have pointed the way through
examples, rules, and help in writing programs and discussing the
powerful ideas. To call these rich activities "learning without curriculum"
is misleading, and an overly narrow view of what constitutes curriculum,
for any projected path toward greater competency that another person
helps arrange can be thought of as a curriculum.
102
students. This vision could, in principle, be realized. I imagine that
important cognitive effects of programming, or of literacy are possible,
but only when certain uses of these symbol systems are practiced, not
the ones most engaged in today. There is far too much faith today that
Logo carries with it guarantees of cognitive outcomes, and there is
already evidence that when these changes are not found, educators will
be prematurely discouraged.
Where are we left after these two continents of travel? With reason for
optimism. There are many streams of Logo activities and research that
should go on, for plurality and diversity provide exciting grounds for
emergent ideas. Communication among groups of students, teachers,
psychologists, and computer scientists will help in the formation of a
broad community exploring these issues. These streams will no doubt
embody a diversity of assumptions about what will best help create the
culture of Logo I have referred to, in which one will be more likely to
find the cognitive effects on thinking skills so many take for granted.
Similar Logo cultures may arise that center on math learning, or
programming. Each is likely to require the construction of extensive
microworlds for learning more specific than the Logo language itself.
-9-104
Making Programming Instruction
Cognitively Demanding: An Intervention Study
John Dalbey
Francoise Tourniaire
Marcia C. Linn
University of California
eCilgLAa.aail
109
instruction and the potential of the computer learning
land L Pea 11984] reveals that both expert adult and expert
:4'
together. They fall to understand that the natural language
ACCCEL Explicitness
code.
lattuelltion Euscdurt
block.
SulleicrIs
117
t
' 1
dm
14-
119
- lb -
not pursued.
120
problem specification deviate from those they have already
encountered. It seems clear that more varied experien:e
mapping statements onto the structure diagrams is required.
time planning.
the program.
122
- 19 -
123
TABLE 1
TAF:iLE
124
Figure'l
PROBLEM ANALYSIS
1AGRAM;
F (Ffalse)
T (T-itrue)
EXAMPLE:
or
Print your name Print "warm"
Print "hot"
[ Add 31 plus 17
An Action block is a A Loop block shows the loop A Decision block shows the con-
rectangle drawn around "control" in the top part, dition being tested in the top
the action to be per- and the repeated part or part (above the dotted line).
formed. "body" In the enclosed box. The false (F) alternative is
shown next, and the true (T)
alternative is shown at the
bottom.
BIBLIOGRAPHY
127
BEST COPY AVAILABLE
DISCUSSION
Jan Hawkins
Center for Children and Technology
Bank Street College of Education
-2
-129
the value of this activity. The issue of transfer of skill, then, is
complex even within the domain of programming problems. In addition,
the techniques valued by experts may have a complex relationship to the
types of programming supports that are effective with novices. The
identification and adoption of expert techniques may not be the critical
factor for novices. Understanding the conditions in which students
perceive a programming tool as useful for problem solution would seem
essential in the building of an effective instructional sequence.
While Erlich, Abbott, Salter and Soloway find some evidence of
transfer of procedural programming skills to non-programming algebra
problems, they also note the intricacies of data interpretation. The
influence of gender relative to programming experience they document is
not readily understandable in the improvements noted among male
programming students. These sorts of gender differences have been
widely noted in mathematics achievements (cf. Brush, 1980), and with
computers (cf. Hawkins, 1984). The evidence of gender differences is
not surprising, as performances in these domains seems complexly related
to differential expectations and performance conditions. These resul+s
add an iteresting note of complexity to the understanding of conditions
of transfer.
Pea suggests that research concerning the transfer of skills must be
based on a thorough understanding of the functional activities of a
"culture". How does the group enlist particular skills in the carrying out
Noting the findings of a research
of internally meaningfully activities?
program that failed to find evidence of improvement in planning skills
among elementary students after a year's programming experience, Pea
recommends both changes in the instructional environment and in the
130
places one looks to find generalization of ability. Programming per se is
not a privileged environment in which general skills are "naturally"
acquired. Rather, bridges must be built between the programming work
and other problems in a learning setting mutually constructed by teachers
and students.
These studies take on the difficult task of examining the conceptual and policy
questions raised by the enthusiasm in the educational community for
programming. In addition to the implications of their findings, the
papers articulate paths for yet deeper probing. Among the most salient:
What are the goals of programming work for students at different
levels? One angle of approach was adopted by Kurland et al: what are
experts able to do? This information about end-state, or exp :rt practice,
should help to shape the programming environment that students
encounter. Additional analyses of the characteristics of expertise are
essential. Complementary approaches are also necessary. The
_6
133
(e.g. math problems done with paper, pencil and a calculator). Rather
than designing tasks with the focus on structural similarities to
programming, tasks that are functionally similar to students' programming
work might evoke a different approach that has been learned through
programming. The representations and skills practiced through use of
the technology to solve particular problems might result in new ways of
seeing those classes of problems, independent of the technology.
What are effective social conditions for learning to program? There
is evidence in these studies that social circumstances play an important
role in the programming performances we analyze. This is noted at two
levels in these papers. In terms of the larger culture, functional
activities are important in defining how skills are acquired and applied.
In addition, gender--the expectations and orientation; to performance in
particular circumstances--may be an important variable in learning and fo::
assessing skill. Cognitive questions about development, and educational
questions about implementation must take account of these larger social
circumstances. More needs to be known.
At a more immediate level, the locus of programming instruction is
the classroom. Classrooms are complex social settings in all grades. A
_ 134
effective instructional practice. The student, for example, could be
encouraged to construct variations on the program which would require
changes in the code. Whether he knew how to vary it himself, or knew
where to get help, providing situatio.As which focus on variations in
construction and use of a particular section of code could lead to
improved understanding.
These papers are important in further defining the nature of
problems in developing effnctive instructional programs for programming
skills, with an emphasis on using this environment to teach problem
solving. They thus point to important paths for future research.
REFERENCES
Brush, L. E. (1980). Encouraging girls in mathematics. Cambridge, MA:
Abt Books.
Hawkins, J. (1984). Commuters and girls: Rethinking the issues. New
York: Bank Street college of Education, Center for Children and
Technology Technical Report No. 24.
Pea, R. D. & Kurland, D. M. (1984). Towards co hive technolo ies for
writing. Unpublished manuscript, RevrTW)a--
, Center for Children and Technology.
Resnick, D. P. & Resnick, L. B. (1977). The nature of literacy: An
historical exploration. Harvard Educational Review, 47(3), 370-385.