Advertisement

Teaching Programming and Algorithmic Complexity with Tangible Machines

  • Tobias Kohn
  • Dennis Komm
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11169)

Abstract

Understanding the notional machine that conceptually executes a program is a crucial step towards mastery of computer programming. In order to help students build a mental model of the notional machine, visible and tangible computing agents might be of great value, as they provide the student with a conceptual model of who or what is doing the actual work. In addition to programming, the concept of a notional machine is equally important when teaching algorithmic design, complexity theory, or computational thinking. We therefore propose to use a common computing agent as notional machine to not only introduce programming, but also discuss algorithms and their complexity.

Keywords

Python Turtle graphics Complexity Efficiency Notional machine 

Supplementary material

References

  1. 1.
    Abelson, H., DiSessa, A.: Turtle Geometry. MIT Press, Cambridge (1981)zbMATHGoogle Scholar
  2. 2.
    Bell, T., Andreae, P., Lambert, L.: Computer science in New Zealand high schools. In: Proceedings of ACE 2010 (2010)Google Scholar
  3. 3.
    Bell, T., Witten, I., Fellows, M.: CS unplugged - computer science without a computer. http://csunplugged.org. Accessed 17 Sept 2017
  4. 4.
    Bell, T., Rosamond, F., Casey, N.: Computer science unplugged and related projects in math and computer science popularization. In: Bodlaender, H.L., Downey, R., Fomin, F.V., Marx, D. (eds.) The Multivariate Algorithmic Revolution and Beyond. LNCS, vol. 7370, pp. 398–456. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-30891-8_18CrossRefzbMATHGoogle Scholar
  5. 5.
    Bell, T., Alexander, J., Freeman, I., Grimley, M.: Computer science unplugged: school students doing real computing without computers. N. Z. J. Appl. Comput. Inf. Technol. 13, 01 (2009)Google Scholar
  6. 6.
    Caspersen, M.E., Christensen, H.B.: Here, there and everywhere - on the recurring use of turtle graphics in CS1. In: Proceedings of ACSE 2000 (2000)Google Scholar
  7. 7.
    Du Boulay, B.: Some difficulties of learning to program. J. Educ. Comput. Res. 2(1), 57–73 (1986)CrossRefGoogle Scholar
  8. 8.
    Gallenbacher, J.: Abenteuer Informatik, 4th edn. Springer, Heidelberg (2017).  https://doi.org/10.1007/978-3-662-53965-1CrossRefzbMATHGoogle Scholar
  9. 9.
    Hartmann, W., Nievergelt, J., Reichert, R.: Kara, finite state machines, and the case for programming as part of general education. In: Proceedings of the IEEE 2001 Symposia on Human Centric Computing Languages and Environments (HCC 2001), p. 135. IEEE Computer Society, Washington, DC (2001)Google Scholar
  10. 10.
    Hromkovič, J., Kohn, T., Komm, D., Serafini, G.: Combining the power of python with the simplicity of logo for a sustainable computer science education. In: Brodnik, A., Tort, F. (eds.) ISSEP 2016. LNCS, vol. 9973, pp. 155–166. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-46747-4_13CrossRefGoogle Scholar
  11. 11.
    Kelleher, C., Pausch, R.: Lowering the barriers to programming: a taxonomy of programming environments and languages for novice programmers. ACM Comput. Surv. 37(2), 83–137 (2005)CrossRefGoogle Scholar
  12. 12.
    Kölling, M.: The greenfoot programming environment. Trans. Comput. Educ. 10(4), 14:1–14:21 (2010)CrossRefGoogle Scholar
  13. 13.
    Komm, D., Kohn, T.: An introduction to running time analysis for an SOI workshop. Olymp. Inform. 11, 77–86 (2017)CrossRefGoogle Scholar
  14. 14.
    Lawrence, A.W., Badre, A.M., Stasko, J.T.: Empirically evaluating the use of animations to teach algorithms. In: Proceedings of 1994 IEEE Symposium on Visual Languages, pp. 48–54, October 1994Google Scholar
  15. 15.
    Lewis, C.M.: How programming environment shapes perception, learning and goals: Logo vs. Scratch. In: Proceedings of the 41st ACM Technical Symposium on Computer Science Education, SIGCSE 2010, pp. 346–350. ACM, New York (2010)Google Scholar
  16. 16.
    Lister, R.: Concrete and other neo-Piagetian forms of reasoning in the novice programmer. In: Proceedings of the Thirteenth Australasian Computing Education Conference, ACE 2011, vol. 114, pp. 9–18. Australian Computer Society Inc., Darlinghurst (2011)Google Scholar
  17. 17.
    Ma, L., Ferguson, J., Roper, M., Wood, M.: Investigating and improving the models of programming concepts held by novice programmers. Comput. Sci. Educ. 21(1), 57–80 (2011)CrossRefGoogle Scholar
  18. 18.
    O’Neill, M.E.: The genuine sieve of Eratosthenes. J. Funct. Program. 19(1), 95–106 (2009)CrossRefGoogle Scholar
  19. 19.
    Papert, S.: Mindstorms: Children, Computers, and Powerful Ideas. Harvester Press, Brighton (1980)Google Scholar
  20. 20.
    Resnick, M., et al.: Scratch: programming for all. Commun. ACM 52(11), 60–67 (2009)CrossRefGoogle Scholar
  21. 21.
    Rodger, S.H., et al.: Enhancing K-12 education with Alice programming adventures. In: Proceedings of the Fifteenth Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE 2010, pp. 234–238. ACM, New York (2010)Google Scholar
  22. 22.
    Schumacher, R.M., Czerwinski, M.P.: Mental models and the acquisition of expert knowledge. In: Hoffman, R.R. (ed.) The Psychology of Expertise, pp. 61–79. Springer, New York, New York (1992).  https://doi.org/10.1007/978-1-4613-9733-5_4CrossRefGoogle Scholar
  23. 23.
    Sorva, J.: Notional machines and introductory programming education. Trans. Comput. Educ. 13(2), 8:1–8:31 (2013)CrossRefGoogle Scholar
  24. 24.
    Sorva, J., Lönnberg, J., Malmi, L.: Students’ ways of experiencing visual program simulation. Comput. Sci. Educ. 23(3), 207–238 (2013)CrossRefGoogle Scholar
  25. 25.
    Teague, D., Lister, R.: Manifestations of preoperational reasoning on similar programming tasks. In: Proceedings of the Sixteenth Australasian Computing Education Conference, ACE 2014, vol. 148, pp. 65–74. Australian Computer Society Inc., Darlinghurst (2014)Google Scholar
  26. 26.
    D. D. Thornburg Friends of the Turtle: On Logo and Turtles. Compute! (1983)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.University of CambridgeCambridgeUK
  2. 2.Department of Computer ScienceETH ZurichZurichSwitzerland
  3. 3.PH GraubündenChurSwitzerland

Personalised recommendations