Teaching and Learning How to Program Without Writing Code

  • Michel AdamEmail author
  • Moncef DaoudEmail author
  • Patrice FrisonEmail author
Conference paper
Part of the Smart Innovation, Systems and Technologies book series (SIST, volume 111)


When learning how to program, there are many obstacles to overcome: learning a programming language, using a programming environment, compiling, executing and debugging. This paper proposes a method for gradually creating a program. The programming objects (variables, arrays, indices) are directly manipulated to emulate a given algorithm. In addition, the operations are recorded and the program automatically produced. We show how to gradually create a program by first simulating the algorithm operations and then by recording the associated instructions. The method is illustrated by AlgoTouch, a programming by demonstration tool.


Programming for beginners Programming by demonstration Designing algorithms Visualization of algorithms 


  1. 1.
    Baron, G.-L., Drot-Delange, B.: L’éducation à l’informatique à l’école primaire. 1014, Bulletin de la Société informatique de France 8, 73–79 (2016)Google Scholar
  2. 2.
    Boisvert, C.R.: A visualisation tool for the programming process. In: Proceedings of the Annual ACM SIGCSE Conference on Innovation and Technology in Computer Science Education, ITiCSE 2009, pp. 328–332. ACM, New York (2009)Google Scholar
  3. 3.
    Cypher, A.: Watch What I Do: Programming By Demonstration. MIT Press, Cambridge (1993)Google Scholar
  4. 4.
    Frison, P.: Creating an insertion sort algorithm with AlgoTouch, April 2016. Online video on Youtube.
  5. 5.
    Guo, P.J.: Online Python tutor: embeddable web-based program visualization for CS education. In: Proceeding of the 44th ACM Technical Symposium on Computer Science Education, SIGCSE 2013, pp. 579–584. ACM, New York (2013)Google Scholar
  6. 6.
    Guzdial, M.: Programming environments for novices. In: Computer Science Education Research, pp. 127–154 (2004)Google Scholar
  7. 7.
    Hilton, A.D., Lipp, G.M., Rodger, S.H.: A technique for translation from problem to code. In: Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2018, pp. 375–375. ACM, New York (2018)Google Scholar
  8. 8.
    Hosseini, R., Sirkiä, T., Guerra, J., Brusilovsky, P., Malmi, L.: Animated examples as practice content in a Java programming course. In: Proceedings of the 47th ACM Technical Symposium on Computing Science Education, SIGCSE 2016, pp. 540–545. ACM, New York (2016)Google Scholar
  9. 9.
    Hundhausen, C.D., Brown, J.L.: What you see is what you code: a “live” algorithm development and visualization environment for novice learners. J. Vis. Lang. Comput. 18(1), 22–47 (2007)CrossRefGoogle Scholar
  10. 10.
    Hundhausen, C.D., Farley, S.F., Brown, J.L.: Can direct manipulation lower the barriers to computer programming and promote transfer of training?: an experimental study. ACM Trans. Comput. Hum. Interact. (TOCHI) 16(3), 13 (2009)CrossRefGoogle Scholar
  11. 11.
    Kahn, K.: How any program can be created by working with examples. In: Your Wish Is My Command, pp. 21–44 (2001)CrossRefGoogle Scholar
  12. 12.
    Kordaki, M., Miatidis, M., Kapsampelis, G.: A computer environment for beginners’ learning of sorting algorithms: design and pilot evaluation. Comput. Educ. 51(2), 708–723 (2008)CrossRefGoogle Scholar
  13. 13.
    SIF: Enseigner l’informatique de la maternelle à la terminale. 1024, Bulletin de la Société informatique de France 9, 25–33 (2016)Google Scholar
  14. 14.
    Smith, D.C.: Pygmalion: an executable electronic blackboard. In: Cypher, A. (ed.) Watch What I Do, pp. 19–48. MIT Press, Cambridge (1993)Google Scholar
  15. 15.
    Sorva, J., Karavirta, V., Malmi, L.: A review of generic program visualization systems for introductory programming education. Trans. Comput. Educ. 13(4), 15:1–15:64 (2013)CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Université Bretagne SudLorient, VannesFrance
  2. 2.IRISA Lab and Université Bretagne SudVannesFrance

Personalised recommendations