skip to main content
article

Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers

Published:01 June 2005Publication History
Skip Abstract Section

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.

References

  1. Atkinson, B. 1987. Hypercard. Apple Computer.]]Google ScholarGoogle Scholar
  2. Becker, B. 2004. Robots: Learning to Program with Java. Self-published. Waterloo.]] Google ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. Begel, A. 1996. LogoBlocks: A graphical programming language for interacting with the world. Electrical Engineering and Computer Science Department. MIT, Cambridge, MA.]]Google ScholarGoogle Scholar
  5. Bell, B. and Lewis, C. 1993. ChemTrains: A language for creating behaving pictures. In IEEE Symposium on Visual Languages, 188--195.]]Google ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle Scholar
  10. Bruckman, A. 1997. MOOSE crossing: Construction, community, and learning in a networked virtual world for kids. MIT Media Lab, Cambridge, MA.]]Google ScholarGoogle Scholar
  11. Brusilovsky, P. 1991. Turingal---the language for teaching the principles of programming. In the 3rd European Logo Conference, Parma, Italy. 423--432.]]Google ScholarGoogle Scholar
  12. 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 ScholarGoogle Scholar
  13. Budge, B. 1983. Pinball Construction Set, Exidy Software.]]Google ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. Carnegie Mellon University. 2003. Alice 2. Available at www.alice.org.]]Google ScholarGoogle Scholar
  16. Carnegie Mellon University. 1999. Alice 99. Available at www.alice.org.]]Google ScholarGoogle Scholar
  17. Catlin, D. 1989. Roamer. Valiant Technologies. Available at www.valiant-technology.com.]]Google ScholarGoogle Scholar
  18. Cheng, A. 1998. A graphical programming interface for a children's constructionist learning environment. Electrical Engineering and Computer Science Department. MIT, Cambridge, MA.]]Google ScholarGoogle Scholar
  19. 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 ScholarGoogle Scholar
  20. Cockburn, A. and Bryant, A. 1997. Leogo: An equal opportunity user interface for programming. J. Visual Lang. Comput. 8, 5-6, 601--619.]]Google ScholarGoogle Scholar
  21. Cognitoy. 2001. Mindrover.]]Google ScholarGoogle Scholar
  22. Conway, M. 1997. Alice: Easy-to-learn 3D scripting for novices. School of Engineering and Applied Science, University of Virginia, Charlottesville, VA.]]Google ScholarGoogle Scholar
  23. Cypher, A. 1993. Watch what I do: Programming by Demonstration. MIT Press, Cambridge, MA.]] Google ScholarGoogle Scholar
  24. Debonte, A. 1998. Pet Park: A virtual learning world for kids. Electrical Engineering and Computer Science Department. MIT, Cambridge, MA.]]Google ScholarGoogle Scholar
  25. 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 ScholarGoogle Scholar
  26. Dijkstra, E. W. 1969. Structured programming. In Proceedings of Software Engineering Technologies, Rome, Italy.]]Google ScholarGoogle Scholar
  27. Disessa, A. and Abelson, H. 1988. Boxer: A reconstructable computational medium. Commun. ACM, 29, 9, 859--868.]] Google ScholarGoogle Scholar
  28. Edmark Corporation. 1995. Thinkin' Things Collection 3: Half Time.]]Google ScholarGoogle Scholar
  29. Eisenstadt, M. 1983. A user-friendly software environment for the novice programmer. Commun. ACM, 26, 12, 1058--1063.]] Google ScholarGoogle Scholar
  30. 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 ScholarGoogle Scholar
  31. Finzer, W. and Gould, L. 1984. Programming by rehearsal. Xerox Palo Alto Research Center, Palo Alto, CA.]]Google ScholarGoogle Scholar
  32. 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 ScholarGoogle Scholar
  33. Gilligan, D. 1998. An exploration of programming by demonstration in the domain of novice programming. Comput. Science. Victoria University, Wellington, Victoria, 176.]]Google ScholarGoogle Scholar
  34. 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 ScholarGoogle Scholar
  35. Glinert, E. and Tanimoto, S. 1984. Pict: An interactive graphical programming environment. Computer 17, 11, 7--25.]] Google ScholarGoogle Scholar
  36. Goodman, D. 1987. The Complete Hypercard Handbook. Bamtam Computer Books, Birmingham, AL.]] Google ScholarGoogle Scholar
  37. Guzdial, M. 1994. Software-realized scaffolding to facilitate programming for science learning. Interact. Learn. Environ. 4, 1, 1--44.]]Google ScholarGoogle Scholar
  38. Hancock, C. 2001. Children's understanding of process in the construction of robot behaviors. In Symposium on Varieties of Programming Experiences, Seattle, WA.]]Google ScholarGoogle Scholar
  39. 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 ScholarGoogle Scholar
  40. 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 ScholarGoogle Scholar
  41. 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 ScholarGoogle Scholar
  42. Holt, R. and Cordy, J. 1988. The turing programming language. Commun. ACM 31, 12, 1410--1423.]] Google ScholarGoogle Scholar
  43. 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 ScholarGoogle Scholar
  44. 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 ScholarGoogle Scholar
  45. 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 ScholarGoogle Scholar
  46. Kahn, K. 1996. Drawings on napkins, video-game animation, and other ways to program computers. Commun. ACM 43, 3, 104--106.]]Google ScholarGoogle Scholar
  47. 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 ScholarGoogle Scholar
  48. Kay, A. 1993. The early history of smalltalk. ACM SIGPLAN Notices 28, 3, 69--96.]] Google ScholarGoogle Scholar
  49. Kay, A. Etoys and simstories in squeak. Available at http://www.squeakland.org/author/etoys.html.]]Google ScholarGoogle Scholar
  50. 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 ScholarGoogle Scholar
  51. 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 ScholarGoogle Scholar
  52. 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 ScholarGoogle Scholar
  53. 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 ScholarGoogle Scholar
  54. Kurtz, T. 1981. BASIC. In Wexelblat, R., Ed. History of Programming Languages. Academic Press, New York, 515--537.]] Google ScholarGoogle Scholar
  55. Lego Systems, Inc. 1998. Lego Mindstorms Robotics Invention System. Available at http://mindstorms.lego.com.]]Google ScholarGoogle Scholar
  56. Liebermann, H. 1993. Mondrian: A teachable graphical editor. In Cypher, A. ED. Watch What I Do: Programming by Demonstration. MIT Press, Cambridge, MA.]] Google ScholarGoogle Scholar
  57. Lionet, F. and Lamoureux, Y. 1994. Klik and Play. Maxis.]]Google ScholarGoogle Scholar
  58. Logo Computer Systems, Inc. 1995. My Make Believe Castle.]]Google ScholarGoogle Scholar
  59. Logo Computer Systems, Inc. 1995. Availablle at www.microworlds.com.]]Google ScholarGoogle Scholar
  60. Logotron. 2002. Magic Forest.]]Google ScholarGoogle Scholar
  61. Martin, F., Colobong, G. L., and Resnick, M. 1999. Tangible programming with trains. Available at http://el.www.media.mit.edu/projects/trains.]]Google ScholarGoogle Scholar
  62. Maxis. 1995. Widget Workshop.]]Google ScholarGoogle Scholar
  63. Mciver, L. 1999. Grail: A zeroth programming language. In Conference in Computers in Education.]]Google ScholarGoogle Scholar
  64. Mciver, L. 2001. Syntactic and semantic issues in introductory programming education. Comput. Science Softw. Eng., Monash University, Melbourne, Australia.]]Google ScholarGoogle Scholar
  65. Mcnerney, T. 2000. Tangible programming bricks: An approach to making programming accessible to everyone. MIT Media Lab, Cambridge, MA.]]Google ScholarGoogle Scholar
  66. 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 ScholarGoogle Scholar
  67. 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 ScholarGoogle Scholar
  68. Minsky, M. 1986. The Society of Mind. Simon and Schuster, New York, NY.]] Google ScholarGoogle Scholar
  69. 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 ScholarGoogle Scholar
  70. 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 ScholarGoogle Scholar
  71. 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 ScholarGoogle Scholar
  72. Nelson, M. 2001. Robocode, IBM Advanced Technologies. Available at http://robocode.alphaworks.ibm.com/home/home.html.]]Google ScholarGoogle Scholar
  73. 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 ScholarGoogle Scholar
  74. Overmars, M. Drape: Drawing programming environment. Available at http://www.cs.uu.nl/people/markov/kids.]]Google ScholarGoogle Scholar
  75. Pane, J. 2002. A programming system for children that is designed for usability. Comput. Science, Carnegie Mellon University, Pittsburgh, PA.]] Google ScholarGoogle Scholar
  76. Papert, S. 1980. Mindstorms: Children, Computers, and Powerful Ideas. Basic Books, New York, NY.]] Google ScholarGoogle Scholar
  77. Pattis, R. 1981. Karel the Robot: A Gentle Introduction to the Art of Programming with Pascal. John Wiley & Sons, New York, NY.]] Google ScholarGoogle Scholar
  78. 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 ScholarGoogle Scholar
  79. Repenning, A. 1993. Agentsheets: A tool for building domain-oriented visual programming. In the Conference on Human Factors in Computing Systems, 142--143.]] Google ScholarGoogle Scholar
  80. 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 ScholarGoogle Scholar
  81. Reps, T. and Teitelbaum, T. 1989. The Synthesizer Generator: A System for Constructing Language-Based Editors. Springer-Verlang, New York, NY.]] Google ScholarGoogle Scholar
  82. Resnick, M. 1996. StarLogo: An environment for decentralized modeling and decentralized thinking. In Human Factors in Computing Systems, Vancouver, BC. 11--12.]] Google ScholarGoogle Scholar
  83. Robinett, W. 1979. Atari 2600 Basic Cartridge. Atari Co.]]Google ScholarGoogle Scholar
  84. Robinett, W. and Grimm, L. 1982. Rocky's Boots/Robot Odyssey. The Learning Co.]]Google ScholarGoogle Scholar
  85. Sammet, J. 1981. The early history of cobol. In Wexelblat, R. Ed. History of Programming Languages. Academic Press, New York, NY. 199--241.]] Google ScholarGoogle Scholar
  86. 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 ScholarGoogle Scholar
  87. Sherwood, B. and Sherwood, J. 1988. The cT Language. Stipes Publishing Company, Champaigne, IL.]]Google ScholarGoogle Scholar
  88. Sierra Games. 1993. The Incredible Machine.]]Google ScholarGoogle Scholar
  89. Smith, D. 1993. Pygmalion. In Cypher, A., Ed. Watch What I Do: Programming by Demonstration, MIT Press, Cambridge, MA.]] Google ScholarGoogle Scholar
  90. Smith, D., Cypher, A., and Spohrer, J. 1994. KidSim programming agents without a programming language. Commun. ACM, 37, 7, 54--67.]] Google ScholarGoogle Scholar
  91. 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 ScholarGoogle Scholar
  92. 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 ScholarGoogle Scholar
  93. 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 ScholarGoogle Scholar
  94. Teitelbaum, T. and Reps, T. 1981. The Cornell program synthesizer: A syntax-directed programming environment. Commun. ACM, 24, 9, 563--573.]] Google ScholarGoogle Scholar
  95. Tomek, I. 1983. The First Book of Josef: An Introduction to Computer Programming. Prentice Hall, Englewood Cliffs, NJ.]] Google ScholarGoogle Scholar
  96. Travers, M. 1994. Recursive interfaces for reactive objects. In Human Factors in Computing Systems, Boston, MA. 379--385.]] Google ScholarGoogle Scholar
  97. Wirth, N. 1993. Recollections about the development of pascal. ACM SIGPLAN Notices 28, 3, 333--342.]] Google ScholarGoogle Scholar
  98. 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 ScholarGoogle Scholar

Index Terms

  1. Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader