On the cognitive effects of learning computer
programming
Roy D. Pea, D. Midian Kurland
To cite this version:
Roy D. Pea, D. Midian Kurland. On the cognitive effects of learning computer programming.
New Ideas in Psychology, Elsevier, 1984, 2(2), pp.137-168.
HAL Id: hal-00190532
https://telearn.archives-ouvertes.fr/hal-00190532
Submitted on 23 Nov 2007
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d’enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.
O N T H E COGNITIL'E EFFECTS O F LE,I\RSING
COhlPUTER PROGRX~lhIING
RO\. D. PE.\ and D. .CIIDIAN KCRL.-\ND
C-nter !'or Children and Technoioqv Bann Street College o i Eaucation. 510 LVesr
10025. C 5 .\.
112th Street. New Y o r ~ NY
.
Abstract -This paper cnticallv examines current thinking about whether i e a n m q
computer programming promotes the development o i general higher mental functlons \.\'e ,now hhuu ?ne lvailablc evidence. and the underiymg assumptions about
s issue adequate!^ O u r analvsis
the process of learning to program. fail to ~ a d r e s :his
is based a n a deveioprnentai cynirlvr science perspecttve on learning ro proqram.
incorporatine developmenrai and coqnitive science consider~rionsot' the mental
activities involved in programmirig It nighlights the imponance tor future research
oilnvestiqatinq students' interactions with instructional and programming contexzs.
deveioprnentai transformations of their ?roeramming skills. and their background
knowledge and rrasoninc ~ b ~ i l c t r s .
There are revolutionar). changes afoot in education, in its contents as well as its
methods. Ct'idespread computer access by schools is at the heari- of these
changes. Throughout the world. but particularly in the U.S..A., educators are
using computers for learning activities across the c u r r i c ~ l u m .rven designing
their own sofr:vnre. But virtually all educators are as anxious and u n c e r w r ,
about these changes and the directions to take as thev are optimistic about their
ultimate effects. "Now that this admittedly powerful symbolic device is in our
schools," they ask. "what should we do with I [ ? "
CVe be1iel.e that educators and social scientists are at an important watershed
in .American education. Important new opponunities abound for research and
development work that can influence directly the quality of education. Hard
questions are emerging about the desiga of educational activities that integrate
the computer with other media. T h e volatile atmosphere of choices for schoois
(and parenrs), as new hardware and software appear daily. calls for principles
and knowledge that educators can use, derived from svstematic empirical
studies, in laboratories a n d classrooms. of how children learn with these new
information technologies. We also need theoretical debates on the aims and
priorities for education in an informarlon age. Gt'e believe that a developmenti
We wouid like to acknowiedqe with thanks the Spencer Foundation and :he Nattonal Institute
of Education (Contract +00-83-OO!6) ior supponing the research reporred here, and ior p r o v ~ d i ~ q
the opporrunitv to write this essav. T h e opinions expressed d o nor necessanlv reflect the posltion
or poiicv of these institutions and no oificial endorsement should be ~ n i c r r e d .Jan Hawkins.
Karen Sheingoid. Ben Shneidcrman and a group oianonvmous reviewers provtded very useiul
critlcal discussions o i the data and issues covered in this repon. Requests for reprints should be
sent to Rov Pea I t the address given above.
approach to the understanding of information technologies will berequired. one
that incorporates the new insights o f coenitlve science. and that ?ill guide both
research on. and d e s i p of. computer-based learning environments. Such a
d m i p l i n e of de\.elopmen:al coenirive science would merge t h e o and
~ practice
to dovetail the symbolic powers of human thinking with those of the computer
in the service of human de\.elopment.
In this essav our goals are considerably more modest, but nonetheless a
timel\- subrask of the larqer enterprise. O u r aim is to examine two widespread
beliefs about the mental activities engaged by programming a computer and
their expected cognitive and educational benefits. T h e two beliefs are poiar
opposites and neither is acceptable. Together, they express the two predorninant tendencies in thinking about learning to program today.
T h e first bel'ief is linked to a n atomistic, behaviorist tradition that views
learning narrowly. This is the traditional and deeply-engrained idea that
learning is simply a n accumulation of relatively autonomous "facts". O n this
vie\\.. what one learns when learning to program is the vocabulary of commands
(primitives) and syntactic rules for constructing acceptable arrangements of
commands. This belief underlies most programming instruG:tion. Its other facet
is that what one learns when learning programming is just a programming
lanquage.
T h e contrasting belief. in part a reaction to the first belief. is that through
learning to program. children are learning much more than programming, far
more than programming "facts"-It is said that children will acquire powerfully
general higher cognitive skills such as planning abilities. problem-solving heuristics. and reflectiveness on the revisionary character of the problem solving
process itself. This belief. although new in its application to this domain, is an
old idea in a new costume which has been worn often before. In its common
extreme form, it is based on a n assumption about learning - that spontaneous
experience with a powerful symbolic system will have beneficial cognitive consequences, especially ior higher order cognitive skills. Similar arguments have
been offered in centuries past for mathematics, logic. writing systems: and
Latin1e.g. see Bruner, 1966; Cole & Griffin, 1980; Goody, 1 9 7 i ; Olson, 1976;
O n g , 1982; h'ygotsky, 1978).
T h e intuitively plausible claims for the cognitive benefits of programming
have broadened in scope and in public attention. Although evidence does not
support these claims as yet, their presumed validity is nonetheless affecting
important decisions in public education, and leading to high expectations for
outcomes of programming in the school and home. In the current climate of
uncritical optimism about the potential cognitive benefits of learning to
program, we run the risk of having naive "technoromantic" ideas become
entrenched in the school curriculum by affirmation, rather than by empirical
verification through a cyclical process of research and development. Already ar
the pre-high school level, programming is taught primarily because of its
assumed impacts on higher cognitive skills, not because proficiency in programming is itself a n educational goal. This assumption takes on added significance since several million pre-college age children in the U . S . A . are already
Learning computer programming
130
receiving instruction in computer programming each year, and France has
recently made programming compulsory in their precollege curriculum, on a
par with mathematics and native language studies.
L\..ith the rapid rise in the teaching of programmine: i t has become critical for
decision-makers in education to understand how programming is learned, what
may be the cognitive outcomes of learning to program. what levels of programmine skill may be required to obtain different types of outcomes, and what
the relationships are between the cognitive constraints on learning to program
and its c o p i t i v e consequences. Research directly addressing these questions is
only beginning.
Throughout m r paper we will highlight major issues a n d fundamental
complexit~esfor researchers in designing studies responsive to these critical
questions. W e discuss these issues in terms of a hybrid developmental frame~%.ork.
incorporating cognitive science and developmental psychology, and
review relevant research in cognitive science and its cognate disciplines. This
synthesis recognizes the inadequacies of either an extreme knowledge-building
account oilearning to program, o r the naive technoromanticism that postulates
spontaneous higher order cognirive skills as outcomes from programming
experiences. Although claims about the spontaneous cognitive impacts of programming have an intuitive appeal, we show them to be mitigated by considerations of factors involved in learning and development. W e also demonstrate
how. embodied in practice. the fact-learning approach to programming often
leads to incomplete programming skills. Cognitive studies of what expert programmers know, the level of the student's programming skills, the goals and
purposes of those learning to program, the general difficulty of transferring
* 'powerful ideas" across,domains of knowledge, all contribute to our rejection
of these two views. Programming in the classroom ma-r fundamentally alter the
ways in which learning and cognitive development proceed. But we must
examine whether such bold claims find, or are likely to find, empirical support.
Ll'e have felt throughout our analysis of these issues that a developmenral
persp.ective that incorporates the seminal work in the last decade of the interdisciplinary field of cognitive science kill illuminate our understanding-of the
potentialities of information technologies for advancing human cognition.
Fundamental contributions to thinking about and concretely establishing the
educational roles of information technologies could be gained from the synthesis
of these two important theoretical traditions.
Developmental theorists such as Piaget and Inhelder (1969). Ct'erner (195;)
and C'ygotsky (1978) have provided accounts of developmental processes with
profound implications for the roles of technologies in education. O n all these
views, cognirive de\,elopment consists not of an accumulation of facts. but o i a
series of progressive reorganizations of knowledge driven by the child's active
engagements with physical and social environments In these views, learning
(i.e. the accumulation of new knowledge) is important for driving the developmental process. but at the same time is mediated by the current developmental
capabilities of the learner.
In the field of cognitive science during the last decade, researchers in the
140
RJ\ Pea a n d D X11d1an I i u r l a n d
constituent disciplines of cognitive psycholop. computer science, lingu~stics.
a n t h r o p o l o p , and
have begun intensive collaborative research
projects ( e . g . Gentner 8: Stevens, 1983; Greeno, Glaser & Newell, 1983;
S o r m a n . 1 % i ). T h e combination of careful analysis of cognitive processes and
the techniques of c o w e r simulation has led to important new insights into the
--.nature of mental representations, problem solving processes, self knowledge,
and cognitive change. Cognitive science has revealed the enormous importance
of eutensive. highly structured domain-specific knowledge and the difficulty of
developing general purpose problem solving strategies that cut across different
knowledge domains. Also, within particular domains, cognitive science
research has been able to specify in great detail the naive "mental mo.&"
held
by novices, sucb as Aristotelian beliefs about obiects in motion. which are often
very resistant to change through spontaneous world experience (Gentner &
Stevens, 1983).
Cognitive science shares with the older tradition of developmental psvchology
a concern with how new learning must be integrated with prior knowledge, but
i t transcends earlier work in analyzing problem solving and learning processes
for specific knowledge domains, and finds little role for general structural principles invoking "stages".
For a student interacting with a programming environment. for example, a
developmental perspective would indicate the importance of studying how these
students' current knowledge of the computer system is organized, how they
regulate and monitor their interactions with it, and how their knowledge and
executive routines affect the ease or pace of acquisition of abilities to use new
programming constructs. .Also, i t would investigate the students' exploration of
the system. and the ways that they are able to assimilate it to their current letre1
of understanding and to appropriate i t in terms of their own purposes. including
play and competition. Learning to use the programming language may require
successive developmental reorganizations not only of the students' naive understanding of the language being learned, but also of the computer system as a
whole. Complex cognitive changes are unlikely to occur through either spontaneous exploration or explicit instruction alone, since students must be engaged in the task in order to interpret the new concepts. This perspective
suggests that rather than arguing, as many currently are, over global questions
such as which computer language is "best" for children, we would do better in
asking: how can we organize learning experiences so that in the course of
learning to program students are confronted with new ideas and have opportunities to build them into their own understanding of the computer system and
computational concepts?
I n complementary terms, cognitive science raises such important questions
as: How can common systematic misconceptions in particular domains of
knowledge be diagnosed and remediated through either informal or formal
learning activities? For example, what does a student specifically need to know
in order to comprehend and use expert strategies in designing a computer
program? M'hat component mental processes are engaged in programming
activities?
-
T h e synthes~sof developmental cognitive sciezce focuses on diagnosicg [he
mental models and mental processes [hat children as well as aduit novices brlnq
to understanding computer programming. since these models and processes
jer..e ;is [he basls t'or understanding transt'ormations of their svstems of knowledge as they learn. Beyond the tl;picaily agenetic cogn~tivescience, a developmental cognitive science would ask: How are the various component m e n d
processes invoived in expert programming constructed and recontipred
throu5hout ontogenesis. ar.d accessed and organized d u n n g problem sol\.~ns
episodes? Through whar processes of reorganization does an existing system o i
thouqht become more highly developed' Through what learning activities !n
what kinds of environments does the novice ?rogrammer develop into an
expert? Developmental cognitive science asks how the mind and its ways of
- knowing are shaped. not only bv biological constraints o r physical objects, but
by the available cultural interpretive svstems of social and educationai ir-teraction. .As we shall see, the currently available research is impoverishej in
response to these quest1oi:s. but current progress in understanding rhe development oirnathematical and sciendic thinking (reviewed. for exampie, in Sieqler.
1983) leads us to be opt~misticabout the prospects for comparable work or, !he
psychoioep of programming.
T h e critique of the literature on iearning to program that we present below
has been strongly iniluenced by this developmental cognitive science perspective. Ct'e do not adopt the usual computer programming perspective assuming
that all programming students are adults or have the same goals as mature
learners. Instead, the perspective is geared to the learning experiences and
developmental transformations of the child or novice adult in interactive environments. T h e kinds of preliminam questions that we ask from this perspective in addressing the question: "\\'ha! are the cognicive effects of learnirig !o
program?" lead us to draw on studies from diverse fields that we see as relevanc
to a developmental cognitive science of programming, and we have cate~orized
them according to the topics of "\.\'hat are the developmental roies of contexts
in learning to program?", "N'hat is skilled programming'". "\\'hat are the
levels of programming skill development?". and "L%'hat are the cognitive
constraints on learning to program?". First, however. we will begin by
examinins the bold claims abouc the effects of learning :o program.
CL.\I.LlS FOR C O G N I T I t ' E EFFECTS OF L E A R S I N G TO PROGR.\lI
Current claims for the effects of learning programming upon thinkine are
best exemplified in the writings of Papert and Feurzeig ( e . g . Feurzeig. Papert.
Bloom, Grant Sr Solomon. 1969; Feurzeig. Horwitz & Nickerson. 1981:
Goldstein Sr Papert. 1977, Papert. 1973a. 1972b. 1980: Papert. Lt'art. DiSessa
Sr Lt.eir. 1979) concerning the Logo programming language. although such
claims are not unique to Logo jcf. hlinsky, 1970).
Ear!) claims
Two key catalysts underlie beliefs that
programming
will discipline thinking.
T h e :irs: 1s from arr:~icia!intelligence. h h e r r cor.strucur,g programs [ha: mode!
!he compiexit~es01' h u m ~ ncoenltlon 1s v i e ~ , e das a wav o i understandin5 rhat
beha\.ior I n espilciriy t e a c h ~ n gthe compuLer to do &mething. 11 is contended
thar you learn more about ,:our own thinking. By analoqv
-. (Papert. 19i'7at.
programming students wouid learn about problem solving processes by the
nrcessariiv explicit nature or' programming, as they aniculate assumptions and
precisei~.spec~fvsteps to their problem solving approach. T h e second miluence
1s the widespread assimdation ot'constructivist epistemoioeies of l e a r n ~ n gmosr
,
f'arn~iiarrhrough P ~ a g e r ' swork. Papert (19;Z.a. 1980') has been 3n outspoken
advocate ot' the Plagetian account of knowledee acquisition through self-ptded
probiem joiv~ngexperiences. and has e.utenslve!y mfluenced conceptions of che
bene!its o i learnins programming. through "a process that takes place without
deliberate or okganized teachme" I Papert. 1980. p. 8).
Ross and Howe ( !981. p. 1431 have summarized Feurzeig ct al.'s (1969) four
claims for the expected cognitive benefits of learning programming. Initiallv.
most ourcomes were postuiated for the development of mafhemftcal thought:
"( 1 i that prograrnrnlng pro\.ides some justification for, and illustration of.
tbrmai ma:hemat~cal rigour; ( 3 ) that programming eFcourages children to
study mathematics through expioratory acrivitv; ( 3 ) that piogramrning gives
key insight into certain mathematical concepts: a n d (1) that programming
provides a context for problem solving, and a language with which the pupil
may describe his own problem solving."
Paperr ( 1973b) a r p e d for claims (2) to (4) in noting that writing programs o i
Logo turtle geometry is a "new piece of mathematics with the property that i t
allows iiear ~ ~ S C U S S Z Oand
R
simpif modeis of heuristics [such as debugginel that are
fogg! and confusing for beginners when presented in the context of more
traditionai eiementary mathematics" (our emphasis). H e provides anecdotes of
children "spontaneously discovering" phenomena such as the effects that
varyine numerical inputs to a procedure for drawing a spiral haye on the spiral's
shape. H e concludes that learning to make these "small discoveries" puts the
child "closer to mathematics" than faultlessly learning new math concepts.
Il'e find expanded claims for the cognitive benefits of programming in a new
generation of theoretical writings. In . t f i n d s t o m , Papert (1980) discusses the
p e d a-e o-.p surrounding Logo, and arques tha: cognitive benefits will emeree
from takinq "powerful ideas" inherent in programming such as recursion and
variables) in " m ~ n d - s i z ebites" ( e . g . procedures:). O n e of ;he more dramatic
claims is that if children had the extensively different experiences in thinking
about mathematics that Logo allows: "I see no reason to doubt that this difference could account for a gap of five years o r more between the ages at which
consenation of number and combinatorial abilities are acquired" ( p . 175).
Paper: is referring to extensively replicated findings of a large age gap between
the early consemation of number (near age 7 ) and later combinatorial abilities
(e.g. constructing all possible pairings of a set of different colored beads, near
age 1 2 ) .
Feurze:g ct ai (iOS!! prov:de the most cxtensl\e se: of cognltibe outcomes
eupected from lertrnlng :o program Thev a r p e [ha: "the teaching of the se: of
ionce2ts re!ated to programming can be used to p r o v ~ d e3 natural foundation
:or the t e ~ c h l n gof mathematics. and Indeed for the notlons and ar: of log~cal
. . Learning to program 1s expected to brmg
m d rigorous thlnking in qenerai
bout se..en iLndamen;d changes in thoclght
l i riqorous :hinking. precise e s p r ~ s s i o n .recogn~zedneed to make assurnpr!,,ns explic:~(since computers run speci~icalgorithms~:
i 2 ) understandinq of general concepts such as formal procedure. variable.
hnc:ion. and rransforma:ion !since these are used in programming):
( 3 ) greater facility with the art of "heuristics", explicit approaches to
,
problems usefui for solving problems in an-v domain, such as p l a n n i n ~ finding
related probiem, soiving the probiem by decomposing i t into parts. e x . isince
"programming provides highiy moti\.ated models for the principle heuristic
concepts"');
1 - 1 1 the qeneral idea tha! "debugqmg" of errors is a "constructive ar,d
2iannable actlv~ty" apphcable :o a n \ kind o i problem soiv!r,g lslnce i t is so
!r.?egrai to the interac:ive natur? of [he task of e : t l n g programs to run as
intended).
( 5 ) the senera1 idea that one can invent smail procedures as building blocks
for gradually constructing solutions to iarge probiems (since programs
composed o i procedures are encouraged in programming);
I 6 I generallv enhanced "seif-con~c~ousness
and literacv about the process of
s o i ~ ~ nproblems''
g
( d u e to the practice of dtsczur:ng the process of p r o b l e n
soivlng In programming bv means of the !aqguage of programmmq concepts*,:
1 7 ) enhanced recognition for domains beyond programfiing that there is
rarely a single "best" way to do something. but different ways that have
comparative costs a n d benefits with respect to specific goals (learning the
distinction between "process" and "product", as in Lt'erner. 1937).
.Asking .*.hether programming promotes the development of higher cognitive
skills raises two crntrai issues in developmental cognitive science. First? is i t
reasonable to expect transfer across knowledge domains? Even adult thinkers
are notorious for their difficultv in spontaneously recognizing connections
between "problem isomorphs." problems o i identicai logical structure but
' Hopes chat l e a r n ~ n grhr conceprs a n d lanquaee char underlie p r o q r a m m l n q will change the
wav a learner t h ~ n k so i non-proqrarnrnlng problems rccdls the stronq f ~ r m u l a r i o r .of :he Sapirh'hor:'hvpothesis: rhar available l i n q u ~ s t ~labels
c
constram avcc~labiethoughts. T h e strong iorm
ot this n v p o t h e s ~ shas been exrens~veivreiuted (e.y. C r o m e r . 19T-!):only a weak version I S
consistcnr ,rrlth evldence o n lanquaqe - thouynt rel~rioqshlps..\valiabie labels in one's ! a n p a g e
mav hcditate. bur a r e nelrhcr n e c e s s a n nor sufficient for p a n i c u i a r forms of rhinkmg, o r
concrptuai distinctions. Cateqories of rhoughr mav provide the foundarion for lmquisric
isregories. nor oniv rhr reverse T h e s a m r polnr a p p i ~ e s10 [ h c lankpaye of p r o y r a m m i n g .
. .
cnKp;.,!ed 3,. rr5er:li)n on rhr cl>r,:roi or :nrlr o h n r.lental activities I Brown.
.
I3rans:brd. F e x a r a & C ~ a ~ p i o n!r983;;.
T.
J. de~:eiopr-nentaiist. there Is 3 rx+:or ~ r a b i e r r .per-;adii-.g each of these
.
.
. .
.,.
;~::~irrrix:ions ni tne c:iec:> c n h!+rr t21nkinr skiiis :s?ec:ed from Irainii~y
..
:c pr04r5.m. P r o ~ r a ~ r n i nser.es
g
3 s a " b i x k box.
an ilcanalyzed acr:vicy.
wloje e&c:s are ?rrjurned t i j irraciate :hose exposed ro i t . Bur cjucsrions abou:
rks de\rloprr,e:?t of' programming x d l s require 3 breakdo\vz of c5e skills into
ic;m?oncr.! ztbiliries. and studies of how speciric aspects of progyarnming skiil
-,
1 r e s c q i ~ l r e d . i ne\. iequise r t s p e c ~ a :s~e~r ~ o & considera:ior, of the develop,
.
rnt-nr.11 r d e s piayrd bv the writes::
in~erpitnerra:ing :ne d a c k box: :he prozramrriins enviroEment. the insrruc~ionai envirorirnenr, arid rhe reievan:
2nderj:andings a n d
of rhe Ifasner.
The question of the r d e of contpxrs in learning " p r o c p m m i n g " is cornpiex.
:~rcsuse" p r o 5 r a ; n ~ i n g " is nor a u n i r a n skill. Like reading. i t is comprised of
3 a
l :?
r u m b e r oi'abilities thar ii:;erre!atc with rhe orpmzatiori of the iearner's
:i:lo\\.led;re base. mernorv and proccsslng capacities. repertoire of comprenension srracegies. a n d senera1 problem-soivins ~biiitlessuch as cornprrhensior.
menirering. ~ n f e r e n c m g , and !:yporhrsis generacion. This lrcscin has been
.
etched in hich reiief' rhrouyh :nt:.nsive effor~sto develop ar::t~ciai inre!lisence
,-.,,.>terns that "zndersrand" na:srd i a n p a g c text je.g Schank 3i Abc!son,
I?:;;
Schank. 198'2). Skilled reading $so r e q u i r ~ s wide experience with
differen: g m r e s i e . ? . narratlqk.e.zisays. pGetiy, debarc) and with different 5oa.i~
of reading(e.p. rcadir-q ior gisi. cor?rent, jrl;lct,. .As reading is often equated wirh
skill is decoding. "!earnin3 to program" i i ~schoois is often equated wirh
iearnine the -.ocaSular:; and jv?it'LX ot' a programming 1 m p a q e . But jkiiled
pmgrainrnin<. Iike read:ng, is c9mpie.u and coctest-dependent, so we must
beein to unpack the contexts it: :vt;~ch?rcq3rr.=ing is carried ou: a n a i e a r n ~ d .
1
'
T t
-
3
.
Le3:ninq cornpurer proyrsmmin<
;4.5
Environmeztc in \\.hich children learn to read are usuaily o v e r l o ~ ~ because
ed
~ d e q u a t eenv:ronments ( e 3 plenty of books. good lighting, picture dictionar~ e s good
.
readers to help with hard words, v o c a b u l a y cards, phonics charts) are
:aken for gracred. By contrast. good p r o q a m m i n q environments are not
senerally avaiiable to schoois. Derermining how children develop prograrnrni~g
skills ,&.illnot be possible without due consideration of the p r o q a m m i n g en;~ironmentin ~vhichlearning and development takes place. and of how learniny
x:ivitles are orgmized.
P-qwnrning txlronment
The distincrion between a programming language and a prognrnming environment is crucial. .\ programming language is a set of c o m m a ~ d sand rules
tbr command combinations that are used to instruct the computer to perform
jcecified operations. T h e programming environment, on the other hand. is the
:ar?er coliecticn of software (operating systems and programmins tools) and
h x d w a r e (memory. disk storage. hard copy capability) avallab!e to the programmer. It can include an editor program to facilitate program writing, code
revising. and copyinq useful lines of code from one proqram to another:
debugging aids: elaborate trace routines for following the program's tlow ot'
control; automatic documenters; cross-reference utilities for keeping track of
variabies: and subroutine libraries.
Good prosramming environments (for example. those most extensively
developed for .*,orking on large computers in Lisp and PL/I) make the coding
aspect of programming far more efficient. allowing he programmer to concentrate on higher level issues of program design, efficiency, and elegance. In
contrast, the programming environments provided for today's school microcomputers are so impoverished (typicallv consisting of only a crude editor and
limited trace functions) that entering the code for a program and just getting it
to execute correctly is the central problem.
Finally, despite vigorous a r p m e n t s about the educational superiority of
different programming languages, there are no data on w h e ~ h r rdifferent
lang-uages lead to significant differences in what children need to know prior to
programming. or what cognitive benefits they derive from i t . .Although such
differences between languages may exist, they d o not affect our point. since
these differences can be manipulated radically by restructuring the pro<ramming environment. Attention is best directed to general issues about programming, rather than those that are programming language specific.
Instructional enx'ronment
L%'hile featilres of the programming enrironmenf are important ior learning to
program, how successfully a child will master programming also depends on the
~nstructzonaltnxronment and the way in which resources such as computer access
rime and file storage are allocated. Each of these points concerns the context of
cognltlve acti\.ities. which we know from cognitive science and developmental
psycholop to be critical to the level of performance achieved in cognitive tasks
e . g ior revieb s. see Brown et a'. 1983. Laboratory of C o m p a r a t ~ v eHuman
Cognition. 1983 I
Decidine horn to introduce programming and asslst students in learning to
program is hampered todav bv the paucity o i pedaqoeical theom. That current
..the! !rrtrnlng" approaches to proyramming instruction are inadequate has
become apparent from studies of the kinds of conceptual errors made bv novice
proqrammers instructed in that w a y . For example. novice adult programmers
re\,eal d r c p misunderstandines or' programming concepts, and of hob different
iines oi pro5ramming code relate to one ancther in program organizatior.
I Bonar 9 SoIowa)-. i % 2 . Je!'iriec. ' 482. Sheil. 1C80. 1981a; Soloway. Bonar &
Ehri~ch.1983. S o i o w a ~ .Ehrflcn.
.
B ~ ~ n &a rGreenspan. 1982'1 As expected from
hhat thev are taught. the:- knob the vocabulan and syntas of their programming l a n p a g e . Their rnisundersrandi~gsare much deeper Ueffries. 1982j,
such as assuming that all variables 3re global (when some may be specific to one
procedure), and expecting that o b s e r i n g one pass through a loop allows them
to predict what will happen on all subsequent passes (although the outputs o i
prograrnmlng statements which !erl for certain conditions ma\; change what wiil
happen during any specific loop I Research by hlayer (1976). lLliiler (197.1).
and Sime, .Arblaster and Green (1977) has revealed that adult novice programmers have a difficult time generally with the flow of control concepts
espressed by conditionals ifor a review of these findings, see duBoulav. O'Shea
& hlonk. 198 1). These conceprsd difficulties, even a m o n g professional programmers. have been lamented by such programming polymaths and visionaries as .Ifinsky (1970) and Floyd (1979) as due to problems with how
proqarnming is :aught. T o o much focus is placed on low level form such as
grammar. semantic rules. and some pre-established algorithms for solving
classes o i probiems, while the pragmatics* of program design are left for students
to discover for themselves. Interestingly. these compiaints about writing
r
O n e manv distinquish ior ~artific:al;proqramminq l a n p a g e s , just as in the case of natural
l a n p a e e s . berween three major divisions ofsmtorrcs, or the scientific study of properties oisuch
signalling svstems ICrvstal. 1980'1 These three divisions, rooted in the philosophical studies of
P e ~ r c e .C a r n a p . and h l o r r ~ s .are "Snnanrrrs. the study of the relations between linguistic
expressions and the objects in the world ~ h i c h:he\. refer to or describe. synrartrrs. the study of the
relation of these expressrons to each other, and p r a p t t c s , the study of the dependence of the
m e m i n g o i these expressions on t h e ~ rusers including the social situation in which they are
u s c d ~ "tibid . p. 3161. Studies of natural ! a n p a q e pragmatics have focused on the "study of the
iazquagr from the polnt of view of the user, espec~allvof the choices he makes. the consrrarnrs he
encounters in using language rn soclal interaction. and the effects his use of language has on the
other part~cipantsin an act oicommunication" (ibid.. p. 2 7 8 ) .
.A!though there are important d~sanaloqiesto natural l a n p a g e , a praqmatics of prograrnmlng
lanquaqes concerns at least the studv of programming languagels) from the viewpoint of the use:.
especidlv oi tne I d e s i p I choices that he or she maites in the organ~zationof lines of programmine
code within proqrams !or soithare svstems]. the constraints tnat he or she encounters (such as the
requirements o i a debuggable program that is well-documented for future comprehension and
m o d ~ f i c a t i o nin~ using programming l a n p a g c in social contexts, and the effects that his or her
uses of programmrng language have on the other participants (such a < -he computer, as ided
interpreter. or other humans! In a n ac: ofcornmunrcation involving the
: of the programming
lanpage
programs are s l m ~ i a to
r those vo~cedabout how writing in gmeral is taught ! e.g.
Scardamaiia 3 Bereiter. 1383).
What do we know about conceptual problems of children learning to
program' Problems similar to those of adult novices are apparent. T o take one
example. in our research with 8- to 12-vear-old Logo programmers iKurland 9r
Pea, 1983), we tind through rhelr t h i ~ k - a l o u dprotocols and manual simulation
of programs that children frequently adopt a systematic but m i s p i d e d
conception o i how controi 1s passed' between Logo procedures. hlany children
beiieve that placing the name of the executing procedure within that procedure
causes execution.to "loop'' back through the procedure, when in fact what
happens is that control is passed to a copy of the executing procedure. This
procedure is then executed, and when that process is complete. passes control
back to the procedure that last called i t . Children adopted mental models of flow
of control which worked for simpie cases. such as programs consisting of onlv
one procedure, or tad recursive procedures. but which proved inadequa:e when
the programming goal required more compiex programming constructions.
In other developmental studies of Logo programming skills (Pea, 1983). even
among rhe 25 5 of the children (8- and 9-year-olds: 11- a n d 13-year-olds) who
were extremely interested in learning programming, the programs that they
wrote reached but a moderate level of sophistication after approximately 30
hours o i on-line programming experience during the year. Children's grasp of
fundamental p r o g r a m m i r , ~concepts such as variables, tests, a n d recursion. and
of specific Logo primitive commands such as "REPE.AT," was highlv contexrspecific. For exampie, a child who had written a procedure using REPE.?IT
which repeatedlv printed her name on the screen did not recognize the applicability of REPE-AT in a program to draw a square. Instead, the child rfdundandy wrote the same line-drawing procedure four different times. Ct'e expect
that carefully planned sequences of instruction will be important to ensure [hat
programming knowledge is not "rigid" (Werner, 1957). c r "welded" (Shif.
1969) to its contexts of first learning or predominant use. Such rigidity is a
common finding for early developmenral levels in diverse domains (Brown e! al..
1983).
>lore broadly, in the National Assessment of E d u c ~ r i o n a lProgress s u n e y of
2500 13-year-olds and '7500 17-year-olds during the 197; - 1978 school year
(National Assessment of Educational Progress, 1980), even among the smail
percentage who claimed to be able to program. "performance on flowchart
reading exercises and simple BASIC programs revealed very poor under* The concept o i "flow ~f control" reiers ro [he sequence of operations that a computer
proqram specifies. T h e need for the term emerges because not dl control is Ilnear. In llnesr
control. !ines oiprogrammlng tnsrrucrlons would be execured in srricr linear order. first. second.
third. and so o n . But in vinuallv all programming l a n p a g e s , various "control structures" are
used to dlow nonlinear control. For example. one mav "GOTO" other lines in the program than
the next one in BASIC. In whlch case !low of control passes to the linc of programming code
reterred to in the GOT0 sratemenr. Because a ?rogram's "flow of conrroi" mav be complex.
programmers oiten ut111ze proqramrn~ngilowcharts. e ~ t h e rto serve as a hlgh level plan for
creatlnq t h e ~ rprogram. or to docilmcnt [he flow ol'control in their program
.-
standing of aieor;:hmic processes i n v o i ~ m gconditionai b r a n c h ~ n ~ " : ~ , c i tbv
ed
.-lr.de:sor,. 1!382. p . 1 4 1
ELucators oi'ten assume that adult programmers are not belertqlered by
c2;.ceptual problems In their proeramming. but we have seen thatjthev are.
O ~ c we
e recognize that programming bv "intellectually mature" aduits is not
ci.,xx:erlzed bv error-free. routine performances. we might better understand
dli:iculrirs o i children iearning to progrrtm. who devote only small amounts of
thri; schvoi timc to iearnin3 to program.
Tnese tindlngs lead us to two central questions about prograrnmir.9
1ns;r~~ction.
bhich b e define broadly to include the direct teaching p~ovidedby
e d u s ~ t o r s3s \,ell as the individual a d ~ k e modelling,
.
and use of metabhors with
which they support instruction and learning. How much instructloni and what
type. o i instruction, should be offered? H o w much direct instruction- is best for
chiidren to learn programming is a contro-..ersial question (e.g. Hdwe, 1981;
Papert. 1980'1..-it one extreme schools teach programminq as any othe; subject
*ith "fact sheets" and tests: at the other, they provide minimal instruction.
e n c o u r a ~ i ~children
g
to explore possibilities, experiment, and creati-their own
probiems to solve. This second approach. popularized by P a p e n (19kfi. argues
tha: little overt instruc~ionis necessary if the programming languag; is suificiently engaging and simple to use. while at the same time powerful enough for
chiidren to d o projects that they find meaningful. Though this' discovery
learning perspective is not universally shared. even by Logo devotees ( H o u e .
1x81), i t has had a penasive icfluence over uses of Logo by schools.
[\'hat t y p e of instruction should be offered. and x h e n in the course of programming skill de~-eloprnenrspecific concepts, methods, and advice should be
inrroduced are also critical questions. T w o central factors are implicated by
cognitive science studies. O n e is the current mental model or system of knowledee that the student has available at the time of instruction. A second is the
goal-relevance of the probiem solving activity required of the student. O n the
first point, there are n o careful studies of the success of different instructional
ac:s as a function of a student's level of understanding for programming akin to
those carried out by Siegler (1983) for such concepts as time, speed. and velO C I : ~ . .-it a more general level, Xlaver (1979, 1981) has shown that a concrete
c o ~ c e p t u a lmodel of a programming system aids college students!in learning
B.\SIC by acting as an advance organizer of the details of the languaqe. With
the conceptual model, learners were able to assimilate the details of the programming language to the model rather than needing to induce the.model from
the derails.
O n the second point, we would ask how compatible are the teacher's instructional goals with children's goals and purposes in learning programming?
Recent developmental cognitive science and cross-cultural studies of cognition
( e .s. Brown, 1982; Laboratory of Comparative H u m a n Cognition,' 1983), have
shown thrt; assessing task performance within a goal structure familiar to the
person is necessary for determining the highest developmental level of an individual's performances. For learning to program, goals of the programming
ac:ivity need to be conrexted for the child in terms of other meaningful and goal-
.
direcrecl acriviries. conneccing either to everyday world affairs, to other aspec:s
o i the curr:cuiurn. or to both. Papert (1980) has described this as "syntonic"
iearning. For exampie, in our studies Logo classroom children found two
contests especiailv motivating. cresting videoqames ar.d slmuiating conversations. T h e most intensive and advanced programming e i f o r s Isere in the
w ~ i c ot'chiidren's
e
gods such as rhese. Dewey's ( 1900) point about the import~
in the new skill 5en.e as more adequate
;inctt tbr a? iearning :hat d e eiopments
means for deslred ends :hus again receives new support .\ s i m ~ l a remphasis
ilnderlies rhe ~uccessiuluse o i c!ecrronic message and publishing systems in
classrooms !e . s. Slack. Lr:m. Xlehan & Q u i n n , 1983; Laborator; ot' Comparative H u m a n Co&ition, 1982). Embedding computer programming activities of
increasing cognitive cornplexitv in children's goal structures may promote
!earning to prosram and support the transfer of what is learned in programming
to problem soiv~ngactivities in other domains.
O u r pomr t h r ~ u g h o u trhis section has been that programmine is not taught
by computers or by programming i a n p a g e s but by teachers. with the aid of the
supports of a programming environment. How effectively children of different
ages and with different background knowledge learn programming will be
contingent upon the capabiiiries of their teachers, the appropriateness of their
learning activities to their current level of understanding in programming, and
the features available :n their programming environment. Studies to date have
not incorporated these considerations thar a developmental cognitive science
perspective recognizes as centrai.
h'H.AT IS SKILLED PROGR.\.LIXIIXG'
How to define and assess the constellation of skills which comprise programming has long been a major probiem for industry (Pea & Kuriand. 1983b). and
is becoming so ;or schoois. Li.e define the corp sense o i "programming" as the
set of activities involved In developing a reusable product consisting of a series
ofwritten instructions that make a computer accomplish some cask. But in order
to move from definition to insrr~ction.one must begin to unpack "programming skill", in contrast to the black box approach to programming prevalent in
schoois. Promising moves in this direction have alreadv been provided by
careful analvses of what expert programmers do, and what types and organiza:ions o i knowledge they appear to have in memory that they access during
programming. This research strategy, characteristic of cognitive science, has
reveaied significant generai features of expert problem solving skills for diverse
domalns. such as algebra (Lewis, 1981), -chess (Chase Sr Simon. 1973).
geometry (.Anderson. Greeno, m i n e & Seves. 198 1j, physics (Chi. Feltovich S:
Glaser, 1981: Larkin. hlcDermott. Simon & Simon. 1980). physical reasoning
(,deKleer & Brown. l98! ,t, and writing (Berelrer Sr Scardamalia. 1982). and i t
is providing new insights into components of programming skill. In terms o i
what a programmer does. a set of activities is involved in programming for either
novices or experts, which constitutes phases of the problem solving process (e.g.
Sewell rSr Simon. 1372: Polya. 1957). These activities. which may be invoked
at any rime and recursiveiy during the development of a program. are: ( 1 )
understandin: :he procrammlng probiem. 1 2 ) deslenlnq or planning a proqramming soiution: ( ? wriclnr :he progr;lmm:nq code that ~mpiementsthe
p:ar?..and ( - 1 . 1 comprehension of :he wr::ren program and program debugging.
.\r. extensive re\.iew of these coqi:ive subtasks of proqramrnlng mav be found
In Pea and Kurland i l983b).
In terms o i what an exper: proqrarnmer kno;l,s. findings on the knowledge
schemas. memory oryan~zationsand debuggin5 strategies which expert programmers possess are of parricular interpst R-cent studies o i proeramrners
ih;lracterlze high-le\.el programmine skiil as 1 yianr assembiage of highli
specific. low-le\,el knowiedgr fragments (..itwood & Ramsey, 1378: Brooks.
1977 1. T h e design of functional "programmer's apprentices" such as Barstow's
1 1979) K n o z i e a g e Based Propam Construrtzon. and Rlch and Shrobe's "Lisp programmer's apprentice" ( R i c h & Shrobe, 1978: Shrobe. Lt-aters & Sussman.
1979: M'aters, 19831, and the X I E N 0 Programming T u t o r (Soloway, Rubin.
Ll'oolf. Bonar Sr Johnson. 1982'1 has involved compiling a "plan l i b r a n " of the
basic programming "schemas." or recurrent functional chunks of programming code :hat programmers are alleged :o Ese Observations of programmers
support these introspective analyses of "chunk ;" oi' programming knowledge
Eisenstadt. Laubsch and Kahney (1981) found that most novice student
prosrams were constructed from a small set of program schemas. and Jeffries
I 1982). in comparing the debugging strategies of novice programmers and
graduate computer science students, found that expens saw whoie blocks of
code as instantiations of well-known problems such as calculating change.
Soloway and colleagues (Bonar. 1982; Ehrlich & Soloway, 1983: Johnson.
Draper B SoIowa).. 1983; Solowav Sr Ehrlich. 1982: Soloway, Ehriich, Bonar 8:
Greenspan. 1981; also see Kahney Sr Eisenstadt. 1982) postulate a mode! in
~\.hichproqrammers use recurrent plans as "chunks" in program composition.
and identi'fied such plans in programs writren by Pascal novices (e.g. the
"counter variabie plan"). But for developmental cognitive science we will need
studies of how students mentally construct such plan schemas from programming instruction, experience, and prior knowledge.
.A related aspect o i programming skill is the set of rules that experts use to
solve programming problems. but aqain we lack genetic studies. In an analysis
of a programmer's think-aloud work on 1 3 different problems, Brooks (197;)
demonstrated that approximately 104 rules were necessar). to generate the
protocol behavior. Similarly, Green and Barstow (197'8) note that over a
hundred rules for mechanical!y generating simple sorting and searching
algorithms (e.g. Quickson) are familiar to most programmers.
.A third aspect of programming skill is the ability to build detailed "mental
models" of what the computer will do when a program runs. .An expert programmer can build dynamic mental representations,. or "runnable mental
models" (Collins & Gentner, 1982) and simulate computer operations in
response to specific problem inputs. T h e complexities of such dynamic mental
models are revealed when skilled programmers gather evidence for program
bugs and simulate the program's actions by hand Ueffries. 1982). Not all
program understanding is mediated by hand simulation; expens engage in
! o b i s e ~ r c h e s!br program oryanizationd str4c:ure. p i d e d by %dequace
p r o s r a 3 documenration. a strate? a ~ l nto what espcrr readers do (Brown.
1'183b. Brown & Smiiev. 14;8: Spiro. Bruce 9 Brewer. 1480). How individuals
,
.
ze..x:up juch rich procedural u n d c r s t a n d ~ n g j:S currently unknown.
E.uperr progrrtmmers not only have available more knowiedqe schemas.
str;l:egies. m d r d e s applicabie to solving programming problems. but they
pcrriel\.r and remeAmber large: "ihunks" of i n f o r m ~ t i o nthan novices. T h e
iiaisic Cha-.e m d Simon ! 13;3 J !inding oishor7-term m e m o w span ad,-.anra<es
L r chess ssperts over novices for meaninqfui chessboard configurations
but not I j r ran,dom c o n i i p r a t i o n s has been repiicared for programming
( C u r r ~ s .Sheppard, hlilliman. Borst & Love, 19T9; hicKeirhen, Reitman.
Ruerer & Hirtle, 1981; Sheppard. Curtis. hlilliman & Love, 1979:
S c h n e ~ d e r m a n .i 97- For example, hlcKeirhcn er c11 ( 198 1j found that experts
clusrere-d k e y - ~ o r dcommands according to meacing ( r . 5 . those tinct ion in^ in
locjp jtatements). whereas n o \ x e s clustered accordin? ro a varier:,. of surface
ordinar?. l a n p a q e associations (such as orthographic similaricy and word
lexqrh), intermediates iallinq between the two. Similarly, Xdelson ( 1981) found
that recall clustcrs for experrs were iunctionaily or "deepiv" based; chose oi
novices were based on "surface" features o i p r o g r a m m i n g code. This is a major
developmental transformation. bur we do noc understand how i t occurs.
DiPersio. Isbisrer and Shneiderman (1980) extended this research bv
dernons:rating that performance . by college students o n a program
memor:zarion~reconstruction task provides a usefui predictor of programming
test pertbrmances.
It is also a widely replicated tinding that exper: programmers debug
programs in different wavs than novices \.\:wood & Ramsey. 1978; Gould.
1375: Gould & D r o n g o ~ , s k i .1974; \rVoungs. 19y-k).Jel'fries (!98'7) found :ha:
prozram debugging involves comprehension processes a n a l o ~ o u sto chose for
r e a d ~ n gordinary l a n p a g e prose. Experts read programs for [low of control
I sxecutionj. rarher than line-by-line (as text). But how d o proyrammers shift
from surface to deep readings o i programs as they develop debu9:ing skiils?
In conciusion, u e make one imporrant obsewac:on. Expert programmers
k nu\\
- . much more than the facrs of programming languase semantics and
syntax. Ho\%.ever,the rich knowledge schemas, strategies. ruies. and memory
organizarions that rxper: programmers reveal are directlv taught only r a r ~ l v
hlany students appear to run aground in programming for lack of such understandings. This does nor mean that they could not be tauyht. but for this to take
piace effect~veiywill require considerable rerhinkinq ofrhe rradit~onalcomputer
science curricuium. These cognitive qualities appear instead to be a consequence o i an active construcrive process of capturing the lessons of program
writing experience for later use.
LEVELS O F PROGR.\.LI.LLING S K I L L DEX'ELOPXLENT
T o date. observations of leve!s of programming skill development (cf. H o ~ e .
1980) have been extremely general and more rationallv than empirical!>. .. .
derived. .Accounts of novice - expert ditferences in programming ability among
. .
;ic;i,:s I . ( , ~ p ~ :\::h
r?
~b-er\.ar~oni;
of children l e a r n ~ n n:o ~r:>":3-m ?rovic+: J.
srJr:ir,s poln: tc;; de,. .;l:opine 3 :asonomv ofle-.eI.; of prograrnrnlnq proticienc.b.
Ti115 rasonom\ c j n ~ d ~ oducr research by providing a deveiopmen:a! fraixr\cork \\i:hin ~ h ~ :o
c hassess 3 student's p r o e r a r n m i n ~~ x p e r r l s em d make
pr&lit;ons tbr tvpt. oi rr~nsi'er beyond proqramming as a funct~or!o i a
sruder.;'r level o r ' e s p r r r ~ s e .
i \ ' c bei~e.:r that a: ;east iour dlsrlnc: levels of proerammlnq ab~iirvcan be
~dr.r,:~:red
that ha\.e d ~ s t ~ n :rnpilcations
cr
for whar rype of skills m ~ e h rrranster as
thr r e i i r ot their a c h ~ r - . ? m e n :These leveis represent pure :).pes and mav no!
be i h x a c r e r ~ s r i co r an ind~:.ldaal. but the\ capture some comp1ex:ries :n what
i t means ro de\eiop prograrnnlng skllls. Lt'e view these le\-els onlv as exides
!g\vard more adequate charac:eriz;lt~onsof the development of programrzlng
~ b ~ i ~ t Further
~ e s . difi"erentiatl~~n
will inevitably be required. in terms of the
coqn~rivesubtasks ~nvolvedIn [he levels. and refined sub1e:-els.
.A 5:udenr rv?icaliv it.arns tc esecure d r e a d v wrltten proerams such as games.
demonsrrarionc. o r compute--assisted instruction lessons before beginning
insrrucrlon in h o to
~ program. LVhar is learned here IS important ( i - e . what
specific keys do. h o to
~ boot a disk. how to use screen menus), but does nor
rt.xeal OM- the proqram works o r that a program controls whar happens on :he
scrren. For many computer users t h ~ sl e ~ dis sufficient for effective computer
use i r 2.for word processing. game playing, electronic mail). Bur to be more in
control of rhr compurer and able to tailor its capabiliries to one's own goais,
some Type of p r o y r a m m ~ n yis required.
From :his levei ~ . t l t.\.ould expect relatively little transfer beyond cornpurer
use. but some rrans:er on computer literacy issues. For example. given suificienti)- wide exposure to different types o i programs, a student would be
espec:ed to know what computers are capable of doing, what they cannot do.
and fundamental aspects of how they iunction in their everyday 11ves.Xs users,
ther,. children might learn when computers are appropriate tools to apply to a
problem.
ir;?,11 Coot
YCnersmr
A r rhis level [he sriident kn0h.s the syntax and semantics of the more common
commands in a l a n w a g e . H e o r she can read someone else's program and
espiain w h ~ each
t
iine accomplishes. T h e student can locate "bugs" preventing
commands from being executed ( e . g . syntax errors): can load and save program
ides ro and from an esrernal storage device. and can write simple programs of
the !:.pe he or she has seen previously. When programming, the student does
very Ilrtle preplanning and does not bother to document his o r her programs.
There I S no effort to optimize the coding, use error traps, o r make the program
usabie by others. .L\ program created at rhis level might just print the student's
narnr repeatedly on [he screen o r draw the same shape aeain and agair, in
dlferent coiors. T h e student operates at the level of the individual command
and does nor use su'zrout~nesor procedures created as parr o i other programs.
This ievel of undersrandlng of the programming process is sufficient for creating
short programs. But to create more widely useiul and tlexible programs. the
student needs to progress to at least the next level.
.\: level 11, more specific types of computer literacy related rransier would be
expected. Students should deveiop better skills for deaiing with more sophisticated software tools o i the type which are rapidly permeating the business
world. Computer-naive users o i office information systems. even calculators.
have many probiems I e . g . h l a n n . 1075: Nickerson. 1981) and construct naive.
error-ridden menrai mode!s ot' how thev work ( > l a v e r 8 Ba-:man. 198 1 .
Newman 9 Sprouil. 1";9: k'ounq. 1981 ) . Knowledge character~sticoi:hls Ievei
may be required to attenuate these probiems. Shed ( 1980, 1981a. b ) provides
compelling arguments that most systems require low level proeramming if the
user wishes to take advantage o i system options, a basic competency he has
designated as "procedural literacy."
CVhiir potential computer literacy transfer from low level programming
exposure seems a reasonable expectation. what types of cogn.ti\.e transfer
should ocur from this levei of programming expertise is disputabl;:. O u r observations of children programming at this level suggest chat some appreciation o i
the distinction b e ~ w e e nbugs and errors. degrees o i correctness, and the value
of decomposing prograrn goals into manageable subparrs may develop and
.transfer to other domains. bur that a student's attention is typicallv so rilreted to
simply getting a program to work chat any appreciation for more generai
cognitive strateqes is lost.
Lccci 111 Propam jmnaror
.At this level the student has mastered the basic commands a n d is beginning ro
think in terms of higher level units. H e or she knows sequences of commands
accomplish program zeals i e . g . !ocate and verify a keyboard input: sort a list of
names or numbers: or read data into a program from a separate :ext file). The
student can read a program and explain its purpose, what functions different
parts of the program serve. and how the different parts are linked together. T h e
student can locate bugs that cause the program ro fail to function properly (e.5.
a sorr routine that fails to correctly place the last item in a list) or bugs that cause
the program to crash as a result o i unanticipated conditions or inputs (e.g. 3
division by zero error when the program is instructed to find the mean o f a null
list). T h e student can load, save, and merge files and can d o simple calls to and
from files from inside the main prograrn. T h e student may be writing fair!.,:
lengrhv programs for personal use. but the programs tend not to be userfriendly. Lt'hile the student sees the need for documentation, he or she does nor
plan programs around the need for careful documentation o r c!ear coding so
that the program may be maintained by others. For this general level. one car,
expect to identify many sublevels of programming skill.
Ct'ithin this level of expenise. students should develop some appreciation ior
the process of designing a successful prograrn. Such understanding has potentially powerful implications for their work in other domains. particularly if such
relationships are explicitly drawn by the teacher for students, o r exemplified in
other domains. However, i t appears from our classroom observations and inter-
L
-
vie\\ s bith teachers :hat for students to jpontaneousi>. transtrr computa:ior.L
concepts or i a n m a g e construc:s used I R one area oi'programmlng :o other proqr.imrnlne projec7s 1s a malor a. rnplishment. Ideas about when to use \..a;;ables. or the vaiue o i piannlng. as in designing proyram components so :ha:
they can be reused in the future. and following systematic con\.entions (such 3s
beylnnmg ail yraph~csdesigns at their lower left corner] to make merg1r.g
components Into programs easier are ail important accomplishments at tki:
levei that shvuid not be ~ a k e r For
, granted.
Finaii~..at t h ~ sievei rhe student is ready to wnte programs that ate not or.;..
compiex and t+e fui! a d v a n t q e of the capabilities of the computer, bur are
intended to Se used by others. T h e student now has a full understanding o i i!
the features o f - a lanquage and how the language interacts with the hos:
computer ( e . g . how m e m o n is allocated or how graphics buffe5s may be
protected fr3m bein2 ovemrirten). Ct'hen given programs to read. the studenr
can scan thr code and slmulate mentally what the program is doing. see how the
goais are ac-~ievedand how the programs could be better written or &!apted :br
other purposes. Programs are now written with sophisticated erroh traps and
built-in tests to aid in the debugging process and to ensure the program is crashproof. Beyond w r ~ r i n gcode accomplishing the proqram's objecrive.'the studen:
can optimize coding ro increase speed and minimize the memory'required :o
run J. p r o s r a m . T o decrease the rime needed to write programs, he o r she dra3h.s
hea~.ily-onsoftware libraries and programming utilities. Finally, h e o r she oirer.
c d t c a design for the progrlm b e h r e generating the code. documents rhe
program fully. and writes the program in a structured. modular fashion so :hat
others can easily read and modify i t . hlajor issues in software engineering at
high suble:.els within this level of experrise are discussed by Thayer. Pyster and
ll'ood (1981 ) .
11 is at tnis level of programming sophistication that we would expect to see
most extensive evidence for cognitive transfer. T h e student can distance himself
or herself sufficient], from the low level coding aspects of
genera~ion
to reflect on the phases and processes of problem solving involved. The issues of
prosramming which the student is concerned with at this level 7issues of elegance. oprimaiization. efficiency. verificarion. provability. and style - begin
transcend low levei concerns with program esecution. and may lead him or
her to consider wider issues. T h e need at this level to be conscious df the ranse of
~ntendedusers of programs forces rhe student to take the audience. fully into
. .
account. a skill that has wide applicability in manv other domains, such as\vr:r:ne.
Implic~rir. these distinctions between levels of programming skill and :heir
linkins to predictions about rypes of transfer is a theor?; of programming at odds
with the "naive technoromanticism" prevalent in educational computing.
il'hile i t is conceivable that even low levels of programming skill are sufccient
to produce measurable coynitive transfer to non-programming domains, we
contend that on the limited evidence available, this would be unlikely. Students
who can bare!y decode or comprehend text are not expected to. be proficient
\.e dousr :>a: students b%ith a ]G\\ ie..el undersrand:r.q o i
~ r i r r r Simlla;:~.
~
programm1r.g ana :ne si\:il; thdr progr3mrnlng entaiis ~ l i i+rlte
l
func:ional
programs or g 3 1 ~~r.sighrsinto other domains on the Sasls of their limlted proersmmlng skill
Bevond asking \> har j r n e r d cognitive charxteristlcs may be prerequisire to
cjr subsranriveit intlueniz a chlid's learning to program. some ask whar
"developmental le,;ei" chlldrrn must be "at" in order ro learn from
proqrsmminq experiences' T h e concept o i "developmental level" at the
abstracr theorerlc'ai pianes o i preoperational. concrete operational. and ibrmai
operationai inceilectuai functioning has proved to be useful for instructional
pcychoioqy in understanding children's ability to benefit from certain types of
learning experiences i t s . < Inhelder. Sinclair & Bovet, 197-1). But the : - e ~
~ e n e r A i r yof these jtage descriptions is not suitably applied co the developmenr
of speciiic domalns o i knobledge such as programming skills.
it-e have two reasons i ~ riot
r pursuiny the development of programming skills
in terms of Piagerian "developmental le-v.els". First. there is strong evidence
rhat the development and dispisy of the lo*cal abilities defined by Piaget is
importantly linked to content domain (Feldman, 1980: Gardner, 1983; Piage:.
1972). to the eliciting context (Laboratory o i Comparative H u m a n Cognition.
1483'1.and to the parricular experiences of individuals (Price-M'illiams, Gordon
Sr Ramirez, 1964). Since i t is not apparent why and how different materiais
affect the "developmental !e-:el" of children's performances within Piasetiar,
experimental tasks. it is nor feasible to predict relationships between learning to
proqram 2nd pertormancrs on the Piagerian tasks. O u r second objection 1s that
learninq to program has neither been subjected to developmental analysis nor
characrerized in terms o t its component jkills rhat may develop, although such
analyses are necessary for articulating measures that indicate the avaiiabiiitv
and developmentai status of these skills for particular learners.
it'hile no research has been directly aimed at defining the cognitive prerequisites for learning programming, at least six factors are frequently mentioned:
marhematical abiiity. memory capacity, analogical reasoning skiils, condirional
reasoning skills. procedurai thinking skills. and t e m p o r d reasoning skills.
These cognitive abiliries. each o i which have complex and well-researched
developmental histories. are presumed to impact on learnins to program. and
could be promising direcrions for research.
Beyond "generai inteiligence". prosrammlny skill is said to be linked :o
general mathematical ability. Computers were first developed to heip sol\.e
difficult mathematical problems. Although man): computer uses today are nonmathematical ( e . g . data base management. word processing), the norion
persists thar to program one must be mathematically sophisticated. hledia
accounts of children using computers in schools have perpetuated the belieithat
programming is :he province of math whizzes. .Although we doubt that math
and programming abilities are related once general intelliqence is factored out.
Proqrarnm~nir 1s ocen a memory-intensive enterprise requiring great
. -~- L i c ~ r . : : a r 3rid
~ o n :he a t i i i ~ vro j u g l e values o f a number of parameters at a
rime Indi; t d u i d i t ' k r e ~ c r sin procrssiny c>ccicit?. are thus a likely candidate
:or ir.i!u,:nc~r,e lvho becomes a B O programmer.
~
Fom.ard and backward span
:3>ks. and morr rrcenril d e ~ r i o p e dtransiormat~onalspan measures icf Case &
I.;:iriaric; 1S180. C ~ s e Kur!and
.
& Goidbe:-4 19821 assess how much iniormat~on
onr can coord~nareat 3 qi\ en moment. and appear to index processes baslc to
i e a r n ~ n ~Performances
.
on such tasks ha\.-e reliably correiared with general
in:elliy-nce. Piayetian developmenrd ievei. and ability to learn and use
problem soi\-~ngstrategies ( e . g . H u n t . 1978).
.4~aioo1rc.rcaJonlnq
.A s r ~ d e n t may have background knowledge and capacities relevant to
proyra.nmin5 and ver n r ~ t h e rconnect them to the programming domain, nor
transfer kno\\.iedge acquired in programming to other domains. This "access"
of knc~%,ledeeis absolutel\.- fundamental to learning and problem solving
rhrouqhour life i e . 3 . Brown. 1482). Transfers of knowledge and strategies, both
"into" and "out o f ' learning co program may depend on analogical thinkinq
skills Tasks designed to measure abilities for engaging in analogical thinking
i e . 5 Gick 9 Holyoak. 1980: Srernberq & R i k i n , 1974j may predict level of
programmin? dei.eiopmenr and transfer outcomes. Xiaver (1975. 1981) argues
that studenrs learn programminq by comparing the tlow of control intrinsic to
computational devices to that of physico-mechanical models that they already
posse:s .\!so. duBoulav and O ' S h e a ( 19;6j and du Bouiay et af. (1981) have successfull!. used estenslve analogical modelling to explain computer functioning
to novice i 2-year-old programmmg students.
C-ond:::o~a.'.ccsonlng
Li'ork~newith cond~rionalstatements is a major part of programming. since
they v i d e the operation of loops, tests, input checking. and other programming
functions. I t is thus reasonable to predict that a student who has sufficient
understanding of condit~onallogic, the various " i f . . . then" control structures
and the predicate logical connectives of negation. conjunction. and disjunction.
~ v i l l be a more successful proerammer than a student who has trouble
monitoring the flow of control through conditional statements.
Several kinds ofquasi-procedural' everyday thought may influence how easil\
\\.hat is "quasi-procedurd" rarher than "procedural" abour q \ . i n q and iollowln~task
InscrJcrlons. d ~ r e c t ~ o n sand
.
recipes. I S chat unlike procedural inscructions in a computer
program, rhcre 1s often ~rnbrgui!~
In [he evervdav exarnpics, such that the inscructions. directions.
and recipes are nor alwavs uncqu~vocalin rneanlng They arc also not constraincd by scncr
rcou~[~af~!lO n e rnanv oiren choose to bypass steps In a reclpe or set of instructions, or reorder
[he steps. N e ~ r h e roptlon 1s available in !he srrlc! procedural~tvof programmed instructions y e t
s ~ r n ~ i a r i c betheen
~es
chr e v e n d a y cascs and proqramnilng in;cructions are compelling enough :o
rnakr their desiqnat~onas "quasi-procedural" understandable.
a learner masters the "iloh or' control" procedural mecaphor central ro
understanding programming, including q v m 3 and foilowinq complex
lnstructions (3s in budding a mode!), w r ~ t i n g or following recipes. land
c-ocing
or carrying out directions !br travel. Presumably. learners more
familiar with these i i n e x p r o c e d u r ~ s , analogous :o the flow of control for
computer operarions exprfssed AS Instructions in a computer p r ~ g r a m . ~ w i l l
more readii:. come to grips w!rh rhe "procedurai :hinkmgU touted as a central
face: ot' programminy experrlse i Papert. 1380; Sheil. i980). However: the
de:.e!opmeni or' procedurd thinking has been litt!e stadied to date.
..
T h e activity o f t e m p o r d reasonin? is related to procedural chinking, bur yith a
distinct emphasis. Creating and comprehending programs require$ an
understanding of the temporal logic of sequential instructions: "it ii the
intellectual heart of learning how to program" (Calanter, i983, p. l50). In
reaching programming. G d a n t e r says: "The cenrrd rheoreticai concept that
guided this effort was that classical forms of spacial - geometric - picioriai
thinking
must
be
augmented.
and
occasionally
replaced,: by
te.nporal - imaqnative - mernorial lo+c. T h e child must learn to substicqte an
inner temporal eye for the ou:er spacial eve" ( p . 163'). Going somewhere In the
program nex:. running one subroutine or procedure btjire another, ensuriqg one
counter does,noc exceed a cerrain value antzi another operation is perforqkd these fundamental operations all require temporal understanding. Yet understanding temporal terms 1s a major deve!opmental achievement, a challenge for
chddren younger than 7 to 8 years (e.2. Friedman. 1982; Piaget. 1969).
Futurity also presents complex conceptual probiems for the planning activities
in\rolved in proyramming, such as imaeining outcomes of the possible worlds
generated by program design options (.Atwood, JeiTr:es 3 Polson. 1980).j r :he
"symbolic executions" while writing programming code (Brooks, 1977).
In sum. the co9nitis.e constraints on developing programming skifls are
currently unknown. Although a developmental cognitive science persprctive
predicts that a studenr's attainable level of programming skill may be constrained by cognitive abilities required in programming. no studies re!are level
ot' programming skill to the abilities that we have described. Children m a s have
conceptual -and representarlonal difficulties in consrruc:ing dynamic G n t d
models o i ongoing events when the computer is executing program l i n k that
constrain their level of p r o q x n m i n g skill. Also, systematic but "naive" ~ e n t a i
models or intuitive epistemologies o i computer procedural functioning may
initially mislead chiidren's understanding ot' programming. as with adult
novices. Since learning to program is diificult for many students, [hire is a
serious need for research fndings that will guide decisions about tailoring programming instruction according to a student's re!evant knowledge prior to
learning to program.
E\.IDENCE FOR COGXITI\-E EFFECTS O F PROGR.OIXfING
We now return to evidence for the claims for broad cognitive impacts of pro-
:rxnrning cxprrience. with 3reater awarecess of the compiesities o f ; e a r n ~ n gto
prny-rtm dnd :sues o i transfer i n sum. there is little e;dence for :hese claims.
Dramatlc accounts have been offered of ho- some scnooi-aged chlldrefi's
:h~nkingabout their own abilit~esto solve problems is transformed through
Irarning to proqram ( e . 5 Paper: rr ai..1979: M.att. 198'7; tl'eir & Yr\.att. 1981;
e
1
I important social interactional chacqes have been demonstrated In
ciasjrooms \%.here c h i l d r ~ n are learnins Loqo proqrammlng (Hawitins.
5he1ngold.Gearhart 8 Berger. 1983). and for some children proqramming IS an
imporcant m d deepli p e r s o ~ a ltntellectual activity. Slmliariv. many tescher
reports focus on soclal and motivational rather than cognitive aspects of t h ~ s
experience . Shelnqoid. Kane. Endreweit & Billinqs, 1981. \\.at[. 1381 ). I t is not
yer d e a r M hai rhe cogn1tii.e bene!its of programming for such children may be
ir. terms of rhe transfer claims r e v ~ e u e dearlier.
O n :he coenitive side. Ross and Howe (1981) have reviewed ten vears of
relevan: research to evaluate Feurzeig el al.'s (1969) four general claims on the
coqnitive impacts of programming. T h e relevant research has been with Logo.
and i n nonrepresentative private schools. Below we summarize Ross and
H o ~ % e 'review.
s
and integrate summaries of other s t u d i e ~relevant to these
claims. In terms of o u r account of levels of programming skii: and expected
transfer outcomes from them. we must caution that studies so far. including our
o ~ \ . n .have an important limitation. They have all looked at what we have
desiqnared as high level or cognitive transfer outcomes. expecred to emerge only
at the higher levels in our account of programming skill. whereas the levels of
programming attained by the students in these srudies were low because they
only did six \\.eelis to a year or so of programming. In other words. there has
been a mismatch of "treatment" and transfer assessments because of a failure
to appreciate [he different kinds of transfer to investigate and their likely linkage
to different levels of programming skill. For example, there are no srudies that
ha\.e assessed the low21evel transfer or application of programming concepts
such as "varxible" in different types of programming within a language (e.g.
graphics versus list processing in Logo). or from one programming language to
another. or of computer literacy outcomes.
First. there are no substantial studies to support the claim that programming
promotes mathematical rigor. In a widely cited study by Howe. O'Shea and
Plane (1979). researchers who were highly trained programmers spent two
\.ears teachinq Logo programming to eleven 11-year-old boys of average or
below average math ability. T h e first year they studied Logo. the second math
\\.ith Logo. each boy working for one hour per week in a programming classroom. .After two years. when Logo students were compared to nonprogrammers (who on pretest had significantly better scores on the Basic
fath he ma tics Test, but equivalent scores on the M a t h Attainment Test), they
had improved in Basic Xlath enough to eliminate the original performance gap
\\.ith the control group. but fell significantly behind on the Math Attainment
Test. Such global math score differences d o not support the "rigor" claim. T h e
oitcited finding is that the Logo group learned to argue sensibly about
mathematicd issues and explain mathematical difficulties clearly, but the
Learnin9 cornpurer ?rogrlrnrninq
!30
finding is based onlv on differences in ratings of Logo and control students in
teacher questlonnalres (Howe t t a l . . 1079). T h e reliability of such ratings is
questionable. since the math teachers should have been blind ro which students
learned Logo
Secondlv, there are no repons demonstrating that programming aids
children's mathematical exploration. Reports by Dwver 1975') h r chiidren
l e a r n ~ n gBASIC. and Howe cr J I .( 1979). Lawler ( 1980). and Paperr zt ai. ( 19;9 I
for those usicg Logo, d o document children's soai-directed explorac~ono t
mathematical concepts such as "variable" on computers. Though encouraein9, smce math expioration and "mathland" plav are likelv to support math
learning, studies'have not shown any effects of "math exploration" during
programming outside the programming environment.
Third, although Feurzeig ct n l . (1969) suggest that the twelve 7 - to 9-year-old
children to whom they taught Logo came to "acquire a rneaninyful under513:. 'ing of concepts like variable, function and general procedure", the:,
prc :e no evidence for the claim that programming helped the children gain
insight into these mathematical concepts.
Finally, we ask whether p r o p m m i n g has been shown co provide a context
and lanquage that promotes problem solving beyond programming. Papert r!
a l . (1979) conducted a Logo proiect with sixth graders for six weeks, and
reported anecdotes that children engage in extensive problem solving and
planning activities in learning programming. Whether such activities had
c o p i r i v e effecrs beyond programming was not studied. However, Statz (,1973)
carried out a study to assess this claim. Logo programming was taught to sixteen
9- co 1 1-year-old children for a year. Statz chose four problem solving tasks with
intuitive, ill-specified a n n e c t i o n s to programming activities as transfer
outcome measures. T h e experimental group did better on two of these tasks
(word puzzle and a permutation task). but no better on the Tower of Hanoi task
or a horserace problem that Statz had designed. She interprets these !indings as
mixed support for the claim that learninq Logo programming promotes the
development of more general problem solving skills.
Soloway. Lochhead and Clemect (1982), in reaction to the finding (C!ement.
Lochhead & hlonk, 1979) t h a ~many college science students have difficulty
translating simple algebra word problems into equations. found [ha: more
students solve such problems correctly when they are expressed as computer
programs rather than as algebraic equations. They attribute this advantage to
the procedural semantics of equations in programs that many students lack in
the algebraic task. This effect is much more restricted than the increments in
general problem solving skill predicted by the cognitive transfer cialms.
.A very important idea is that not only computer programs. but one's own
mental activities can !ead to " b u q p ' ' performances and misunderstandings.
Tools for diagnosing different types of "bugs" in such procedural skills as placevalue arithmetic (Brown & Burton. 1978; Brown & VanLehn. 1980; VanLehn.
1981) have resulted from extensive programming efforrs to build "bug diagnostic svstems" (Burton, 1981). O n e may argue that the widespread recognitlon that systematic "bugs" may beset perhrmances in other procedural
skills. such as high school algebra ( C a r r y , Lewis & Bernard. 1979; hla:z, 1981)
reflects a kind of transfer beyond programming No evidence indicates that
programming students demonstrate such transfer.
Planning in advance of problem solving, and evaluating and checking
progress in cerms of goals. are important aspects of a reflective attitude to one's
own mental activities (Pea. 1982). LVe have seen that the development of
plannine abilities is one major predicted cognitive benefit of learning to
proeram. i4.e therefore developed a trsnsfer task for assessing children's
planning (Pea & Hawkins. 1981) We reasoned that a microgenetic method
(Flavell & Draguns. 1957) allowing children to develop multiple plans was
comparable to the rounds of revisions carried out during programming, and
would allow foi a detalled study of planning processes. Children planned aloud
while iormulating. over several attempts, their shortest-distance plan for doing
a set of familiar classroom chores, using a pointer to indicate their routes. W e
gave the task twice. early and late in the school year, to eight children in each
of two Logo classrooms (8- m d 9-year-olds; 11- and 12-year-olds), and to a
control group of the same number of same-age children in the same school.
There were six microcomputers in each classroom, allowing substantial invoivemen1 with programming.
.As in related work on adults' planning processes by Goldin and Haves-Roth
(1980: also Haves-Roth & Haves-Roth. 1979; Hayes-Roth. 19801, our product
analyses centered on "plan goodness" In terms of metrics of route efficiency,
and our process analyses centered on the types and sequencing of planning
decisions made ( e . g . higher level executive and metaplanning decisions such as
what strategic approach to take to the problem, versus lower level decisions of
what route to take between two chore acts). Results indicated that the Logo
programming experiences had no significant effects on planning performances,
on an); of the plan ifficienc? or planning process measures (Pea & Kurland,
1983a). Replications of this work are currently under way with children in other
schools.
CONCLUSIONS
.4s our society comes to grips with the information revolution, the ability to
deal effectively with computers becomes a n increasingly important skill. How
well our children learn to use computers today wlll have great consequences for
the society of tomorrow. T h e competence to appropriately apply higher
cognitive skills such as plannmg and problem sol\ing heuristics in mental
activit~esboth with and without computers is a critical aim for education. As one
contribution ro these issues. at the beginning we argued for and then throughout
documented the need for a new approach to the pervasive questions about the
cognitive effects of computer programming. This approach, which we characterize as developmental cognitive science, is one that does not merely adopt the
common perspective that computer programmers are all like adults, but is
instead geared to the learning experiences and developmental transformations
of the child o r novice, and in its research would be attentive to the playing out
of those processes of learning and development in the instructional and programming environments in which the novice gains expertise.
So can children become effective programmers and does "learning to
program" positi\rely influence children's abilities to plan effectively, to think
procedurally, or to view their flawed problem solutions as "fixable" rather than
"wrong"? We have shown that answers to these questions depend on what
" l e ~ r n i n gro program" is taken to mean. We reviewed cognitive science studies
revealing that programming involves a complex set of skills, and argued that the
development of different levels of programming skill will be highly sensitive to
contexts for learning, including processes of instruction, programming environment. and the background knowledge the student brings to the task. We found
few studies that could inform this new understanding, although many promising research questions were defined from this perspective.
Ct'e dismissed two prevailing myths about learning to program. The myth
embodied in most programming instrdction that learning to program is
"learning facts" of programming language semantics and syntax is untenable,
since it leads to major conceptual misunderstandings even among adult programmers, and since what is taught belies what cognitive studies show good
programmers do and know. These studies have direct implications for new
content and methods for programming instruction that are under development
in several quarters. Studies of learning to program and of transfer outcomes are
not yet available for cases where instruction has such nontraditional emphases.
e.g. on task analysis and problem solving methods that take advantage of what
we know expert programmers do. W e also delivered arguments against the
second myth, of spontaneous transfer of higher cognitive skills from learning to
program. Resistance in, learnin9 to spontaneous transfer, and the predicted
linkages of kinds of transfer beyond programming to the learner's level of programming skill were major points of these critical reviews.
So when thinking about children learning to program. what levels of skills can
be expected? Reports of children learning to program (Howe, 1981; Levin Sr
Kareev, 1980; Papert et al., 1979; Pea, 1983). including the learning disabled,
the cerebral palsied and the autistic (Watt & Lt'eir, 1981; Weir, 1981), suggest
that most children can learn to write correct lines of code (level I1 in our
account). This is no small achievement since writing grammatically correct
lines of code is all many college students of programming achieve in their first
programming courses (Bonar & Soloway, 1982). This level of programming
skill may depend on the same abilities necessaq for learning a first language.
However. for programming skills that are functional for solving problems.
"grammatical" programming alone is inadequate; the student must know how
to organize code and "plan schemas" to accomplish specific goals. Det-eloprnent to these higher levels, where one becomes facile with the pragmatics of
programming, may require strategic and planful approaches to problem solving
that are traditionally considered "metacognitive," and more characteristic of
adolescents (Brown et a / . , 1983) than primary school children. Further, the
experience of the child in an elementary or junior high school program who
spends up to 30 to 50 hours per year programming is minuscule when compared
to the SO00 hours which Brooks (1980) estimates a programmer with only three
\ears of experience has spent on programmins Since it appears unreasonable
to expect children to become advanced proqrammers in the few years available
to them in most school programming courses. our educational goals should be
more realistic and achievable. Lt'e d o not currently know what levels of programming espertise to expect. but in o u r experience children who are programming experts are not common. T h e r e are thus large gaps between what is
meant b!- learning to program in the computer science literature. and what
" l e ~ r n i n g programming" means to educators interested in exposing this
domain to children. These discrepancies should temper expectations for the
sponraneous effects of children's limited programming experiences in school on
their wavs of thinking. at least for how programming is taught (or not taught)
today. Whether research on learning to program with richer learning experiences and instruction will lead to powerful outcomes of programming remains
to be seen. In place of a naive technoromanticism, we have predicted that the
level of programming abilities a student has mastered will be a predictor of the
kinds of concepts and skills that the student will transfer beyond programming
Althcugh findings to date of transfer from learning to program have not been
encouraging, these studies suffer in not linking level of programming skill to
specific outcomes expected. and the critical studies of "low level" transfer
expected from level I and I1 programming skills remain to be carried out. Even
more importantly. with thinking skills as educational goals, we may be best off
providing direct guidance that teaches o r models transfer as a general aspect of
highly developed thinking processes (Segal, C h i p m a n & Glaser, 1984: Smith 8
Bruce. 1981). For these purposes programming may provide one excellent
domain for examples (Sickerson, 1982; Papert, 1980).
Throughout, we have emphasized how developmental research in this area is
very much needed. M> need empirical studies to refine o u r characterizations of
levels of programming proficiency, extensive evaluations of the extent of
transfer within and bevond programming in terms of different programming
and instructional environments, and studies to help untangle the complex
equation involving cognitive constraints. programming experience, and programming outcomes. Lt'e believe all of these questions could be addressed by
careful longitudinal studies of the learning and development process by which
indi\.idual students become proficient (or not-so proficient) programmers, and
of the cognitive consequences of different levels of programming skill. Such
studies would provide far more relevant information for guiding the processes
of education than standard correlational studies. A focus on process and the
types of interactions that students with different levels of entering skills have
with programming and instructional environments is critical for understanding
how developments in programming skill are related to other knowledge. Ll-e are
optimistic that others will join in work on these questions, for progress must be
made toward meeting the educational needs of a new society increasingly
empowered by information technologies.
Learning computer programmlnq
REFERENCES
.Adelson B Problem solving and the development of abscract categories in programming
l a n p a q e s .tfrmoy and Coqnltlon 9 . 420 - 433 (1983).
.Andergon J R . Greeno J G . . Kline P J & Neves D. >I .\cqulsirion o i problem solving skll!.
In Cognltlic Skdls and thctr Aiqursttron (ed. Anderson J . R . ) . Erlbaum. Hillsdale, NJ (1981 ).
.Anderson R . E N a t ~ o n a lcomputer 1ite:acv. 1980 In C o m p u t ~Lttnaqv Isslus and Drrcctlonrjor
1985 leds Seidel R . J . . Anderson R E & Hunter B.). .Academic Press. New York (1982)
t w o o d .\I. E.. Jeffrfrles R . & Polson P G S t d i c s :n plan constnutton I dna(vsrs o j a n cx~cndcdpro:ocol
(Tcch Rep No SXI-80-0'78-DEN). Sc~ence.\pplications, I n c . , Englewood. CO (1980).
~.~
in thc comprchcnsron and mrmory o j i o m p u t n
.Atwood XI E. & Ramsev H . R . C a g n ~ t i stmturcs
program .4n lnucstzgaf~onof c o m p u t n dcbugplng (Tech. R e p . No. T R - i 8 X 2 1 ) . U.S. Armv Research Insr~tuteidr the Behavioral and Social Sciences, A l e x a n d r ~ a ,VA (1978).
Barstow D . R . Knowlrdgc-Based Propram Canstnrrtlon. Nonh-Holland, Amsterdam (19i9).
Berelter C. & Scardamalia h i . From convcrsatlon to composition: Instruction in a developrnenral
process. In ddcanccs In Instructronal Psychology (ed. Glaser R . ) . Vol. 2. Erlbaum. Hillsdale, NJ
( lo82 ..
Black 5.D , Levm J .\.. hfehan H & Qulnn C N Real and n o n - r e d time interaction. Unraveling multiple threads of discourse. Dtscoursc Proccsscs. 1983. In press.
Bonar J . Natural problem solving strateges and programming language constructs. Prorccdings o i
the Founh .4n?ua! Conjnrncc of :hc C o p t t c v S c m c c Soctr~v,~ n Arbor.
n
Michigan. t - 6 August
(1982).
Bonar J & Soloway E. Uncovering principles o i novlce programming. Yale Cnive+tv Deparrmen[ ,>iComputerScience, Research Report .t 240. November 1982. ( T o appear ~nthe Tenth
SIGPL.AS-SIGhCT Svmposium on the Pnnciples of Programming Languages, A u s t ~ n .
Texas. January 1983 )
Brooks R . E. Srudvmg programmer behavior experimenrallv: T h e problems o i proper methodo l o q Communrcat~ono f t h c .iC.Lf 2 3 , 207 - 2 13 (1980).
Brooks R. E. Towards a theory of the cognit~veprocesses in computer programming. Intrmatronal
Journc! $.\fan-.lfarhlnc
S t d I c s 9 . 737 - 7 5 l ( 1977).
Brown .A L. Learning and dwelopment. T h e problemsof cornpatibilitv, access. and induction.
H u m c n Dc~riopmrn:25. 89 - 115 I, 1981).
Brown .A. L. ?.letacognirion, executive control. self-replation and other even more mysterious
mechanisms. In .Lfcmcognlt~on,.tfott~atlonand Lcamlng (eds. M u m e R . H. & b'einert F. E. j.
Luhlhammer. L\'est G e r m a n v (1983a. in press).
Brown .A. L. Learning to learn how to read In R c a d n .Lfrrts .iuthor, Brtdgtng the Gap ;I P ~ y c h o llngutstlr and Soc:ai Llngurstlr Pnspccrtr.~(eds. Langer J . & Smith-Burke T J. Dell. Newark. NJ
(1983b).
Brown .A L . . Bransford J . D . , Ferrara R. A Br Campione J . C . Learning. remembering, and
understanding In . L f u s m Handbook of C h d d P v c h o i o g (eds. Flavell J H . & \larkman E. 1 1 !,
C.ol. 3 . Wilev. New York (1983).
Brown A . L . & Smiiev S. S. T h e development of strategies for studying texts. Chlla' Dciciopmen~
49. 1076 - i088 i 1978).
Brown J . S & Bunon R . B. Diagnostic models for procedural buqs in basic mathematical skllls
C o g ~ l f r u Xciclrncr
c
2 . 155,- 192 (1978).
Brown J . 5 3r C'anLehn I(. Repair t h e o r v .A qenerarlve theory o i bugs in procedural sk~lls
Cogvittct 5c:mcr 4 . 379 - 426 (1980).
~
(eds. Bruner J S.. OIver R . R .
Bruner J . S O n cognlrlve growth. In S ~ u d ~ cIns C o g n l t ~Growth
& Greenfield P XI. J . Wilev. New York (1966).
Bunon R . B. D e b u g p : Diagnosis o i errors In basic mathematics skills In Infc!llgrnt Tulortng
Systems leds. Sleernan D . H & Brown J S.). .Academic Press. London (1981).
~
sulctng .in znfonnaflon procrssrng sfu+.
Carrv L R . Lewis C . & Bernard J E P y h o i o ofcquatton
Department o i C u r r ~ c u l u mand Instruction, University of Texas at .Austm. Austin. T X
(l9:O).
Case R & Kilrland D XI. A new measure ior determining children's subjec~iveorganization of
16;
Ro\ Pra ~ n D
d \ ! ~ d i d n Kurland
sprrch Journai o/ Erorvrnmtai Cilia P;~riolop: 30. 206 - 222 ( 1980)
Case R . Kxrland D \I B; Goidhery J Operarlonal effic~encvand the growth of shorr-rcrn
Chdd P ~ x i o i o3 3~ . 386 - +04 ( 1982 t
menom span Journal t t Ex,cr.:mr~~al
Chasr
G & Simon H .A. Percepr~onIn chess Cognl~ir'rPsvcholo~4 , 55 - 81 (19731
Chl \ l T H . F e l r o ~~ c hP J 5- Gla.er R C a : e e o r ~ z a t ~ oand
n represcnratlon of phys~csprobierns
b\ evpertr and novlces Cognr~r;rScirncr 5 . 121 - 152 (1981) .
Clernenr J . Lochhead J B; \lank G Trmsia~lor!dijilcd~irst n lramlng m a ~ h m t l c s(Tech Rcp I .
C.oenlr~\.r D e ~ e l o p m e n r Projecr. Departrner,: o i Phvs~cs and Astronomy. Universlrv of
\lassachuserts. .Amherst { 1970)
Coie \l 6 G r ~ f f i nP Cillrural ampi~fiersrecons~dered In Thr Soera[ Foundat:ons of L a n p g r a d
Thought Essais :n Honor of Jnomr S Brunr (ed Olbon D R ) L\. M' Norton. S e u York
I
1980)
Coiilns A
. 9i Genrner D Const~~c!:ngrunnabit m m d modil~.Procccd~ngsof the Founh Annual
Conference o i r h e Cognir~vt.Sc~enceSocier). . i n n Arbor, M I . August (1982)
Crorner R F T h e development of l a n p a q e and cogn~rion.thc cognirion hvpothesis In .Scu
Pripccri;rs in Chlld Dr~c~o,omm~
(ed Foss B J. pp 184 - '252 P e n q u ~ n ,London (l9i4)
Crvsra! D A F:rst D~ctlonar,of Llngulsrlcs and P,$onrtlcs. C a m b n d g e L n i v e r s ~ r yPrcss. C a m b n d s e
(
1980).
Cur:ls B , Sheppard S B . \Iill~man P . . Borst 1 1 A . & Love T. Measuring thc psvcholoeical
cornpiex~t\ of soiruarr maintenance tasks w1ti-i the Halsread and XlcCabe merrlcs. IEEE
Travac:~ons on Sofirrare Engrncning S E - 5 . 96 - 104 ( 1979).
DeKleer J & Brown J S Menmi models of physical mcchanisms and their a c q u ~ s ~ t i o nIn
Cognmc< Sicdls and rhr:r Acqum~ron(ed Anderson J . R . ) . Erlbaum. Hillsdalc, NJ (1981i
Drwci J. Tht School and Soctrr,. C n ~ v e r s ~ of
r v C h ~ c a g oPress, Chicago (1900).
DlPprsio T . . Isb~srerD B; S h n e ~ d e r m a nB .An experiment using memorization/rcconsrmct~on
as a measure of programmer ab111r~Intrmcr1onaiJournal of.Lfan-Machrnr S~ud.us13. 339 - 3JS
119801.
D~Sessa.I A. C n i e a r n ~ n g.4r1storel1an physics. A study of knowledge-based learning. Cop~::cc
5c:mcr 6. 3; - 75 (1!%21
DuBoulaL J B H . B; O'Shea T Hou lo work 1 . h ~Logo machrnr .4 pn'mn-for ELOGO (D .L\ I
Occas~onaiPaper S o 4 ) Depanmenr of .4rt1fic1al Intelligence. Cn~versityof Edmburgh.
E d ~ n b u r g h(l9;b).
DuBoulax J B H . O'Shea T 8; 1Ionk J T h e black box inside the glass box: Presenting
cornpurrnp concepts 19 novlcrs. lnrmarronai Journal of Man-llfarhtnr Studws 14. 237 - 249
(1981)
Dwver T A Soloworits: Compurer based laborarories for high school mathematics. Srzrncc and
.\farhnnatrcs 22. 93 - 99 ( 19i5)
Ehrlrcn K 8. Solowav E . Xn e m p ~ r ~ c~a nl v e s t i g a t ~ oofn [he tacir plan knowledge in programrnlni!
In Human Faclors tn Compuln Sysinns (eds. T h o m a s J 8: Schneider Xf.). .4blex. Norwood. SJ
(19831
E~sensradt\ I . . Lau bsch J H . & Kahnev J H Crrar~ngplrasant programming mcironmmfsfor cop::::.r
rc:rncr stua'mts. Paper presented ar [he meeting ofrnc Co.gn~ti\peS c ~ e n c eSoc~ery.Berkcley, CA.
.Auyusr (1981).
Feidrnan D H Brvond C'nlcnrais i n Coptrrcr Dc:.rlopmmt Ablex. Norwood. SJ(1980)
(Reporr No. 47981
Feurze~gh' . Horwirz P 8r S ~ c k e r s o nR . S .M:crocompu~nsin cdlrra~~on
Prepared for- D e ~ a n m e n rof Healrh. Educarlon. and Welfare. National Insritute of Educatlon. and Xllnistn ior [he Development of Human Inrelligence, Republic of Venezueia.
Bolt Beranek 8: N e ~ m a n C
. a m b r ~ d u e .X1.4. October (1981).
F e u r z c ~\\'.~ , Papert 5 . Bloom Xl . Grant R . . & Solomon C . Propamming iangungrs as a conrrprtal
fiarnruork-lor ~ r n r h l ~marnmltcs
g
( R c p o n No. 1899). Boll Beranek & Ncwman. Carnbndge.
XlA ( 1969).
Flavell J . . 61 Draquns J h microgener~capproach to pcrception and thought. Pyhoiogrral Bulkin
54. 19: - 31; (1957).
Fiord R 1% T h e paradlqns of programm:ng Communlcattons ofthr .4C.U 22, 455 - 460 (19791
Fr~edman\\' J ( E d ) Thhc Drrrlopmmla: Ps,cnoiog> o j Tlmr Academic Press. New York (19821
Learnlng computer programmlrlg
165
Handbook. Putnam. S e u York ( 1983;
G d a n t e r E K;ds 2nd Comoutrrs The Parmts '.Cilcrocomp~~tcr
Gardner H Framrs j;i.Li:nd. Thc Theory 0.f .Llulf!pic In:ri!lgrncrs B a s ~ cBooks. New York 119833
. L. ( E d s . ) .\irntal .Liodcis Erlbaum. Hiilsdale. NJ (1983)
Genrner D & Sre-.-ens A
Gick XI. L & Holvoak K . J A n d o g l c d problem solv~ng Cognrflcc P;vcnoio~ 12, 306 - 3 5 5
( 1980)
Gick Xl. L. & Holyoak K . J Schema induction and analogical transfer Cogn:t:cr P y n o i o ~1 5 .
1 - 39 (19821
G o l d ~ n5 E d Haves-Rorh B. Ind:ctaual dljjkrnrcs in pimnlnq proccssrs N - 1 4 8 8 - O S R . .A Rand
Note. Rand Corp . 3anta Llonlca, C.1. June (1989)
Goldstem I. & Papen 5 .Art~ficlaiintelligence, languagc. and the stud\ of knoulrd<e Cog~l:::r
Srzrncr 1. 8 4 - 123 (1977j
Goodv J . Thr Domrstlratton oJe:hc Saoaer .lilnd. Carnbrldqe Cnlversttv Press. New York 1 1 9 i i j .
Gould J . D Some p$chologlci e v ~ d e n c eo n how people debug computer programs. Inmatlonal
Journai oj.Lian-.llach:nr Studzrs 7, I5 1 - 182 (1 977 j
Gould J . D. & Drongowski P. .4n exploratory investigation of computer program debugging
Human Fac:ors 16. 258 - 277 (1974).
Green C C & Barstow D O n prosram synthesis knowledge Art~ficralI d l : q m c r 10. 241 - 2:9
(1978)
Greeno J . Giaser R Sr \ewe11 A Rcscarch on cognuton ana ie?atror rririan: :o rduratlor: rn mathmat;ci
SCZCICC. a ~ fcrhnolog
d
R e p o n submitted to the Nat~onalSclence Board Comrrlsslon on Precollege Educat~onk Xlathematics. Science. and Technology by the Federation o i Behavioral.
Psvcholo@cal and C o q n ~ r i v eSc:ences. &larch ( 1983)
Hawkins J . . She~ngoldK . . G e a r h a n M. & Berger C . T h e Impact of computer activitb on the
soc~aierpenence o i c!assrooms Journai qf ..lppltra Dcrrlopmrnfal P;.icholog). 2 . 36 1 - 373 ( 1983)
Haves J. R . & Simon H . .A. Psycholog~caidifferences amonq problem ~somorpiis.In Cogn11::e
T h r o ~(eds. Castellan N J . . J r . , P ~ s o n lD B. ti Potts G . R . ) . Voi. 2 . Erlbaum, Hiilsdale. Sj
(1977).
Haves-Roth B Est:mat:on o j ~tmrrrptrmrnfs dur~ngplanning Thc :ntrmcrtons brtzrm mofloaflon and
cogn:tion. N-1581-OSR. .A Rand Note. Rand Corp . Santa X l o n ~ c a .C.A. No\.ember (198Oi
Hayes-Roth B & Haves-Roth F A cognltlve model of planning Copntttuc Sclrncr 3. 279 - 310
(1979).
Howe J .A 1 1 Deveiopmehtal stases In learning to program In Cognrrzon and .limo?v Intrrdirc:pL:naT Rrsrarcn qf Human .tinnor). dct:cttrrs (eds. Klix F S; Hoffman J ). Norrh-Holland.
Amsterdam ( 1980).
Howe J. .4 Xl Lramtnp mthrmnflcs through Logo prqramming !Research Paper No 153) Deparcment of .\n~t'icial Intelligence, Cniversity of Edinburgh. Edinburgh (1981)
H0v.e J A. XI O'Shea T. & P!ane F. Teaching rnarhemarlcs through Loeo proqrammlnq .An
evaluation studv In Cornputn-;lsslsud Lmrnlng-Scope, Progrrss and Limtts ~ e d s .L m i s R 3r
T a e g E. D 1. S o n h - H o l l a n d . Amsterdam (19791
H u n t E . Xlechanlcs o i verbal abdiry P;Jchologrcar R c r ~ e z85. 109 - 130 ( 1078)
Inhelder B , S~nclalrH . & Bover 1 1 Lrarnlngand~hcDccciopmrn: o;~Co'ogn:t~on H a n a r d Unl\ersitv
Press. Cambridge, X1.4 ( 1974).
Jeffries R . .-1 iomparxon ojthr dcbuggtng bchaator ojrxpm and 7oc:cr programmers. Paper presented a;
rhe .Annual Xleetlng of the Amencan Educarloni Research .4ssociatlon. Sew York C I ! ~ .
Xlarch 1'19821.
Johnson L\. L . . Draper S 3r Solowav E .An eifecti~ebug classification scheme musr take the
proqrammcr inro accounr. Procccdtngs ofthc I.t>risnop on Higi-Lrccl Dtbugpnp. P d o .Airo. C.4
(1983).
Kahney H . & Eisenstadt Xl. Programmers' mental models of their programminq tasks: The
interaction of real-world knowledge and programmmg knowledge Proceedings of the Fourch
.Annual Coniercnce of the Cognirive Science Soclety, .Ann .Arbor. XfI. 4 - 6 Augusr (1982)
Kurland D b1. & Pea R D Children's mental models of recursive Loqo programs. Proceedings
of the Fifth Annual Xlect~ngof the Coqnitlve Sclence Societv. Rochester. NY. &lay !983
(.Also Tech. Rep. 10. Center for Children & T e c h n o l o p . Bank Street College. New York
February 1983 )
.
-
166
Ro\ P ~ and
J
D \!~d:.ir, Kurland
Laboraron of C o m p a r a t ~ \ eH u m a n C o e n ~ r l o n Culture and coenltlve de\elopment In . i f u n r n
Ha%ibo,~i oiCnrid P j ~ c n o b g ; Hritu:; T h r o r : r ~a ? d . t f c t h o d ~ ( e dLessen C\ ) . \-01 1 John \\.ile\.
S e h York I 1983 I
L a b o r a t o n o f Comparatl\c H u m a n C o q n i t ~ o n .bl~crocomputcrcornmunlcaclon ncrworks for
rducatlon Tnc @ a r m ! , .tru;!rt:r o+f thr Laboratorv o f Comparatluc H u m a n C o p l f r o n 4 . April
( IS82;
Larkin J H . \lcDermott J . Simon D P & Simon H A Exper: and novlcc performance in
soiv~ngphvs~csprobicms S c l n r r 208. 3 335 - 1312 ( 1980;
Lauier R \\- Extrndtng J o o u ~ t ~ r utata
i I Lo40 u c m o No 58,. 1 1 I.T. Artificial I n r c l l ~ ~ c n c e
L a b o r a t o n . Cambrldqe hl.1. J u l ~119801
i e \ ir. J .\ 6 L r e e : 1. P ~ r o n a rl o m p u f m and rducatror Thc rhailm_ec to rchouic ( C H I P Rcpor: 50
981 Center ior H u m a n Iniormatlon Proccsslng. La Jolla. C A ( 1980)
Lewls C Skill In aleebra In C o p n ~ t ~ Sr rk d ~and lhrtr A c q u r s ~ t ~ o(nc d Anderson J R . ) . Erlbaum.
Hlllsdale. NJ (,1981)
h t a n n CX' C Why things arc so bad for the computer-naive user. Informar~onScicnccs Institurc,
?.larch (1975).
Matz hi. Towards a proccss model ofhlgh school algcbra crrors In I n k l l l g m ~Tuforing S y s m (cds
Sleernan D. H , & Brown J . S ) Academic Press. London (1981).
\laver R E. D~fferentproblem solving compctcncies cstablishcd in lcarning computer programmlng with and without meaningful modcls Journal of E d w a f l o n a l Psychoiogy 6 7 , i25 - 734
219;j)
\laver R E. .4 psychologi of lcarning BASIC. C o m m u n ~ c a t ~ odm! h t AC,M 22, 589 - 593 (1979)
>laver R . E. T h e psvcholog\ of lcarning cornputcr proqramrninq by novices. Computtng Sunr).s
13. 121 - 141 11981;
\ l a \ e r R E Some c o n d ~ r ~ o nofs mcan~nefull e a r n ~ n gfor compurcr proqrammlng Advance
organizers and subjcct control of frame order Joumai of E a u c a ~ r o m lPrychoiogy 6 8 . 143 - 150
(19i6j
Llaier R E & Bavman P Psvcholog\ of calculator languagec A framework for descnbmg
d~fferenccsIn users knowledge Commun~caftonso f fhr.4C.M 24 51 1 - 520 (1981)
.IlcKe~rhenIi B Reltman J S Rueter H H & Hlrrlc S C I i n o ~ l c d g corganlzatlon and sk~ll
dlffercnce: In computer programmers Coprtror Psvchoiopv 13. 307 - 325 (1981)
111ller L A Programming b\ non-programmers I n f n a t ~ o n aJournal
l
o f . U a n - . M r h ~ n c Sfudrrs 6 .
23- - 260 (1971)
111nsky S l . Form and content in computcr scicncc Communrca:lons of the .4CM 17. 197 - 215
(1970).
Nat'lonal Asscssment of Educat~onal Progress. Procrdural Handbook I977 - 78 M a f h m r a ~ m
.4ssrsrmrnt. E d u c a t ~ o nCommission of the States. Dcnvcr. C O (1980).
Sewell .\. O n e find word. In Problnn Solring and Edwatron (cds. T u m a D. T . & Rcif F.). Halstcd
Press. S c w York (1980)
Newell .\.. & S ~ m o nH . H u m v Probirm Soiurng Prent~cc-Hall.Englewood Cliffs. NJ ( l g i ? ) .
S e w m a n W . hi & Sproull R . F Pnncrpks ~ f l n t n a c f t uCt o m p u t n Graphrrs, 2nd edn. SlcGraw-Hill.
New. 1.ork (19i9)
S ~ c k e r s o nR . S Computer programming as a vchiclc for tcaching thinking skills. Thlnirlng. Thr
J u u . ~ a io f Phl1osophh>forChrla'rm 4 . 42 - 48 (1982)
S ~ c k c r s o nR . S. Why ~ntcractlvecomputcr svstcrns arc somctimcs not uscd by people who might
bcncfit irom thcm. I n m a t r o n a l Journal of.Wan-;Uarhtnr S f u d ~ r s14, 469 - 481 (1981)
Norman D .\. ( e d . ) P n s p c c ~ r ~onr ~Cognrtlcc Srtmcc Erlbaum. Hillsdde, NJ (1981).
Olson D. R . Culturc, t e c h n o l o p and ~ntcllect In T h r .laturc of Infrlilgmcr (cd. Rcsnick L. B j
Erlbaum. Hillsdalc. .VJ (1976).
O n g W J . or ail!^ and L l t n a q ~ .T l u Ttchnologizing of thr U b r d . Xlethucn. N e w York (1982).
Papen S . .Mtndrtorm. Basic Books, New York ( 1980)
~ a b e r St . Teaching children thinking Programmrd Lrarnrng and Eduatronal T c c h n o i o ~9 . 245 - 255
(1972a).
Papcrt S Tcaching children to be mathcmat~ciansversus tcaching about mathematics. In&natzonal Journai for .Uathrmartcal Education. Srimcc and Tcchnoiopv 3 . 249 - 262 (1972b).
.
L e s r n ~ n qcomputer proerammlnq
167
Paperr S . Ct'att D . dlSessa .A. & Lc'eir S .-in asscssmcnr anat documc-tlatlon o j a chlidrcn 's compu:r
!aborato?v Final Reporr of the Brookl~neLoqo Project. Brooklme. h1.A (1979).
h
Paper presented at Annual
Pea R D Programming a n d p r o b i m solc~~ngChridrcn 'scxpnlmcc a ~ t f Logo.
\teerings of the .American Educat~onalResearch .Assoclat~on,Xlontreal, C a n a d a , April 1983
(.Also Tech. Re? I? Center tor C h ~ l d r e n& Technolocp, Bank Street College, New York.
.Aprd 1983.)
Pea R D Lb'har is planninq development the development of? In ,Vcw D t r c c ~ l o min Chdd Dcrc10,om m t Chlidrm's Plalnlng 3 r a l c p s ~ e d sForbes D & Greenberg XI ), L.01. 18. Jossey-Bass. San
Francisco ( 198'7).
Pra R . D. & H a w k ~ n Js , .A mlcrogeneric studv of planning processes in a chore-scheduling task.
In Biucorlvts~,forT'ltnkrng T h e Dcrciopmnt ojSoclai and Cog~lllcjcP!annmg Sklils jeds. Friedman S
&.
Cockmg R . R . ) . Cambridge L n ~ v e r s ~ tPress.
v
C a r n b r ~ d g e(1984, in
L . . Scholn~ckE. !i
press)
druciopmmt ofpiannlng skzlls (Tech. Rep. No
Pea R . D. 9 Kurland D . h i . Logo prograrnmtng and ~iu
16). Center for C h ~ l d r e n& Technoloyv. Bank Street College. New York, April (1983a).
Pea R . D. Sr Kurland D . h i O n thc cognztlccprmqulsllcs ojirarnlnq c o m p u t n p r o p r n m i n g (Tech. Rep
No. 18). Center for Children & T e c h n o l o p , Bank Street College, New York. April (1983b)
Piaqet J Thc C h ~ l a ' ;Conccptlon o f T i m c (ed. Pomerans .A. J . ) . Bailantine. Xew York (1959)
Piaget J . Intellectual evoiution from adolescence to adulthood. H u m a n Dccciopmcnt 15: 1 - 12
(1972)
Piaget J . & Inhelder B. Thc Ps~vchoiog).of the Ehild. Basic Books. New York (1969).
Polva G Hou' to Soitc 11. Doubledav-.Anchor. New York 11957).
. study of potten-makinq
Prlce-CbXliarns D . . Gordon Lt. 9 R a m ~ r e z,LI Skill and consemanon: A
children. Decclopmmtal P ~ v c h o i o1.~ 769 ( 1969).
Resnick L B .i ~ C L L conccpon
mathcmarlcr and sclrnrr learning Presentation at the Nat~onal
Convocation on Precollege E d u c a t ~ o nin Xlathematics and Science. National .Acaqemy o i
Sciences and S a t ~ o n a l.Acsdemv of Engineering. 12 - 13 h i a v (1982).
Rich C & Shrobe H Initla1 report on a Llsp programmer's apprentice. I E E E Transacttons on
Softxarr Engtncmng SE-4, 4% - +67 (1978).
s
Ross P & Howe J Teachmg mathematics through programming: T e n years o n . In C o ~ u t c r In
Educalron (eds. Lewis R . & T a g g D ). Norrh-Holland, Amsterdam (1981).
Scardarnalia 1 1 & ~ereite: C T h e development of evaluative. diagnostic and remedial
capab~litiesin children's composing. In T h c Psycholoqr ojthc U.rlllrn L a n g m g c (ed. h l a r t k w 11.1
John Wiley, London (1983).
..
Schank R Dynamic . t f c m o y Cambridge Cniversitv Press. Cambridge (1982)
Schank R . & Abelson R . P . Scr:pts. Plans. Goals and L h d n s t c n d l n g Erlbaurn. Hillsdale. ~ ~ ( 1 9 I 7 Segal S . . Chipman J & Glaser R ( e d s . ) Thinking and Lcarnlng Skzlls. C u n r n f Rercarch and Opm
Q U C S I I OErlbaum.
~S.
Hillsdale. NJ ( 1984, in press I .
Shed B .A. Coping with complexity. .Yoor Cognltlcc and Instmctlonai Sclrnrcs Serrcr CIS-IS. Xprd
I 19813)
of.iC.If .innual Con,ictnre 125 - 1'75 ( 14801
Shed B A. Teachins procedural !iterac?. Proccrd~n~r
Shril B A . T e a c h ~ n gprocedural literacy. Procecdlngs 4i.iC.ll .innuai Conitrencr 1'Lj - 126.119601
She~ngoldK . . Kane J Endreweit h1. & Bdlings K.S t G v of ~ssucsrclatcd to thc lmpimcntation ?t
i o m p u m technoiocv In rchoois Final Report, National Institute o f Education (1981).
S h e p ~ a r dS B.. Curtis B h l i l l ~ m a nP & Love T hlodern coding practices and p r o y a m m e r
performance I E E E Cornpulrr 5 . 41 - 49 (1979).
Shif Z . 1. Development ofchildren in schools for mentallv retarded. In .i Handbook of Conhnporar;
Soulct Psyc.hoioey :,eds. Colt. 11 & llaltzrnan I . ) . Basic Books. New York (1969).
S~eqlerR . S Information processing approaches to development. In .tlusscn Handbook oj Chlid'
Ps-ycholoqr (4th can) H l ~ i o y .Theory, and .ifrthods ~ e d s Kessen
.
C t ' I , L'ol 1 John Wilev. N w
York 1 1983)
Shneiderman B h l e a s u r ~ n gcomputer program qualitv and comprehens~on Intcmatlonal Journal
of .tian-.llach~nc S r u d m 9 . 465 - 478 ( 1977).
Shrobe H E . , Lt'arers R 9 Sussman G .i h-vpothcrzrai monoiogur diustratlng :hc k n o d c d g c of'undn(vlng
program anaiysl~[Xlrmo No 5 0 7 ) . XIIT Artlficlal Intell~genceLaborarorv. Carnbndse. 11.1
+
.
.
( 1979)
Slme \I E . . .+rblasrer .\ T & Green T R G Reducrnq programmine errors In ncst'ed cond ~ r ~ o n a b\
i s prescrtb~nga NrrrtnK procedurc Inrc-narronai journal qf.Ctan-.tiar.irnc St$:c: 9
I9 - 126 I 19:;)
S ~ m o nH .\ Problem s o l v ~ n
and
~ rducarron In P r o b i m Soirrny and Eduiatron Issuts tn T&hr'igand
Rcsca.ih [ e d s T u m a D T & Relf F ) H a l s ~ e dPress. NCH. York (1980)
S ~ m o nH h & Haves J R T h e undcrstandiny process. Problcm isomorphs. Cognrt~vc&choiog,
8.lb5 - 190 (1976)
S m ~ r hE E & Bruce B C .-In oudrnc O ~ rU o n c e p ~ u l ~ ~ a m c ~ ~fhc
o rfcachrng
k ~ f o ~ o f thtnk:nf sk:!is ;ReporS o 1814) Prepared iar Satronal Instrtute of Educarlon. Bolt Beranek & Ne-mar.
Cambridge. \I.\ 11981 i
S o l o ~ ~E .y. Bonar J & Ehrlrch K C o e n t r ~ v esrrareeles and l o o p ~ n qconsrructs An ernp~rrcai
srudy Comrnu~rratronso! thc .4C.if 26,853 - 860 (1983).
Soloway E Br Ehrl~chI(.Tacir programming knowledqc Procccdtngs ofrhc Fourth Annuai Coninmcr
4;thc Cop:frr.r Srrmrr S o o r r ~ ..Ann Arbor. %ftchtpan. 4 - 6 Auqust (1982).
Soiowa? E., Ehrlrch Ii.. Bonar J & Grcenspan J What d o novrces know about programmine'
In Drrccrtons rn H u m a n - C o m p u f c lnrnactrons (eds. Shneiderman B. & Badre A . ) . Abicx.
Hillsdale. NJ (1982).
Solowav E.. Lochhcad J 9 Clement J Does computer programming enhance
solvms
abdiry' Some posrrlve e v ~ d e n c eon alycbra word problems In C o m p u f n Lr~rraq IS&
and D rcrr~onsfor 19Hj feds Selde: R . . Anderson R & Hunrer B ). A c a d e m ~ cPress.
Yorh
(1982)
Soloway E . . R u b ~ nE . . L\.oolf B . BonarJ &Johnson W L. .MESO-11. An AI-based programming turor Yale U n ~ v e r s ~ rDepanment
\
of Computer Science. Rcsearch Repon Lt258.
December ( 1982j
Sprro R J . Bruce B C & Brewer \.\' F (eds \. Thcorcrrral I s s w s rn Rcading Comprchms;on
Erlbaum. Hrl!sd.de. S J 1980)
Srarz J P r o b l m s o l ~ t n gand Logo F i n d repon of Syracuse Vnlversirv Logo Projecr. Syracuse
Untversrt\. S e - 1.ork 11473).
Srernberr: R J & R~flirn B T h e development of analogical reasoning processes. gourna! ?'
Expcrrrncn~aiCirid P ~ w n o i o g2~7 . 195 - 232 ( 1979).
Thayer R H . . Pysrer A B & Wood R . C Xlajor issues in software cngineering projec! mana2emenr I E E E Transactrons on Sqfiu.arc Engtncnrng SE-7.333 - 342 (1981j.
L'anLehn Ii Bups are nor enough. Emprricd studies of bugs. impasses and repairs In procedural
sktlls Xrrox Cogmrrur an> Insrrucrronal Srrmca S m c s C-IS-111.
hfarch ( 1981).
\'yeorsky L . S . .\ttnd in Socrr~v(eds Cole M.. John-Stemer \.-.. Scribner S . & Soubcrman E )
H a n a r d Cn11ersirk Press, Cambrrdge. M A ( 1978)
Ct'aters R . C ThF programmer's apprentice: Knowledge based program editing I E E E T r a m acfrons on Sqfiilarc Engincming SE-8(1)(L98?).
\\'a!: D. Logo In the schools. Lqyfc 7 . 116 - 134 (1982)
l\'eir S . Logo as an rnjormarlon prosfhrfrr for fhc handrrappcd (Working paper S o . \\'P:P) %lIT.
Div~sionfor Srudies and Research in Education. Cambrrdge. 11.4. \lay (198!1.
\\'err S & \\.art D Logo A
. computer envrronmcnt for learnlnp-drsabled students. Thc Compurr
Trarhrr 8 . 1 1 - 1 7 (1981)
\\\.'erner H T h e concept of development from a comparatrve and organrsmic poinr oivikw. In Thc
Concrpr ofDcc,ciopmrnf ( e d . H a r n s D . R . ) . Un~vcrsityof Minnesota Press, hfinnesota (1957)
h'crncr H . Proccss and achicvcmenr. Haruard E d u a f t o n a l Rcurcu. 7,353 - 368 (193i).
I'oung R . %I T h c m a c h ~ n einside the machine Users' models of pocket calculators. Inumatronai
Journal of.Cfan-.Mnrhtnc S f d r c s 15.51 - 85 (1981).
I'oungs E . A . H u m a n errors rn programmrng I n f n a t r o n a l Journal q f Man-.Mochtnt Sfudrti 6 .
361 - 376 (19-4).
© Copyright 2026 Paperzz