6
SPECIALSECTION LEARNING TO PROGRAM AND LEARNING TO THINK: WHAT’S THE CONNECTION? Focusing on thinking skills that are cognitive components of programming- rather than on intellectual ability-can illumina te the relationship between learning a programming language and learning more about thinking processes. RICHARD E. MAYER, JENNIFER L. DYCK, and WILLIAM VILBERG Many strong claims have been made c oncerning the relationship between learning to program and learn- ing to think. In the process of learning to prog ram a comp uter, it is assumed, students will also learn about their own thinking proce sses. This premise underlies many assertions concerning the usefulness of teaching computer programming in schools. For example, Pape rt [21] claims that, when chil dren are allowed to write Logo programs, “powerful intel lec- tual skills are developed in t he proce ss.” Similarly, Bork [4] sees “computer programming as a vehicl e for... training. . analytic t hinking applicable to broad classes of problems.” Nickerson [20] argues that we should view “computer programming as a vehicle for teaching thinking skills.” solving in domains beyond the programming lan- guage that is taught. Linn [13] has suggested three possible “cognit ive accomplishments” from learni ng programming in a language such as Basic: (1) learn- ing the features of the language, such a s the state- ments LET, PRINT, and INPUT; (2) learning to solve programming problems, such as designing programs in Basic; and (3) learning problem-solving skills ap- plicable to other formal systems, s uch as problem solving in other languag es. The third catego ry, which represe nts “transfer” of learning to new domains, is the focus of this article. Despite these claims, there have been very few relevant researc h studies and almost no convincing support of this connecti on [7, 8, 13, 17, 221. This articl e presents research on three assertions con- cerning the relationship between learning to pro- gram and learning to think, based on a cognitive analysi s of programming [17]. Each assertion is de- fined, available literature is reviewed, and an empir- ical study from our laboratory in Santa Barbara, Cal- iforni a, is summarized to assess the current state of knowledge concerning the relationship between learning to program and learni ng to think. In orde r to accomp lish this goal, it is necessa ry to define what is meant by “learni ng to program” and “learning to think.” In the context of this article, learning to program refers to the initial learning of a novice’s first programming language. In particul ar, we focus on changes in people who initiall y know nothing about programming and who engage in ap- proximately lo-50 hours of experience with Basic. Learning to think refers to improvements in problem This project was supported by the National Science Foundation under grant MDR84-70248. 0 1986 ACM OOOl-0782/86/0700- 0605 7% As a brief historical prelude, it must be pointed out that the search for methods to teach problem solving has been an elusive one [14, 181. For exam- ple, the Latin School movement, which originated in the 160 0s in the United States, was one of the first large-scale attempts to teach “proper habits of mind.” The curriculum focused on teaching students to read, write, and speak Lati n, as well as teaching some Greek and geometry [23], t he aim being to build logical and disciplined minds. Howev er, the practical demands of an emerging industrialized so- ciety and the negative results of educational re- search studies eventually helped to bring o n the de- mise of Latin Schools. Thorndike’s classi c “transf er of training” studies also found tha t learning Latin did not produce strong transfer to other domains [26]. Similar failures to produce transfer have been observed for modern curricula aimed at teaching general think ing skills [5,15] and for compensatory training in general intellectual development [6]. Transfer is even rare when students who have learned problem-solvi ng strategies within one do- main are asked to solve formally identical problems presented within a different domain [5, 181. It is from this historical context-of strong claims for transfer coupled with little or no researc h support- that we now address each of the three assertions discussed below. ]uly 1986 Volume 29 Number 7 Commun ications of the ACM

3-learning to program and learning to think

  • Upload
    ben-lin

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3-learning to program and learning to think

8/7/2019 3-learning to program and learning to think

http://slidepdf.com/reader/full/3-learning-to-program-and-learning-to-think 1/6

SPECIALSECTION

LEARNING TO PROGRAM AND LEARNING

TO THINK: WHAT’S THE CONNECTION?

Focusing on thinking skills that are cognitive components of programming-

rather than on intellectual ability-can illuminate the relationship between

learning a programming language and learning more about thinking processes.

RICHARD E. MAYER, JENNIFER L. DYCK, and WILLIAM VILBERG

Many strong claims have been made concerning the

relationship between learning to program and learn-

ing to think. In the process of learning to program

a computer, it is assumed, students will also learn

about their own thinking processes. This premiseunderlies many assertions concerning the usefulness

of teaching computer programming in schools. For

example, Papert [21] claims that, when children are

allowed to write Logo programs, “powerful intellec-

tual skills are developed in the process.” Similarly,

Bork [4] sees “computer programming as a vehicle

for... training. . analytic thinking applicable to

broad classes of problems.” Nickerson [20] argues

that we should view “computer programming

as a vehicle for teaching thinking skills.”

solving in domains beyond the programming lan-

guage that is taught. Linn [13] has suggested three

possible “cognitive accomplishments” from learning

programming in a language such as Basic: (1) learn-

ing the features of the language, such as the state-ments LET, PRINT, and INPUT; (2) learning to solve

programming problems, such as designing programs

in Basic; and (3) learning problem-solving skills ap-

plicable to other formal systems, such as problem

solving in other languages. The third category,

which represents “transfer” of learning to new

domains, is the focus of this a rticle.

Despite these claims, there have been very few

relevant research studies and almost no convincingsupport of this connection [7, 8, 13, 17, 221. This

article presents research on three assertions con-

cerning the relationship between learning to pro-

gram and learning to think, based on a cognitive

analysis of programming [17]. Each assertion is de-

fined, available literature is reviewed, and an empir-

ical study from our laboratory in Santa Barbara, Cal-

ifornia, is summarized to assess the current state of

knowledge concerning the relationship between

learning to program and learning to think.

In order to accomplish this goal, it is necessary to

define what is meant by “learning to program” and“learning to think.” In the context of this article,

learning to program refers to the initial learning of

a novice’s first programming language. In particular,

we focus on changes in people who initially know

nothing about programming and who engage in ap-

proximately lo-50 hours of experience with Basic.

Learning to think refers to improvements in problem

This project was supported by the National Science Foundation under grant

MDR84-70248.

0 1986 ACM OOOl-0782/86/0700- 0605 7%

As a brief historical prelude, it must be pointed

out that the search for methods to teach problem

solving has been an elusive one [14, 181. For exam-

ple, the Latin School movement, which originated in

the 1600s in the United States, was one of the firstlarge-scale attempts to teach “proper habits of

mind.” The curriculum focused on teaching students

to read, write, and speak Latin, as well as teaching

some Greek and geometry [23], the aim being to

build logical and disciplined minds. However, the

practical demands of an emerging industrialized so-

ciety and the negative results of educational re-

search studies eventually helped to bring on the de-

mise of Latin Schools. Thorndike’s classic “transfer

of training” studies also found that learning Latin

did not produce strong transfer to other domains

[26]. Similar failures to produce transfer have beenobserved for modern curricula aimed at teaching

general thinking skills [5,15] and for compensatory

training in general intellectual development [6].

Transfer is even rare when students who have

learned problem-solving strategies within one do-

main are asked to solve formally identical problems

presented within a different domain [5, 181. It is

from this historical context-of strong claims for

transfer coupled with little or no research support-

that we now address each of the three assertions

discussed below.

]uly 1986 Volume 29 Number 7 Commun ications of the ACM

Page 2: 3-learning to program and learning to think

8/7/2019 3-learning to program and learning to think

http://slidepdf.com/reader/full/3-learning-to-program-and-learning-to-think 2/6

Special Section

ASSERTION 1: LEARNING A PROGRAMMING

LANGUAGE WILL ENHANCE A PERSON’S

THINKING SKILLS

Does learning a programming language enhance

thinking skills in domains beyond programming?

Preliminary studies involving Logo have offered

mixed results. Although Papert [Zl] offers case stud-

ies and testimonials, the unreliability of such repor ts

is notorious. In a research study, Pea and Kurland

[ZZ~ failed to find support for the idea that a year of

Logo activities improved children’s strategic plan-

ning skills. Similarly, Gregg [ll] found that four- and

five-year-old children had great difficulty both in

learning to program a turtle and in transferring what

they had learned. Gorman and Bourne [lo] found,

however, that third graders who learned Logo with

one extra hour of computer time per week per-

formed better on tests of logical reasoning than third

graders who learned Logo with just one half hour of

extra computer time per week. Apparently, gains in

thinking skills depend on the student being given

heavy doses of Logo rather than just minimal expo-

sure. The most encouraging study found that first

graders who learned Logo during a ‘12-week course

performed better on tests of creative problem solving

than first graders who were exposed to computer-

assisted instruction (CA]) over the same period [7].

This study involved very few students, however, so

replications are needed.

Preliminary studies involving Basic have also

yielded mixed results. Bayman and Mayer [3] and

Bayman [Z] have found that students who learn

Basic in traditional hands-on, mastery courses oftenharbor serious misconceptions of Basic statements.

Furthermore, students who are able to use Basic cre-

atively in problem solving tend to have fewer mis-

conceptions than students who are unable to solve

problems [2]. Linn [IS] attempted to investigate the

idea that learning Basic would enhance students’

problem-solving skills, but methodological problems

such as students’ difficulty in learning Basic pre-

cluded the study. One promising piece of evidence is

that students who know and use Basic are better

able to comprehend word problems, such as “There

are six times as many students as professors at thisuniversity” [25]. These results suggest that there

may be a connection between programming and

problem solving in other domains.

In order to more closely examine the effects of

novices’ initial learning of Basic on their thinking

skills, we conducted a study using 57 computer-

naive college students who took a course in Basic.

Before taking the course, all students took a battery

of thinking skills pretests; at the end of the term, all

students took versions of the same tests. A compari-

son group, consisting of 54 computer-naive students,

took the same thinking skills pretests at the begin-

ning of the term, and were retested toward the end.

Both groups consisted of nonengineering students

who had no plans to become professional programm ers.

The left column of Table I lists eight thinking

skills tes ts: word problem translation required translat-

ing word problems into equations, word problem solu-

tion involved giving the correct numerical answer

for word problems, following procedures involved pre-

dicting the output for a procedure stated in English,

following directions involved predicting the conse-

quences of following one or more directions, logical

reasoning involved solving a series of oddity prob-

lems, visual ability involved a series of paper folding

tasks, verbal ability involved decoding of verbal mes-

sages, and arithmetic computation involved a series of

addition and division problems. Test-retest reliabil-

ity correlations were computed for each test, yield-

ing a significant correlation at p < 0.001 for each

test. Sample items from each test are shown in the

sidebar.

Some of the tests were designed to evaluate two

skills that are specifically related to learning Basic:

the problem translation skill-as measured by the

word problem translation test and tHe word problem

solution test; and the procedure comprehension

skill-as measured by the following procedures test

and the following directions test. These two skills,

which can be called specific thinking skills or spe-

cific cognitive components of Basic programming,

were identified by carrying out a cognitive task anal-

ysis of Basic programming (171. Other tests were de-

signed to evaluate general intellectual abilities suchas logical reasoning, spatial ability, and verbal abil-

ity. Finally, the arithmetic computation test was in-

cluded to evaluate a thinking skill-making rapid

TABLE I. Eight Thinking Skills: Net Proportion Change after

Learning Basic and Predictive Correlation with Basic Exam Score

Problem translation skill

Word problem translation +0.08 0.55

Word problem solution +0.07” 0.56’Procedure comprehension skill

Following procedures +0.18 0.44’

Following directions +0.04 0.44’

General ability

Logical reasoning -0.01 0.29’

Visual ability -0.05’ 0.31 l

Verbal ability -0.01 0.16

Other skills

Arithmetic computation -0.01 0.26

The asterisk (‘) indicates that gain score for Basic group is significantlydifferent from gain score for comparison group based on a t-test(p < 0.05). or that correlation between pretest score and Basic examscore is significant (p < 0.05).

606 Communica tions of the ACM ]uly 1986 Volume 29 Number 7

Page 3: 3-learning to program and learning to think

8/7/2019 3-learning to program and learning to think

http://slidepdf.com/reader/full/3-learning-to-program-and-learning-to-think 3/6

Special Secfior7

Examples of Items from Eight Cognitive Tests

PROBLEM TRANSLATION

Word Problem Translation Test (6 problems)

A car rental service charges 20 dollars a day and

15 cents a mile to rent a car. Find the expression for

total cost C, in dollars, of renting a car for D days to

travel M miles.

a. C = 20D + 0.15Mb. C = 15D + 0.20M

c. C = 2019 + 15M

d. C = 0.15D + 20M

e. None of the above

Word Problem Solution Test (9 problems)

One day Mrs. Arnold worked 3% hours in the morning,

took a % hour for lunch. and worked 4% hours in the

afternoon. If she began work at 8:30 A.M., at what time

did she finish?

a. 4:30

b. 5:oo

c. 5:30

d. 6:00

e. 6:30

PROCEDURE COMPREHENSION

Following Directions Test (8 problems)

Column

1 2 3 4 5

Row 1 A B C D E

Row 2 B D E A c

Row 3 c E II A B

Row 4 B A C E D

Row 5 A C E B D

Start in the lower left-hand corner. and follow the letters

up Column 1, down Column 2. up Column 3, and so on,

until you reach the upper right-hand corner. What is the

first letter to appear four times?

A B C D E

Following Procedures Test (8 problems)

1. Put5inBoxA.

2. Put 4 in Box 8.

3. Add the number in Box A and the number in Box B.

and put the result in Box C.

ELIL-

computations-that is not closely rela?ed to Basic

programming.

Students in the Basic and comparison groups werematched for pretest score, so that mean scores on

each pretest were identical for the two groups. Gain

scores were computed by subtracting the proportion

correct on the pretest from the proportion correct on

the second test. The first column of numbers in

Table 1 shows the net gain score for each thinking

skill test for the Basic group, determined by sub-

tracting the gain score for the comparison group

from the gain score for the Basic group. As indicated,

the Basic group gained significantly more than the

comparison group on the two specific component

4. Add the number in Box A and the number in Box C.

and put the result in Box A.

5. Write down the numbers from Bojt A, B, and C.

What is the output of this program?

a. 5. 4. 9

b. 14, 4. 9c. 14, 9, 9

d. 9. 4. 9

e. None of the above

GENERAL ABILITIES

Logical Reasoning Test (10 problems)

Draw an X through the set of letters that is different.

BCDE FGHI JKLM PRST VWXY

Spatial Ability (10 problems)

Draw an X through the correct answer.

Verbal Ability (9 problems)

black sheep = dag kip

white dog = tin bud

black cow = dag stam

white sheep =

a. dag kip

b. tin kip

c. stam dag

d. bud tin

e. tin bud

OTHER

Computation (60 problems)

36

20

+ 54

thinking skills : problem translation (as measured by

word problem translation and word problem solu-

tion) and procedure comprehension (as measured byfollowing procedures and following directions). The

results of the word translation test are consistent

with the results of Soloway and his colleagues [25]

in that the learning of Basic programming seems to

be related to improved skill in representation of

word problems. In contrast, the Basic group did not

show significantly greater statistical gains than the

comparison group on tests of genera1 intellectual

ability, including logical reasoning, spatial ability,

and verbal ability. As expected, learning Basic did

not tend to increase students’ computational speeds.

/u/y 7986 Volume 29 Number 7 Communications of the ACM 607

Page 4: 3-learning to program and learning to think

8/7/2019 3-learning to program and learning to think

http://slidepdf.com/reader/full/3-learning-to-program-and-learning-to-think 4/6

Special Section

These results encourage the idea that learning a

programming language-even a language with as

many critics as Basic has-can result in changes in

thinking skills. The improvements appear to be lim-

ited to thinking skills that are specifically tied to

specific concepts underlying Basic, however, and

there is no evidence of any enhancement of intellec-

tual ability in general. The conclusion that can be

drawn concerning this assertion is a modest one:

Under appropriate conditions, learning to program

may result in increases for specifically related think-

ing skills, but there is not strong support for the idea

that it will radically improve general thinking skills.

ASSERTION 2: CERTAIN THINKING SKILLS WILL

ENHANCE THE LEARNING OF PROGRAMMING

The question of what students need to know in or-

der to learn a programming language has motivated

many studies, which find that general measures of

nonverbal intellectual ability such as in the IBM

Programmer Aptitude Test (PAT) or Aptitude As-

sessment Battery Programm ing (AABP) can correlate

with programming test scores in the range of r = 0.3

[l: 8, 9, 12, 191. However, as Webb [27] points out,

“it is unclear which specific abilities included in

these tests relate most strongly to performance.”

It is not particularly surprising or useful to find

that measures of general intelligence are related to

students’ learning of programming, as general intelli-

gence tests are designed to predict success in aca-

demic learning under a wide variety of situations.

The fact that such tests tend to predict success in

initial programming ability simply points to the tests’predictive validity: Success on the test is related to

success in learning to program. A theoretically more

important form of validity is construct validity-that

is, determining the underlying cognitive mechanisms

to explain why performance on a test is related to

success in learning to program. The search for con-

struct validity requires a search for tests that mea-

sure theoretically meaningful thinking skills, such as

specific component processes required for program-

ming in Basic [l’i].

Accordingly, our analysis of whether or not think-

ing skills enhance programming ability is concernedmainly with construct validity (in addition to predic-

tive validity). Another way of stating this focus is to

say that our analysis of this assertion is concerned

with identifying specific thinking skills (in addition

to general thinking skills).

The issue of which specific thinking skills are re-

lated to the learning of programming has been ex-

amined in only a few studies. Snow [24] reports that

succ:ess in learning Basic is more strongly related to

“diagraming” (r = 0.66)-a problem representation

skill specifically related to programming-than to

606 Communications of the ACM

general verbal intellectual ability (r = 0.17). In addi-

tion, tests measuring nonverbal logical reasoning

and mathematics problem solving correlated with

learning Basic (Y = 0.54). Similarly, Webb [27] found

that the best predictor of success in learning Logo

was a mathematics test consisting of word problems

and computation problems (r = 0.81). In addition,

tests of nonverbal logical reasoning correlated

strongly with learning Logo (r = 0.49); spatial ability

correlated with learning Logo in Webb’s study, but

not with learning Basic in Snow’s report.

The picture that emerges from this work is that

success in learning a language such as Basic may

depend on such specific skills as ability to translate a

word problem into an equation or answer (problem

translation), and ability to follow directions listed as

a procedure (procedure comprehension). In fact,

tests based on these specific thinking skills, or cogni-

tive components, provide the basis for construct va-

lidity and may provide even better predictive valid-

ity than traditional measures of general skills, such

as logical reasoning, and spatial and verbal ability.

In order to test these hypotheses concerning pre-

dictive thinking skills for Basic, we conducted a se-

ries of studies that each generated similar results,

but will focus on the study previously described, in

which we administered a battery of tests to 57 col-

lege students before and a fter a course in Basic.

The second column of numbers in Table I (p. 606)

summarizes the correlations between pretest score

and Basic exam score for each pretest. Tests of

the two specific thinking skills and two of the three

general abilities tests tended to predict success inlearning Basic. A subsequent stepwise multiple

regression analysis revealed that tests measuring the

two specific thinking skills were better predictors of

success than tests measuring general ability: word

problem translation, word problem solution, and fol-

lowing directions were selected for the regression

equation. Performance on these three tests ac-

counted for approximately 50 percent of the vari-

ance in Basic exam scores. It is significant that the

mos t highly predictive thinking skills are logically

related to Basic programming (i.e., are specific think-

ing skills or component skills), but not identical toinformation taught in Basic instruction. These re-

sults are consistent with a single study reported by

Snow [N], in which skill at problem representation

was related to learning Basic.

This part of our study demonstrates how it is pos-

sible to pinpoint specific thinking skills that are re-

lated to learning a programming language. As ex-

pected, success in learning Basic was related to gen-

eral intellectual ability, especially logical reasoning

and spatial ability. More importantly, this study

identified two specific thinking skills that are based

]uly 1986 Volume 29 Number 7

Page 5: 3-learning to program and learning to think

8/7/2019 3-learning to program and learning to think

http://slidepdf.com/reader/full/3-learning-to-program-and-learning-to-think 5/6

Special Section

on a cognitive task analysis of Basic [17]: ability to

translate word problems into equations or answers

(problem translation skill), and ability to predict the

outcome of a procedure or set of directions that is

stated in English (procedure comprehension skill).

The search for additional specific thinking skills

represents a potentially fruitful direction for future

research.

ASSERTION 3: PRETRAINING ON CERTAIN

THINKING SKILLS WILL ENHANCE THE

LEARNING OF PROGRAMMING

The first two sections of this article provide empiri-

cal support for the idea that the ability to learn Basic

is predicted in part by two specific thinking skills,

and that an outcome of learning Basic is improve-

ment in these two skills. The next logical step is to

determine if direct instruction in these predictive

thinking skills can foster the learning of Basic.

This issue has not been convincingly addressed in

existing published research. In some of our previouswork [2, 161, we have given pretraining in appropri-

ate mental models for various programming lan-

guages. Pretraining tended to enhance students’ sub-

sequent learning of programming languages, espe-

cially for those who lacked computer programming

aptitude. This line of research only indirectly in-

forms our analysis of this issue, since the pretraining

is not on specific thinking skills.

A preliminary study, conducted in our labs at

Santa Barbara by Jenny Dyck, addresses this issue. In

Dyck’s study, 23 randomly selected college students

(no pretraining group) learned Basic by reading amanual and through exercises in predicting the out-

puts of simple Basic programs. For example, a typi-

cal problem was the following:

Determine the output of this program:

10 LET A = 3

20 LET B = A + 5

30 PRINT B

40 END

If the student gave the right answer, the next pro-

gram was given. If the student made an error, the

correct answer was given, and the student couldrefer to the manual. In all, students solved 100 such

problems.

In contrast, 23 other randomly selected college

students (pretraining group) first received practice in

predicting the output of procedures that were stated

in English (see also the following procedures test

described in the sidebar). For example, a typical

problem was the following:

1. Put the number 3 in Box A.

2. Add 5 to the number in Box A;

put the result in Box B.

3. Write down the number from Box B.

4. Stop working on this.

If the student gave the correct answer, the next

problem was presented. If an error was made, the

correct answer was given, and the student could re-

fer to an English version of the manual. After solving

60 similar problems, students in the pretraining

group were transferred to learning Basic by predict-ing the output of 40 simple Basic programs, as

described above.

The results indicated that the students who were

given pretraining in predicting the output of English

procedures learned Basic much faster than those

with no pretraining. For example, on the first set of

40 Basic problems, the pretrained group averaged

about 6 seconds per answer to predict the output of

Basic programs compared to over 12 seconds per an-

swer for the students who had received no pretrain-

ing. A t-test revealed that this difference was statisti-

cally significant at p < 0.001. When we compared thegroup with no pretraining after 60 Basic problems to

the pretraining group (who received 60 equivalent

English procedure problems), the pretrained group

averaged about 6 seconds per answer to predict the

output of Basic programs, whereas those with no pre-

training averaged about 6.5 seconds. A t-test here

failed to reveal any significant difference between

the groups. The results may be summarized by say-

ing that pretraining in procedure comprehension is

at least as effective as isomorphic pretraining in

Basic. These findings are interesting because they

show that pretraining in procedure comprehension(involving English) provides a foundation for learn-

ing Basic. A straightforward conclusion is that proce-

dure comprehension is a component skill in learning

Basic, and that this skill can be taught to novices.

CONCLUSIONS

Several scholars, including many proponents of

Logo, have asserted that learning to program will

enhance thinking skills in domains outside of pro-

gramming. Anecdotal and personal introspective

data are the two principal sources of evidence. Un-

fortunately, both are notorious for their unreliability

and thus their unsuitability as scientific evidence.Methodologically sound experimental studies in this

area are almost nonexistent. Our study encourages

the idea that learning to program can have positive

effects on thinking skills that are directly related to

the language to be learned. At present, however,

there is no convincing evidence that learning a pro-

gram enhances students’ general intellectual ability,

or that programming is any more successful than

Latin for teaching “proper habits of mind.”

The assertion that certain thinking skills will en-

hance a person’s learning of programming has also

July 1986 Volume 29 Number 7 Communica tions of the ACM 609

Page 6: 3-learning to program and learning to think

8/7/2019 3-learning to program and learning to think

http://slidepdf.com/reader/full/3-learning-to-program-and-learning-to-think 6/6

Special Sectiotl

spawned a line of research that is subject to both

methodological and logical flaws. A common meth-

odological flaw is the “shotgun approach,” in which

many predictor variables are used so that a small

number might reach statistical significance. A com-

mon logical flaw is the “correlation implies causa-

tion fallacy”: If A predicts B, it does not mean that A

causes B. To avoid these problems, we suggested us-ing predictor tests that a re selected on the basis of

construct validity, that is, theoretically related to

learning a particular language. Although prior stud-

ies have often found evidence that general abilities,

such as logical reasoning, are predictive of learning

programming, such research does not explain the

underlying mechanisms of that learning process.

The exemplary predictor study presented in this ar-

ticle demonstrates that it might be possible to iden-

tify specific information processing skills, based on a

cognitive analysis of a programming language, that

serve as predictors of learning programming. Atpresent, problem representation and procedure com-

prehension are two likely specific thinking skills re-

lated to learning Basic; future research should be

directed at lengthening the list.

The issue of pretraining follows from the foregoing

two assertions, Although the concept of “readiness

skills” has received wide acceptance in mathematics

and language ar ts, very little is known concerning

what a person needs to know to successfully learn to

program. At the present time, it appears that pre-

training in procedure comprehension skills transfers

to learning of Basic. Additional research is needed,

however, to determine which other “predic tor skills”

might also serve as “readiness skills.”

Careful empirical research can inform the contro-

versy concerning the teaching of Basic in schools, by

evaluating assertions concerning the relation be-

tween programming and problem solving. The em-

pirical research presented in this article suggests

that there is an important-albeit limited-relation-

ship between a person ’s thinking skills and ability to

learn Basic. These preliminary results suggest that

the most fruitful way to search for a relation be-

tween thinking skills and programming is to focus

on thinking skills that are cognitive components ofprogramming-specific thinking skills that are ele-

ments in a cognitive task analysis of programming-

rather than to focus on general intellectual ability.

4. Bark. A. Leaming w ith Computers. Dig ital Press, Bedford, Mass.. 1961.

5. Bransford. I.D.. Arbitman-Smith. R.. Stein, B.S., and Vye. N.1.Improving thinking and learning skills: An analysis of three

approaches. In Vol. 1. Thinking and Learning Skills , J.W. Segal.

SF. Chipman. and R. Glaser, Eds. Erlbaum, Hillsdale. N.J.. 1965.pp. 133-206.

6. Caruso. D.R.. Taylor, J.J.. and Detterman. D.K. Intelligence researchand intelligent policy. In How and How Much Can Intefligeuce Be

Increased? D.K. Detterman and R.J. Sternberg. Eds. Ablex. Norwood,

NJ.. 1982, pp. 45-65.

7. Clements. D.H., and Cullo. D.F. Effects of computer programming

on young children’s cognition. 1. Educ. Psycho/. 76, 6 (Dec. 1964).1051-1058.

6. Dalbey. 1. . and Linn. M.C. The demands and requirements of com-puter programmin g: A literature review. I, Educ. Compuf. Res. I, 3

(Summer 1985), 253-274.

9. Denelskv. G.Y.. and McKee. M.G. Prediction of comnuter oroaram-1 .I

IO.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

mer training and job performance using the AABP Test. Pers.

Psycho/. 27 (1974). 129-137.

Corman H.. and Bourne. L.E. Learning to think by learning LOGO:

Rule learning in third grade computer programmers. Bull. Psycho-nomic Sot. 21 (1983). 165-167.

Gregg. L.W. Spatial concepts, spatia l names. and the development ofexocentric representations. In Children’s Thinking: What Develops!

R. Siegler. Ed. Erlbaum, Hillsdale. N.J.. 1976, pp. 275-290.

Hollenbeck. G.P., and McNamara, W.J. CUCPAT and programmingaptitude. Pus. Psychol. I8 (1965). 101-106.

Linn, MC. The cognitive consequences of programming instruction

in classrooms. Educ. Res. 74, 5 (May 1985). 14-16. 25-29.

Lochhead. 1. An introduction to cognitive process instructio n. InCognifiue Process Instruction . J. Lochhead and J. Clement, Eds. Frank-

lin Institute Press. Philadelphia , Pa., 1979. pp. l-4.

Mansfield, R.S.. Busse. T.V., and Krepelka, E.J. The effectiveness of

creativity training. Rev. Educ. Res. 48, 3 (Summer 1976). 517-536.

Mayer. R.E. The psycholog y of how novices learn computer pro-

gramming. Conlpul . Sure. 13. 1 (Mar. 1961). 121-141.Mayer. R.E . Learning in complex domains: A cognitive analysis of

computer programming. Psychol. Leanr. Motiv. 19 (1985). 89-130.

Mayer. R.E. The elusive search for teachable aspects of prob-

lem solving. In Hisfoy of Eduratimal Psychology. I. Glover and

R. Ronning. Eds. Academic Press, New York. To be publish ed.

McNamaer. W.J.. and Hughes, J .L. A review of research on the selec-tion of computer programmers. Pers. Psycho/. 14 (1961). 39-51.

Nickerson. R.S. Computer programming as a vehicle for teaching of

thinking skills. Th ird&g 4 (1982). 42-48.

Papert. S. Mindstorm. Basic Books. New York. 1960.

Pea. R.D.. and Kurland. M.K. On the cognitive effects of learning

computer programming. New Ideas in Psychol. 2. 2 (Spring 1965). 137-167.Rippa. S.A. Education in a Free Society: An American History.

Longman. New York. 1960.Snow. R.E. Aptitude processes. In Vol. 1. Aptitude, Learning, and

Insfruction , R.E. Snow. P. Federico. and W.E. Montague. Eds.Erlbaum. Hillsdale. N.]., 1960. pp. 27-63.

Soloway. E.. Lochhead, I.. and Clement, J. Does computer program-

ming enhance problem solving ability? Some positive evidence

on algebra word problems. In Computer Literacy. R.J. Seidel.R.E. Anderson. and B. Hunter, Eds. Academic Press. New York,

1962. pp. 171-185.

Thorndike, E.L. The influence of first-year Latin upon the ability to

read En glish. Sch. Sot. 17 (1923). 165-168.Webb, N.M. Microcomputer learning in small groups: Cognitive re-

quirements and group p rocesses. 1. Educ. Psycho/. 76, 6 (Dec. 1964).1076-1088.

CR Categories and Subject Descriptors: H.1.2 [Models and Princi-

ples]: User/Machine Systems-human factors: K.3.2 [Computers andEducation]: Computer and Information Science Education-informafionsystems educafion

General Terms: Human Factors

Additional Key Words and Phrases: Basic, human-computer interac-

tion, psychology

REFERENCES

1. Bauer, R.. Mehrens. W.A., and Visonhaler, J.R. Predicting perfor-mance in a computer programming course. Edu c. and Psychol. Meas.

28 [1968), 1159-1643.

Authors’ Present Addresses: Richard E. Mayer. Jennifer L. Dyck, and

William Vilberg. Dept. of Psychology, University of California. SantaBarbara, CA 93106: Jennifer L. Dyck, Dept. of Computer Science, Califor-nia State University, Fresno. CA 93740.0109.

2. Bayman, P. Effects of instructiona l procedures on learning a first Permission to copy without fee all or part of this material is grantedprogramming language. Ph.D. dissertation, Dept. of Psychology, provided that the copies are not made or distribute d for direct commer-Univ. of California. Santa Barbara. 1963. cial advantage, the ACM co pyright notice and the title of the publicatio n

3. Bayman, P., and Mayer, R.E. A diagnosis of beginning programmers’ and its date appear. and notice is given that copying is by permission ofmisconceptions of Basic programming statements . Commun. ACM 26, the Association for Computing Machinery. To copy otherwise. or to9 (Sept. 1983). 677-679. republish , requires a fee and/or specific perm ission.

610 Communications of the ACM july 1986 Volume 29 Number 7