Making programming easier for children

A conceptual gap exists between the # representations that people use in their minds when thinking about a problem and the representations that computers will accept when they are programmed. Introduction During the past 30 years there have been many attempts to enable ordinary people-people who are not professional programmers to program computers. Researchers have invented languages such as Logo, Smalltalk, BASIC, Pascal, and HyperTalk. They have developed techniques such as struc-tured programming. They have approached programming from a pedagogical perspective with technology, such as the goal-plan editor, [17] and from an engineering perspective, with CASE tools. Each of these is a brilliant advance in its own right. Today, however, only a small percentage of people program computers , probably less than 1 percent. A single-digit percentile is not success. We believe that there are at least two reasons for this low rate. First, traditional programming forces someone to learn a new language. Learning another language is difficult for most people. Consider the years of effort that it takes to master a foreign language. Second, programming languages are artificial languages rather than natural languages. They have a different epistemology. They deal with the unfamiliar world of computer data structures and algorithms. This makes them even less tractable for novices. The solution is to make programming more like thinking. In this paper we will show how a research project at Apple Computer has attempted to do this for children's programming. The key ideas are to use representations in the computer that are analogous to the objects being represented and to allow those representations to be directly manipulated in the process of programming.

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

[2]  Alexander Repenning,et al.  Bending the rules: steps toward semantically enriched graphical rewrite rules , 1995, Proceedings of Symposium on Visual Languages.

[3]  Alexander Repenning,et al.  Agentsheets: a tool for building domain-oriented dynamic, visual environments , 1993 .

[4]  J. Bruner Toward a Theory of Instruction , 1966 .

[5]  J. Hadamard,et al.  The Psychology of Invention in the Mathematical Field. , 1945 .

[6]  George W. Furnas,et al.  New graphical reasoning models for understanding graphical interfaces , 1991, CHI.

[7]  Randall Davis,et al.  An overview of production systems , 1975 .

[8]  Cyndi Rader,et al.  How does a visual simulation program support students creating science models? , 1996, Proceedings 1996 IEEE Symposium on Visual Languages.

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

[10]  Jean Underwood,et al.  Collaboration and discourse while programming the KidSim microworld simulation , 1996, Comput. Educ..

[11]  Elliot Soloway,et al.  Marcel: Simulating the Novice Programmer , 1992 .

[12]  Jean Underwood,et al.  Learning graphical programming: an evaluation of KidSim , 1995, PPIG.

[13]  David Canfield Smith,et al.  KidSim: end user programming of simulations , 1995, CHI '95.

[14]  Brigham Bell,et al.  ChemTrains: a language for creating behaving pictures , 1993, Proceedings 1993 IEEE Symposium on Visual Languages.

[15]  Henry Lieberman,et al.  Watch what I do: programming by demonstration , 1993 .

[16]  Aaron Sloman,et al.  Interactions Between Philosophy and Artificial Intelligence: The Role of Intuition and Non-Logical Reasoning in Intelligence , 1971, IJCAI.