Abstract
Since the early 1960's, researchers have built a number of programming languages and environments with the intention of making programming accessible to a larger number of people. This article presents a taxonomy of languages and environments designed to make programming more accessible to novice programmers of all ages. The systems are organized by their primary goal, either to teach programming or to use programming to empower their users, and then, by each system's authors' approach, to making learning to program easier for novice programmers. The article explains all categories in the taxonomy, provides a brief description of the systems in each category, and suggests some avenues for future work in novice programming environments and languages.
- Atkinson, B. 1987. Hypercard. Apple Computer.]]Google Scholar
- Becker, B. 2004. Robots: Learning to Program with Java. Self-published. Waterloo.]] Google Scholar
- Begel, A. 1997. Bongo: A kids' programming environment for creating video games on the Web. Electrical Engineering and Computer Science Department, MIT, Cambridge, MA.]]Google Scholar
- Begel, A. 1996. LogoBlocks: A graphical programming language for interacting with the world. Electrical Engineering and Computer Science Department. MIT, Cambridge, MA.]]Google Scholar
- Bell, B. and Lewis, C. 1993. ChemTrains: A language for creating behaving pictures. In IEEE Symposium on Visual Languages, 188--195.]]Google Scholar
- Bergin, J., Stehlik, M., Roberts, J., and Pattis, R. 2001. Karel J. Robot: A gentle introduction to the art of object-oriented programming. Available at http://csis.pace.edu/~bergin/KarelJava2ed/Karel++JavaEdition.html.]] Google Scholar
- Bergin, J., Stehlik, M., Roberts, J., and Pattis, R. 1996. Karel++: A Gentle Introduction to the Art of Object-Oriented Programming. John Wiley & Sons, Inc., New York, NY.]] Google Scholar
- Blackwell, A. and Hague, R. 2001. AutoHAN: An architecture for programming the home. In IEEE Symposia on Human-Centric Computing Languages and Environments, Stresa, Italy. 150--157.]] Google Scholar
- Blanchard, C., Burgess, S., Harvill, Y., Lanier, J., Lasko, A., Oberman, M., and Teitel, M. 1990. Reality built for two: A virtual reality tool. In Symposium on Interactive 3D Graphics, Snowbird, UT. 35--36.]] Google Scholar
- Bruckman, A. 1997. MOOSE crossing: Construction, community, and learning in a networked virtual world for kids. MIT Media Lab, Cambridge, MA.]]Google Scholar
- Brusilovsky, P. 1991. Turingal---the language for teaching the principles of programming. In the 3rd European Logo Conference, Parma, Italy. 423--432.]]Google Scholar
- Brusilovsky, P., Calabrese, E., Hvorecky, J., Kouchnirenko, A., and Miller, P. 1997. Mini-languages: A way to learn programming principles. Educat. Inform. Technol., 2, 1, 65--83.]] Google Scholar
- Budge, B. 1983. Pinball Construction Set, Exidy Software.]]Google Scholar
- Burnett, M., Atwood, J., Djang, R., Gottfried, H., Reichwein, J., and Yang, S. 2001. Forms/3: A first-order visual language to explore the boundaries of the spreadsheet paradigm. J. Funct. Program. 11, 2, 155--206.]] Google Scholar
- Carnegie Mellon University. 2003. Alice 2. Available at www.alice.org.]]Google Scholar
- Carnegie Mellon University. 1999. Alice 99. Available at www.alice.org.]]Google Scholar
- Catlin, D. 1989. Roamer. Valiant Technologies. Available at www.valiant-technology.com.]]Google Scholar
- Cheng, A. 1998. A graphical programming interface for a children's constructionist learning environment. Electrical Engineering and Computer Science Department. MIT, Cambridge, MA.]]Google Scholar
- Cockburn, A. and Bryant, A. 1998. Cleogo: Collaborative and multi-metaphor programming for kids. In the 3rd Asia Pacific Conference on Computer Human Interaction (Japan). 187--192.]] Google Scholar
- Cockburn, A. and Bryant, A. 1997. Leogo: An equal opportunity user interface for programming. J. Visual Lang. Comput. 8, 5-6, 601--619.]]Google Scholar
- Cognitoy. 2001. Mindrover.]]Google Scholar
- Conway, M. 1997. Alice: Easy-to-learn 3D scripting for novices. School of Engineering and Applied Science, University of Virginia, Charlottesville, VA.]]Google Scholar
- Cypher, A. 1993. Watch what I do: Programming by Demonstration. MIT Press, Cambridge, MA.]] Google Scholar
- Debonte, A. 1998. Pet Park: A virtual learning world for kids. Electrical Engineering and Computer Science Department. MIT, Cambridge, MA.]]Google Scholar
- Digiano, C. 1996. Self-disclosing design tools: An incremental approach toward end-user programming. Computer Science Department. University of Colorado at Boulder, Boulder, CO.]] Google Scholar
- Dijkstra, E. W. 1969. Structured programming. In Proceedings of Software Engineering Technologies, Rome, Italy.]]Google Scholar
- Disessa, A. and Abelson, H. 1988. Boxer: A reconstructable computational medium. Commun. ACM, 29, 9, 859--868.]] Google Scholar
- Edmark Corporation. 1995. Thinkin' Things Collection 3: Half Time.]]Google Scholar
- Eisenstadt, M. 1983. A user-friendly software environment for the novice programmer. Commun. ACM, 26, 12, 1058--1063.]] Google Scholar
- Fenton, J. and Beck, K. 1989. Playground: An object-oriented simulation system with agent rules for children of all ages. In Proceedings on Object-Oriented Programming Systems, Languages and Applications, New Orleans, LA. 123--137.]] Google Scholar
- Finzer, W. and Gould, L. 1984. Programming by rehearsal. Xerox Palo Alto Research Center, Palo Alto, CA.]]Google Scholar
- Frei, P., Su, V., and Ishii, H. 2000. Curlybot: Designing a new class of computational toys. In the Conference on Human Factors in Computing Systems, Los Angeles, CA. 129--136.]] Google Scholar
- Gilligan, D. 1998. An exploration of programming by demonstration in the domain of novice programming. Comput. Science. Victoria University, Wellington, Victoria, 176.]]Google Scholar
- Gindling, J., Ioannidou, A., Loh, J., Lokkebo, O., and Repenning, A. 1995. LEGOsheets: A rule-based programming, simulation and manipulation environment for the LEGO programmable brick. In IEEE Symposium on Visual Languages, Darmstadt, Germany, 172--179.]] Google Scholar
- Glinert, E. and Tanimoto, S. 1984. Pict: An interactive graphical programming environment. Computer 17, 11, 7--25.]] Google Scholar
- Goodman, D. 1987. The Complete Hypercard Handbook. Bamtam Computer Books, Birmingham, AL.]] Google Scholar
- Guzdial, M. 1994. Software-realized scaffolding to facilitate programming for science learning. Interact. Learn. Environ. 4, 1, 1--44.]]Google Scholar
- Hancock, C. 2001. Children's understanding of process in the construction of robot behaviors. In Symposium on Varieties of Programming Experiences, Seattle, WA.]]Google Scholar
- Hartmann, W., Nievergelt, J., and Riechert, R. 2001. Kara: Finite state machines, and the case for programming as part of general education. In IEEE Symposia on Human Centric Computing Languages and Environments, Stresa, Italy. 135--141.]] Google Scholar
- Hays, J. and Burnett, M. 2001. Guided tour of Forms/3. Available at http://web.engr.oregonst-ate.edu/~burnett/Forms3/Tour/tour.html.]]Google Scholar
- Hintze, J. and Masuch, M. 2004. Designing a 3D authoring tool for children. In the 2nd International Conference on Creating, Connecting and Collaborating through Computing, Kyoto, Japan. 78--85.]] Google Scholar
- Holt, R. and Cordy, J. 1988. The turing programming language. Commun. ACM 31, 12, 1410--1423.]] Google Scholar
- Holt, R., Wortman, D., Barnard, D., and Cordy, J. R. 1977. SP/k: A system for teaching computer programming. Commun. ACM 20, 5, 301--309.]] Google Scholar
- Igarashi, T., Matsuoka, S., and Tanaka, H. 1999. Teddy: A sketching interface for 3D freeform design. In the International Conference on Computer Graphics and Interactive Techniques. ACM Press, 409--416.]] Google Scholar
- Ingalls, D., Wallace, S., Chow, Y.-Y., Ludolph, F., and Doyle, K. 1988. Fabrik: A visual programming environment. In Object Oriented Programming Systems, Languages, and Applications, San Diego, CA. 176--190.]] Google Scholar
- Kahn, K. 1996. Drawings on napkins, video-game animation, and other ways to program computers. Commun. ACM 43, 3, 104--106.]]Google Scholar
- Kato, H. and Ide, A. 1995. Using a game for social setting in a learning environment: AlgoArena---A tool for learning software design. In Computer Supported Collaborative Learning, Bloomington, IN. 195--199.]] Google Scholar
- Kay, A. 1993. The early history of smalltalk. ACM SIGPLAN Notices 28, 3, 69--96.]] Google Scholar
- Kay, A. Etoys and simstories in squeak. Available at http://www.squeakland.org/author/etoys.html.]]Google Scholar
- Kimura, T., Choi, J., and Mack, J. 1990. Show and tell: A visual programming language. In Glinert, E. P., Ed. Visual Programming Environments: Paradigms and Systems. IEEE Computer Science Press, 397--404.]]Google Scholar
- Kolling, M., Quig, B., Patterson, A., and Rosenberg, J. 2003. The BlueJ system and its pedagogy. J. Comput. Science Educ., Special Issue of Learning and Teaching Object Technology 12, 4, 249--268.]]Google Scholar
- Kolling, M. and Rosenberg, J. 1996a. Blue---A language for teaching object-oriented programming. In Proceedings of the 27th SIGCSE Technical Symposium on Computer Science Education, Philadelphia, PA. 190--194.]] Google Scholar
- Kolling, M. and Rosenberg, J. 1996b. An object-oriented program development environment for the first programming course. In Proceedings of the 27th SIGCSE Technical Symposium on Computer Science Education, Philadelphia, PA. 83--87.]] Google Scholar
- Kurtz, T. 1981. BASIC. In Wexelblat, R., Ed. History of Programming Languages. Academic Press, New York, 515--537.]] Google Scholar
- Lego Systems, Inc. 1998. Lego Mindstorms Robotics Invention System. Available at http://mindstorms.lego.com.]]Google Scholar
- Liebermann, H. 1993. Mondrian: A teachable graphical editor. In Cypher, A. ED. Watch What I Do: Programming by Demonstration. MIT Press, Cambridge, MA.]] Google Scholar
- Lionet, F. and Lamoureux, Y. 1994. Klik and Play. Maxis.]]Google Scholar
- Logo Computer Systems, Inc. 1995. My Make Believe Castle.]]Google Scholar
- Logo Computer Systems, Inc. 1995. Availablle at www.microworlds.com.]]Google Scholar
- Logotron. 2002. Magic Forest.]]Google Scholar
- Martin, F., Colobong, G. L., and Resnick, M. 1999. Tangible programming with trains. Available at http://el.www.media.mit.edu/projects/trains.]]Google Scholar
- Maxis. 1995. Widget Workshop.]]Google Scholar
- Mciver, L. 1999. Grail: A zeroth programming language. In Conference in Computers in Education.]]Google Scholar
- Mciver, L. 2001. Syntactic and semantic issues in introductory programming education. Comput. Science Softw. Eng., Monash University, Melbourne, Australia.]]Google Scholar
- Mcnerney, T. 2000. Tangible programming bricks: An approach to making programming accessible to everyone. MIT Media Lab, Cambridge, MA.]]Google Scholar
- Merrill, D. C. and Reiser, B. J. 1993. Scaffolding the acquisition of complex skills with reasoning-congruent learning environments. In Workshop in Graphical Representations, Reasoning, and Communication from the World Conference on Artificial Intelligence in Education. University of Edinburgh, 9--16.]]Google Scholar
- Miller, P., Pane, J., Meter, G., and Vorthmann, S. 1994. Evolution of novice programming environments: The Structure Editors of Carnegie Mellon University. Interac. Learn. Environ. 4, 2, 140--158.]]Google Scholar
- Minsky, M. 1986. The Society of Mind. Simon and Schuster, New York, NY.]] Google Scholar
- Montemayor, J., Druin, A., Farber, A., Simms, S., Churaman, W., and D'amour, A. 2002. Physical programming: Designing tools for children to create physical interactive environments. In the Conference on Human Factors in Computing Systems, Minneapolis, MN. 299--306.]] Google Scholar
- Motil, J. and Epstein, D. 1998. JJ: A language designed for beginners (less is more). Available at http://www.publicstaticvoidmain.com/JJ_A_Language_Designed_For_Begin-ners_LessIsMore.pdf.]]Google Scholar
- Mulholland, P. and Watt, S. 1998. Hank: A friendly cognitive modelling language for psychology students. In IEEE Symposium on Visual Languages, Nova Scotia, 210--216.]] Google Scholar
- Nelson, M. 2001. Robocode, IBM Advanced Technologies. Available at http://robocode.alphaworks.ibm.com/home/home.html.]]Google Scholar
- Norman, D. 1986. Cognitive engineering. In Norman, D. and Draper, S., Eds. User Centered System Design: New Perspectives on Human-Computer Interaction. Lawrence Erlbaum Associates, Hillsdale, NJ.]]Google Scholar
- Overmars, M. Drape: Drawing programming environment. Available at http://www.cs.uu.nl/people/markov/kids.]]Google Scholar
- Pane, J. 2002. A programming system for children that is designed for usability. Comput. Science, Carnegie Mellon University, Pittsburgh, PA.]] Google Scholar
- Papert, S. 1980. Mindstorms: Children, Computers, and Powerful Ideas. Basic Books, New York, NY.]] Google Scholar
- Pattis, R. 1981. Karel the Robot: A Gentle Introduction to the Art of Programming with Pascal. John Wiley & Sons, New York, NY.]] Google Scholar
- Perlman, R. 1976. Using computer technology to provide a creative learning environment for preschool children. Electrical Engineering and Computer Science, Department MIT, Cambridge, MA.]]Google Scholar
- Repenning, A. 1993. Agentsheets: A tool for building domain-oriented visual programming. In the Conference on Human Factors in Computing Systems, 142--143.]] Google Scholar
- Repenning, A. and Ambach, J. 1996. Tactile programming: A unified manipulation paradigm supporting program comprehension, composition, and sharing. In IEEE Symposium on Visual Languages, Boulder, CO. 102--109.]] Google Scholar
- Reps, T. and Teitelbaum, T. 1989. The Synthesizer Generator: A System for Constructing Language-Based Editors. Springer-Verlang, New York, NY.]] Google Scholar
- Resnick, M. 1996. StarLogo: An environment for decentralized modeling and decentralized thinking. In Human Factors in Computing Systems, Vancouver, BC. 11--12.]] Google Scholar
- Robinett, W. 1979. Atari 2600 Basic Cartridge. Atari Co.]]Google Scholar
- Robinett, W. and Grimm, L. 1982. Rocky's Boots/Robot Odyssey. The Learning Co.]]Google Scholar
- Sammet, J. 1981. The early history of cobol. In Wexelblat, R. Ed. History of Programming Languages. Academic Press, New York, NY. 199--241.]] Google Scholar
- Sellman, R. 1992. Gravitas: An object-oriented discovery learning environment for Newtonian gravitation. In Proceedings of the East-West Conference on Human-Computer Interaction. 31--41.]]Google Scholar
- Sherwood, B. and Sherwood, J. 1988. The cT Language. Stipes Publishing Company, Champaigne, IL.]]Google Scholar
- Sierra Games. 1993. The Incredible Machine.]]Google Scholar
- Smith, D. 1993. Pygmalion. In Cypher, A., Ed. Watch What I Do: Programming by Demonstration, MIT Press, Cambridge, MA.]] Google Scholar
- Smith, D., Cypher, A., and Spohrer, J. 1994. KidSim programming agents without a programming language. Commun. ACM, 37, 7, 54--67.]] Google Scholar
- Smith, R. 1987. Experiences with the alternate reality kit: An example of the tension between literalism and magic. In Human Factors in Computing Systems, 61--67.]] Google Scholar
- Suzuki, H. and Kato, H. 1995. Interaction-level support for collaborative learning: AlgoBlock---An open programming language. In Computer Supported Collaborative Learning, Bloomington, IN. 349--355.]] Google Scholar
- Tanimoto, S. and Runyan, M. 1986. Play: An iconic programming system for children. In Chang, S. K., Ichikawa, T. and Ligomenides, P. A., Eds. Visual Languages. Plenum Publishing Corp. 191--205.]]Google Scholar
- Teitelbaum, T. and Reps, T. 1981. The Cornell program synthesizer: A syntax-directed programming environment. Commun. ACM, 24, 9, 563--573.]] Google Scholar
- Tomek, I. 1983. The First Book of Josef: An Introduction to Computer Programming. Prentice Hall, Englewood Cliffs, NJ.]] Google Scholar
- Travers, M. 1994. Recursive interfaces for reactive objects. In Human Factors in Computing Systems, Boston, MA. 379--385.]] Google Scholar
- Wirth, N. 1993. Recollections about the development of pascal. ACM SIGPLAN Notices 28, 3, 333--342.]] Google Scholar
- Wyeth, P. and Purchase, H. C. 2000. Programming without a computer: A new interface for children under eight. In the 1st Australasian User Interface Conference, Canberra, Australia. 141--148.]] Google Scholar
Index Terms
- Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers
Recommendations
Another approach to teaching programming concept course with object first
CITC5 '04: Proceedings of the 5th conference on Information technology educationIn an effort to better prepare students for success as a CS/CIS major, the Computer Science department at California Lutheran University introduced a pre-programming course four years ago. The course helped to increase the level of following two java ...
Teaching Introductory Programming: A Quantitative Evaluation of Different Approaches
Teaching programming to beginners is a complex task. In this article, the effects of three factors—choice of programming language, problem-solving training, and the use of formative assessment—on learning to program were investigated. The study adopted ...
Linking different programming paradigms: thoughts about instructional design
ITiCSE '10: Proceedings of the fifteenth annual conference on Innovation and technology in computer science educationEducators recommend that students become acquainted with different programming paradigms in order to acquire alternative ways of computational thinking and various approaches for problem solving. Since students, learning different paradigms show both, ...
Comments