Programming Environments for Novices

The task of specializing programming environments for novices begins with the recognition that programming is a hard skill to learn. The lack of student programming skill even after a year of undergraduate studies in computer science was measured in the early 80’s [1] and again in this decade [2]. We know that students have problems with looping constructs [3], conditionals [4], and assembling programs out of base components [5]. Are these the critical pieces? If we developed a language that changed how conditionals work or loops, or make it easier to integrate components, would programming become easier? That’s the issue that developers of educational programming environments are asking. Each novice programming environment (or family of environments) is attempting to answer the question, “What makes programming hard?” Each answer to that question implies a family of environments that address the concern with a set of solutions. Obviously, there are a great many answers to the question “What makes programming hard?” For each answer, there are a great many potential environments that act upon that answer, and then there are a great many other potential environments that deal with multiple answers to that question—which makes sense, since it’s almost certainly true that there is no one correct answer to that question that applies to all people. Not all of these potential environments have been built and explored, however. The field of Computer Science Education Research is too new, and there are too few people doing work in this field. We are still in the stage of the field of identifying potential answers to key questions—indeed, even figuring out what the key questions are! There are many novice programming environments that have been built, and not all can be discussed in a short primer. Instead, this chapter will focus on three families

[1]  Adele Goldberg,et al.  Personal Dynamic Media , 1977, Computer.

[2]  T. R. G. Green Conditional program statements and their comprehensibility to professional programmers , 1977 .

[3]  Robin Jeffries,et al.  The Processes Involved in Designing Software. , 1980 .

[4]  Seymour Papert,et al.  Mindstorms: Children, Computers, and Powerful Ideas , 1981 .

[5]  Harold Abelson,et al.  Turtle geometry : the computer as a medium for exploring mathematics , 1983 .

[6]  Kate Ehrlich,et al.  Cognitive strategies and looping constructs: an empirical study , 1983, CACM.

[7]  Roy D. Pea,et al.  On the Cognitive Effects of Learning Computer Programming: A Critical Look. Technical Report No. 9. , 1987 .

[8]  Elliot Soloway,et al.  PUTTING IT ALL TOGETHER IS HARD FOR NOVICE PROGRAMMERS. , 1985 .

[9]  Elliot Soloway,et al.  Learning to program = learning to construct mechanisms and explanations , 1986, CACM.

[10]  Seymour Papert,et al.  Software Design as a Learning Environment , 1990, Interact. Learn. Environ..

[11]  David B. Palumbo,et al.  Programming Language/Problem-Solving Research: A Review of Relevant Issues , 1990 .

[12]  Annemarie S. Palincsar,et al.  Motivating Project-Based Learning: Sustaining the Doing, Supporting the Learning , 1991 .

[13]  S. Turkle,et al.  Epistemological Pluralism and the Revaluation of the Concrete. , 1992 .

[14]  James C. Spohrer,et al.  KidSim: programming agents without a programming language , 1994, CACM.

[15]  Mitchel Resnick,et al.  Turtles, termites, and traffic jams - explorations in massively parallel microworlds , 1994 .

[16]  Philip Miller,et al.  Evolution of Novice Programming Environments: The Structure Editors of Carnegie Mellon University , 1994, Interact. Learn. Environ..

[17]  Mark Guzdial,et al.  Software-Realized Scaffolding to Facilitate Programming for Science Learning , 1994, Interact. Learn. Environ..

[18]  Elliot Soloway,et al.  Learning theory in practice: case studies of learner-centered design , 1996, CHI.

[19]  I. McMillan,et al.  Changing Minds , 2000 .

[20]  John Maloney,et al.  Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself , 1997 .

[21]  Mitchel Resnick,et al.  Moose crossing: construction, community, and learning in a networked virtual world for kids , 1997 .

[22]  Alexander Repenning,et al.  Collaborative use & design of interactive simulations , 1999, CSCL.

[23]  R. Pea,et al.  Mapping the Cognitive Demands of Learning to Program , 1987, Thinking: The Second International Conference.