Principles of Computational Thinking Tools

Part of the Educational Communications and Technology: Issues and Innovations book series (ECTII)


Computational Thinking is a fundamental skill for the twenty-first century workforce. This broad target audience, including teachers and students with no programming experience, necessitates a shift in perspective toward Computational Thinking Tools that not only provide highly accessible programming environments but explicitly support the Computational Thinking Process. This evolution is crucial if Computational Thinking Tools are to be relevant to a wide range of school disciplines including STEM, art, music, and language learning. Computational Thinking Tools must help users through three fundamental stages of Computational Thinking: problem formulation, solution expression, and execution/evaluation. This chapter outlines three principles, and employs AgentCubes online as an example, on how a Computational Thinking Tool provides support for these stages by unifying human abilities with computer affordances.


Computational Thinking Process Three stages of the Computational Thinking Process Computational Thinking Tools Principles of Computational Thinking Tools 



This work is supported by the Hasler Foundation and the National Science Foundation under Grant Numbers 0833612, 1345523, and 0848962. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of these foundations.


  1. Arnheim, R. (1969). Visual thinking. Berkley, CA: University of California Press.Google Scholar
  2. A. Basawapatna, K. H. Koh, A. Repenning, D. C. Webb, & K. S. Marshall. (2011). Recognizing computational thinking patterns. Paper presented at the the 42nd ACM technical symposium on computer science education (SIGCSE), Dallas, TX, USA.Google Scholar
  3. Basawapatna, A. R., Repenning, A., & Lewis, C. H. (2013). The simulation creation toolkit: An initial exploration into making programming accessible while preserving computational thinking. Paper presented at the 44th ACM technical symposium on computer science education (SIGCSE 2013), Denver, CO, USA.Google Scholar
  4. Burckhardt, S., Fahndrich, M., Halleux, P. D., McDirmid, S., Moskal, M., Tillmann, N., & Kato, J. (2013). It's alive! continuous feedback in UI programming. Paper presented at the proceedings of the 34th ACM SIGPLAN conference on programming language design and implementation, Seattle, WA, USA.Google Scholar
  5. Conway, M., Audia, S., Burnette, T., Cosgrove, D., Christiansen, K., Deline, R., & Pausch, R. (2000). Alice: Lessons learned from building a 3D system for novices. Paper presented at the CHI 2000 conference on human factors in computing systems, The Hague, Netherlands.Google Scholar
  6. Dijkstra, E. W. (2001). The end of computing science? Communications of the ACM, 44(3), 92. doi: 10.1145/365181.365217.CrossRefGoogle Scholar
  7. diSessa, A. A. (1991). An overview of boxer. Journal of Mathematical Behavior, 10, 3–15.Google Scholar
  8. diSessa, A. (2000). Changing minds: Computers, learning, and literacy. Cambridge, MA: MIT.Google Scholar
  9. Fischer, G. (1994). Domain-oriented design environments. In Automated software engineering (Vol. 1, pp. 177–203). Boston, MA: Kluwer Academic.Google Scholar
  10. Grover, S., & Pea, R. (2013). Computational thinking in K–12: A review of the state of the field. Educational Researcher, 42(1), 38–43. doi: 10.3102/0013189X12463051.CrossRefGoogle Scholar
  11. Guzdial, M. (2008). Education: Paving the way for computational thinking. Communications of the ACM, 51, 25–27.CrossRefGoogle Scholar
  12. Guzdial, M. (2015). Learner-centered design of computing education: Research on computing for everyone. Synthesis Lectures on Human-Centered Informatics, 8, 1.CrossRefGoogle Scholar
  13. Ioannidou, A., Repenning, A., & Webb, D. (2009). AgentCubes: Incremental 3D end-user development. Journal of Visual Language and Computing, 20(4), 236–251.CrossRefGoogle Scholar
  14. Kahn, K. (1996). Seeing systolic computations in a video game world. Paper presented at the proceedings of the 1996 IEEE symposium of visual languages, Boulder, CO, USA.Google Scholar
  15. Koh, K. H., Basawapatna, A., Bennett, V., & Repenning, A. (2010). Towards the automatic recognition of computational thinking for adaptive visual language learning. Paper presented at the conference on visual languages and human centric computing (VL/HCC 2010), Madrid, Spain.Google Scholar
  16. Lieberman, H., Paternò, F., & Wulf, V. (Eds.). (2006). End user development (Vol. 9). Dordrecht: Springer.Google Scholar
  17. McDirmid, S. (2007). Living it up with a live programming language. Paper presented at the proceedings of the 22nd annual ACM SIGPLAN conference on object-oriented programming systems and applications (OOPSLA '07).Google Scholar
  18. McDirmid, S. (2013). Usable live programming. Paper presented at the SPLASH onward!, Indianapolis, IN, USA.Google Scholar
  19. Michotte, A. (1963). The perception of causality. (T. R. Miles, Trans.). London: MethuenGoogle Scholar
  20. Myers, B. A., Pane, J. F., & Ko, A. (2004). Natural programming languages and environments. Communications of the ACM, 47(9), 47–52. doi: 10.1145/1015864.1015888.CrossRefGoogle Scholar
  21. Nardi, B. (1993). A small matter of programming. Cambridge, MA: MIT.Google Scholar
  22. Nardi, B. A., & Miller, J. R. (1990). The spreadsheet interface: A basis for end user programming. Paper presented at the INTERACT 90–3rd IFIP international conference on human-computer interaction, Cambridge,
  23. National Research Council, Committee for the Workshops on Computational Thinking, Computer Science and Telecommunications Board, Division on Engineering and Physical Sciences. (2010). Report of a workshop on the scope and nature of computational thinking. Washington, DC: National Academies.Google Scholar
  24. Papert, S. (1993). The children’s machine. New York, NY: Basic Books.Google Scholar
  25. Papert, S. (1996). An exploration in the space of mathematics educations. International Journal of Computers for Mathematical Learning, 1(1), 95–123.Google Scholar
  26. Pea, R. (1983). LOGO programming and problem solving. Paper presented at symposium of the annual meeting of the American Educational Research Association (AERA), “Chameleon in the Classroom: Developing Roles for Computers” Montreal, Canada, April 1983.Google Scholar
  27. Repenning, A. (1994). Bending icons: Syntactic and semantic transformation of icons. Paper presented at the proceedings of the 1994 IEEE symposium on visual languages, St. Louis, MO.Google Scholar
  28. Repenning, A. (1995). Bending the rules: Steps toward semantically enriched graphical rewrite rules. Paper presented at the proceedings of visual languages, Darmstadt, Germany.Google Scholar
  29. Repenning, A. (2001). End-user programmable simulations in education. Paper presented at the HCI international 2001, New Orleans.Google Scholar
  30. Repenning, A. (2006). Collaborative diffusion: Programming antiobjects. Paper presented at the OOPSLA 2006, ACM SIGPLAN international conference on object-oriented programming systems, languages, and applications, Portland, Oregon.Google Scholar
  31. Repenning, A. (2013a). Conversational programming: Exploring interactive program analysis. Paper presented at the 2013 ACM international symposium on new ideas, new paradigms, and reflections on programming and software (SPLASH/Onward! 13), Indianapolis, Indiana, USA.Google Scholar
  32. Repenning, A. (2013b). Making programming accessible and exciting. IEEE Computer, 18(13), 78–81.CrossRefGoogle Scholar
  33. Repenning, A., & Ambach, J. (1996). Tactile programming: A unified manipulation paradigm supporting program comprehension, composition and sharing. Paper presented at the 1996 IEEE symposium of visual languages, Boulder, CO.Google Scholar
  34. Repenning, A., & Ioannidou, A. (2006). AgentCubes: Raising the ceiling of end-user development in education through incremental 3D. Paper presented at the IEEE symposium on visual languages and human-centric computing 2006, Brighton, UK.Google Scholar
  35. Repenning, A., & Perrone, C. (2000). Programming by analogous examples. Communications of the ACM, 43(3), 90–97.CrossRefGoogle Scholar
  36. Repenning, A., & Perrone-Smith, C. (2001). Programming by analogous examples. In H. Lieberman (Ed.), Your wish is my command: Programming by example (Vol. 43, pp. 90–97). San Francisco, CA: Morgan Kaufmann Publishers.Google Scholar
  37. Repenning, A., Basawapatna, A., Assaf, D., Maiello, C., & Escherle, N. (2016). Retention of flow: Evaluating a computer science education week activity. Paper presented at the special interest group of computer science education (SIGCSE 2016), Memphis, Tennessee.Google Scholar
  38. Repenning, A., Webb, D. C., Brand, C., Gluck, F., Grover, R., Miller, S., et al. (2014). Beyond minecraft: Facilitating computational thinking through modeling and programming in 3D. IEEE Computer Graphics and Applications, 34(3), 68–71. doi: 10.1109/MCG.2014.46.CrossRefGoogle Scholar
  39. Repenning, A., Webb, D. C., Koh, K. H., Nickerson, H., Miller, S. B., Brand, C., et al. (2015). Scalable game design: A strategy to bring systemic computer science education to schools through game design and simulation creation. Transactions on Computing Education (TOCE), 15(2), 1–31. doi: 10.1145/2700517.CrossRefGoogle Scholar
  40. Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., & Kafai, Y. (2009a). Scratch: Programming for all. Communincation of the ACM, 52(11), 60–67.CrossRefGoogle Scholar
  41. Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E., Silver, J., Silverman, B., & Kafai, Y. (2009b). Scratch: Programming for all. Communications of the ACM, 52, 60.CrossRefGoogle Scholar
  42. Rittel, H., & Webber, M. M. (1984). Planning problems are wicked problems. In N. Cross (Ed.), Developments in design methodology (pp. 135–144). New York, NY: Wiley.Google Scholar
  43. Schneider, K., & Repenning, A. (1995). Deceived by ease of use: Using paradigmatic applications to build visual design. Paper presented at the proceedings of the 1995 symposium on designing interactive systems, Ann Arbor, MI.Google Scholar
  44. Sweigart, A. (2010). Invent your own computer games with Python, A beginner’s guide to computer programming in Python.Google Scholar
  45. Turkle, S. (2007). Evocative objects: Things we think with. Cambridge, MA: MIT.Google Scholar
  46. Willis, C. L., & Miertschin, S. L. (2005). Mind tools for enhancing thinking and learning skills. Paper presented at the proceedings of the 6th conference on information technology education, Newark, NJ, USA.Google Scholar
  47. Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33–35.CrossRefGoogle Scholar
  48. Wing, J. M. (2008). Computational thinking and thinking about computing. Philosophical Transactions of the Royal Society, 2008(366), 3717–3725.CrossRefGoogle Scholar
  49. Wing, J. M. (2014). Computational thinking benefits society.
  50. Yager, R. (Ed.). (1995). Constructivism and learning science. Mahway, NJ: Lawrence Erlbaum Associates.Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.School of EducationUniversity of Applied Sciences and Arts Northwestern Switzerland FHNWWindischSwitzerland
  2. 2.Department of Mathematics and Computer Information SystemsSUNY Old WestburyOld WestburyUSA

Personalised recommendations