Notes for Richard E. Mayer, ed. Teaching and Learning Computer Programming: Multiple Research Perspectives

Introduction
Richard E. Mayer
RECENT DEVELOPMENTS

Emergence of scholarship on teaching and learning programming by children sobers exuberance of proponents like Kemeny and Papert, as well as presenting an approach to studying philosophies of programming.

Scholarship on teaching and learning programming reveals early exuberance and powerful claims, followed by disappointing empirical results, to a transition to its treatment as regular academic subject.

(2) The history of research on teaching and learning computer programming can be analyzed into three phases: an initial phase in which many strong claims were made concerning the expected outcomes and best methods of instruction for computer programming, and observation phase in which mounting data pointed to problems in students' learning, and a research phase in which theory-based studies were carried out to systematically understand the processes underlying learning and teaching computer programming.

Phase 1: Powerful Claims

First phase characterized by powerful claims such as Papert advocacy of programming as educational domain based on discovery approach that through which children would learn how to think.

(2) Papert's (1980) advocacy for computer programming as a worthwhile educational domain seemed to have implications for both the instructional methods and expected outcomes of school programs in computing. First, early advocates for computer programming argued for a discovery approach that allowed for plenty of hands-on programming experience in an unstructured environment. Second, early advocates argued that students who learned how to program computers would also show increases in general cognitive development; that is, in learning to program, children would also learn how to think.

Phase 2: Disappointing Realities

Second phase documented disappointing realities including difficulties learning LOGO fundamentals without directed instruction and failure to transfer rudimentary programming concepts to other domains.

(3) The ideal vision of students' becoming better problem solvers due to hands-on LOGO learning collided with the documented reality of students' difficulties in learning even the fundamentals of LOGO.
(3) Learning even the rudiments of LOGO appeared to be difficult for children and transfer to other domains seemed minimal.

Phase 3: Multidisciplinary Research and Theory

Third phase characterized by multidisciplinary research and theory emphasizing more guidance, predicting skills transfer to similar domains, and employing cognitive analyses of programming knowledge.

(4) First, instead of advocating discovery methods of instruction, current research suggests that more guidance is needed to insure learning. . . . Second, instead of predicting major changes in children's cognitive development, current research suggests that transfer is most likely to occur for skills most similar to those learned in programming.
(4) Instead of evaluating the effectiveness of an instructional program, current research begins with a cognitive analysis of programming knowledge into parts that can be specified, evaluated, and taught. Furthermore, current research draws on theories of transfer in order to better understand the cognitive conditions under which transfer occurs.
(5) the current phase of research retains the idea that computer programming may ultimately become an exciting and revolutionary part of the curriculum.

CURRENT RESEARCH ISSUES
Teaching Computer Programming

(5) The overwhelming consensus among the authors in this volume is that, for most children, a hands-on discovery environment should be complemented with direct instruction and mediation by a teacher.

What is significance for self-learners and texts, when research indicates need for guided and mediated instructional methods?

(6) When researchers study real children in real classrooms, the results indicate a need for more guided and mediated instructional methods.

Learning Computer Programming
(7) Perkins et al. found modest evidence of transfer for students learning BASIC.
(7) More importantly, these authors have begun to pinpoint the conditions under which learning to program appears to be related to learning to think. These conditions include initial mastery of the syntax of the language, the development of appropriate mental models of the system, and the acquisition of strategies for how to solve procedural problems.

OVERVIEW OF CHAPTERS
(8) In chapter 6, Soloway, Spoher, and Littman argue for changing the way that programming is taught. In particular, Soloway et al. show how instruction in Pascal programming should focus on the
process of problem solving – such as the idea that there are alternative ways to solve the same programming problem – rather than on the product of problem solving – such as rapidly generating a program.

Metacourse has rhetorical objectives; do texts provide similar functions for the self-learner who embarks on the otherwise unstructured discovery method?

(9) In chapter 7, Perkins, Schwartz, and Simmons describe a programming metacourse for novices learning BASIC programming. Some of the obstacles facing novices include a lack of specific knowledge about computers, a lack of problem-solving strategic knowledge relevant for programming, and a lack of positive affect for and self-confidence about computing. The metacourse designed by Perkins et al. helps students overcome each of these obstacles by helping students acquire useful mental models of the computer, understand the meaning of the elements of program code, and learn to use appropriate program production strategies. The positive results of the metacourse encourage further research on the nature of prerequisite knowledge that supports effective learning of programming.
(9) In chapter 8, Webb and Lewis examine the social characteristics of effective learning of BASIC and LOGO. In particular, they analyze the verbal interactions among students who worked on programming problems in small groups. Interestingly, programming performance is positively related to peer interactions that generate opportunities for giving explanations and input suggestions, describing problem-solving plans and debugging, and receiving responses to questions and suggestions. In contrast, interactions with teachers do not follow the pattern found for peer interactions. This research suggests that detailed analysis of the social context of learning programming can yield important insights into the nature of effective classroom learning environments.

Curiously no mention is made of text selection in programming classrooms.

(9) In chapter 9, Sloane and Lin examine the characteristics of effective programming classrooms. . . . the most effective teachers are able to maintain a balance among the instructional strategies of providing direct instruction, allowing time for students to work independently on computers, individualizing instruction, and providing useful feedback.
(10) [IN chapter 10] Slleman et al. note two major causes of errors: lack of attention or knowledge and preexisting common sense knowledge that conflicts with the requirements of Pascal. This latter kind of error is similar to Fay and Mayer's analysis of students' misconceptions of LOGO.

IMPLICATIONS

Research on programming shows advantages of developing psychologies of subject matter areas.

(10) The growing body of research on programming shows the advantages of developing psychologies of subject matter areas: Instead of studying learning and thinking in general we can study how people learn and think within subject matter domains such as programming, mathematics, science, reading, and writing.


Chapter 7
Instructional Strategies for Novice Programmers

D.N. Perkins, Steve Schwartz, and Rebecca Simons
INTRODUCTION
(155) Students with a semester or more of instruction often display remarkable naivete about the language that they have been studying and often prove unable to manage dismayingly simple programming problems.
(155) The problem-solving and precision-intensive nature of programming offers a broad first-order understanding of what makes programming hard to learn.
THREE CATEGORIES OF DIFFICULTY
(156) The investigator posed a programming problem to a student and observed as the student attempted to solve the problem. When the student encountered difficulties, the investigator “scaffolded” the students' efforts, providing as much guidance as proved necessary – but as little as possible – to help the student over the trouble spot.
Knowledge Base and the Problem of Fragile Knowledge
(157-158) Half-knowing something is not just a state of knowing half of it, but something considerably more complex. The notion of fragile knowledge has instructional importance because it suggests instructional remedies quite different from those that would suit simply missing knowledge. . . . An integrative mental model of the computer should allow students to check better tentative responses founded on a fragile knowledge base about particular commands, as well as to learn commands with more precision.
Problem-Solving Strategies and Strategic Shortfall
Affect and Attitude: Problems of Confidence and Control

Perkins, Schwartz, Simons: interesting implications for study of programming style.

(158) The clinical research also disclosed problems of confidence and control in systematically pursuing programming problems. We identified a “stopper-mover” continuum, characterizing some students as “stoppers,” because they would disengage from a programming task at the first sign of difficulty, and other students at the opposite extreme as “movers,” because no matter what the tangle, they would keep trying to work toward a solution.




Mayer, Richard E. (1988). Introduction. In Richard E. Mayer (Ed.), Teaching and learning computer programming: Multiple research perspectives. Hillsdale, N.J: L. Erlbaum Associates.


Mayer, Richard E., Ed. Teaching and Learning Computer Programming: Multiple Research Perspectives. Hillsdale, N.J: L. Erlbaum Associates, 1988. Print.