An Interactive Source Code Visualisation Plug-in for the MindXpres Presentation Platform

  • Reinout RoelsEmail author
  • Paul Meştereagă
  • Beat Signer
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 583)


Nowadays, the teaching of programming concepts and algorithms is often conducted via slideware such as PowerPoint or Keynote, with the instructor going through a sequential series of slides showing static pieces of program code. As outlined in this paper, such a slideware-based approach has its limitations in terms of the authoring as well as the delivery of content for a programming course. Nevertheless, there is a rich body of research on how to best teach programming concepts and algorithms where it has been shown that this process very much depends on the mental models developed by scholars when learning how to program. Based on this existing body of research, we derived a number of requirements for an improved source code visualisation and presentation in slideware tools. We present an interactive source code visualisation plug-in for the MindXpres presentation platform, which addresses these requirements and introduces a number of innovative concepts for an interactive visualisation of source code. Based on two concrete examples showing how our solution can be used for the teaching of recursion by means of a recursion tree or to explain sorting algorithms by using animation, we illustrate the extensibility and flexibility of the presented interactive source code visualisation approach. Ultimately, the presented solution should help in reinforcing a student’s mental model about a presented algorithm and improve the knowledge transfer of presentations delivered in programming courses.


Slideware Presentation-based teaching Programming 


  1. 1.
    Baecker, R.M.: Sorting out sorting: a case study of software visualization for teaching computer science, chap. 24, pp. 369–381. MIT Press (1998)Google Scholar
  2. 2.
    Bennedsen, J., Caspersen, M.E.: Failure rates in introductory programming. ACM SIGCSE Bull. 39(2), 32–36 (2007)CrossRefGoogle Scholar
  3. 3.
    Berry, M., Kölling, M.: The design and implementation of a notional machine for teaching introductory programming. In: WiPSE 2013, 8th Workshop in Primary and Secondary Computing Education, pp. 25–28. ACM (2013)Google Scholar
  4. 4.
    Boulay, B.D.: Some difficulties of learning to program. J. Educ. Comput. Res. 2(1), 57–73 (1986)CrossRefGoogle Scholar
  5. 5.
    Cañas, J.J., Bajo, M.T., Gonzalvo, P.: Mental models and computer programming. Int. J. Hum.-Comput. Stud. 40(5), 795–811 (1994)CrossRefGoogle Scholar
  6. 6.
    Cross II, J.H., Hendrix, T.D.: jGRASP: an integrated development environment with visualizations for teaching Java in CS1, CS2, and beyond. J. Comput. Sci. Coll. 23(1), 5–7 (2007)Google Scholar
  7. 7.
    Dann, W., Cooper, S., Pausch, R.: Using visualization to teach novices recursion. ACM SIGCSE Bull. 33, 109–112 (2001). ACMCrossRefGoogle Scholar
  8. 8.
    Dewar, R.B., Schonberg, E.: Computer science education: where are the software engineers of tomorrow? Crosstalk: J. Defense Softw. Eng. 21(1), 28–30 (2008)Google Scholar
  9. 9.
    Furcy, D., Naps, T., Wentworth, J.: Sorting out sorting: the sequel. In: ITiCSE 2008, 13th Annual Conference on Innovation and Technology in Computer Science Education, pp. 174–178. ACM (2008)Google Scholar
  10. 10.
    George, C.E.: Experiences with novices: the importance of graphical representations in supporting mental models. In: PPIG 2012, 12th Annual Workshop of the Psychology of Programming Interest Group, pp. 33–44 (2000)Google Scholar
  11. 11.
    Gomes, A., Mendes, A.J.: Learning to program - difficulties and solutions. In: ICEE 2007, International Conference on Engineering Education, pp. 53–58 (2007)Google Scholar
  12. 12.
    Guo, P.: Python is now the most popular introductory teaching language at top U.S. universities. BLOG@CACM, 7 July 2014Google Scholar
  13. 13.
    Holzinger, A., Kickmeier-Rust, M.D., Albert, D.: Dynamic media in computer science education; content complexity and learning performance: is less more? Educ. Technol. Soc. 11(1), 279–290 (2008)Google Scholar
  14. 14.
    Hundhausen, C.D., Douglas, S.A., Stasko, J.T.: A meta-study of algorithm visualization effectiveness. J. Vis. Lang. Comput. 13(3), 259–290 (2002)CrossRefGoogle Scholar
  15. 15.
    Jenkins, T.: Teaching programming - a journey from teacher to motivator. In: LTSN-ICS 2001, 2nd Annual Conference of the LSTN Center for Information and Computer Science (2001)Google Scholar
  16. 16.
    Jenkins, T.: The motivation of students of programming. ACM SIGCSE Bull. 33(3), 53–56 (2001)CrossRefGoogle Scholar
  17. 17.
    Jenkins, T.: On the difficulty of learning to program. In: LTSN-ICS 2002, 3rd Annual Conference of the LTSN Centre for Information and Computer Sciences, vol. 4, pp. 53–58 (2002)Google Scholar
  18. 18.
    Knuth, D.E.: The Art of Computer Programming. Sorting and Searching, vol. 3, 2nd edn. Addison Wesley Longman Publishing Co., Inc, Redwood City (1998)Google Scholar
  19. 19.
    Kujansuu, E., Tapio, T.: Codewitz - an international project for better programming skills. In: EdMedia 2004, World Conference on Educational Media and Technology, pp. 2237–2239. AACE (2004)Google Scholar
  20. 20.
    Lahtinen, E., Ala-Mutka, K., Järvinen, H.M.: A study of the difficulties of novice programmers. ACM SIGCSE Bull. 37(3), 14–18 (2005)CrossRefGoogle Scholar
  21. 21.
    Ma, L., Ferguson, J., Roper, M., Wood, M.: Improving the viability of mental models held by novice programmers. In: ECOOP 2007, 11th Workshop on Pedagogies and Tools for the Teaching and Learning of Object Oriented Concepts. Springer (2007)Google Scholar
  22. 22.
    Mayer, R.E.: The psychology of how novices learn computer programming. ACM Comput. Surv. (CSUR) 13(1), 121–141 (1981)CrossRefGoogle Scholar
  23. 23.
    McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y.B.D., Laxer, C., Thomas, L., Utting, I., Wilusz, T.: A Multi-national, multi-institutional study of assessment of programming skills of first-year CS students. In: ITiCSE-WGR 2001, Working Group Reports from ITiCSE on Innovation and Technology in Computer Science Education, pp. 125–180. ACM (2001)Google Scholar
  24. 24.
    Milne, I., Rowe, G.: Difficulties in learning and teaching programming - views of students and tutors. Educ. Inf. Technol. 7(1), 55–66 (2002)CrossRefGoogle Scholar
  25. 25.
    Moreno, A., Joy, M.S.: Jeliot 3 in a demanding educational setting. Electron. Notes Theor. Comput. Sci. 178, 51–59 (2007)CrossRefGoogle Scholar
  26. 26.
    Moreno, A., Myller, N., Sutinen, E., Ben-Ari, M.: Visualizing programs with Jeliot 3. In: AVI 2014, Working Conference on Advanced Visual Interfaces, pp. 373–376. ACM (2004)Google Scholar
  27. 27.
    Roels, R., Meştereagă, P., Signer, B.: Towards enhanced presentation-based teaching of programming: an interactive source code visualisation approach. In: CSEDU 2015, 7th International Conference on Computer Supported Education, pp. 98–107. SCITEPRESS (2015)Google Scholar
  28. 28.
    Roels, R., Signer, B.: An extensible presentation tool for flexible human-information interaction. In: Demo Proceedings of BCS HCI 2013, 27th BCS Conference on Human Computer Interaction, p. 59. British Computer Society (2013)Google Scholar
  29. 29.
    Roels, R., Signer, B.: A unified communication platform for enriching and enhancing presentations with active learning components. In: ICALT 2014, 14th IEEE International Conference on Advanced Learning Technologies, pp. 131–135. IEEE (2014)Google Scholar
  30. 30.
    Roels, R., Signer, B.: MindXpres: an extensible content-driven cross-media presentation platform. In: Benatallah, B., Bestavros, A., Manolopoulos, Y., Vakali, A., Zhang, Y. (eds.) WISE 2014, Part II. LNCS, vol. 8787, pp. 215–230. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  31. 31.
    Sa, L., Hsin, W.J.: Traceable recursion with graphical illustration for novice programmers. InSight: J. Sch. Teach. 5, 54–62 (2010)Google Scholar
  32. 32.
    Smith, P.A., Webb, G.I.: Reinforcing a generic computer model for novice programmers. In: ASCILITE 1995, 7th Australian Society for Computer in Learning in Tertiary Education (1995)Google Scholar
  33. 33.
    Smith, P.A., Webb, G.I.: The efficacy of a low-level program visualization tool for teaching programming concepts to novice C programmers. J. Educ. Comput. Res. 22(2), 187–216 (2000)CrossRefGoogle Scholar
  34. 34.
    Sorva, J., Sirkiä, T.: UUhistle: a software tool for visual program simulation. In: Koli Calling 2010, 10th Koli Calling International Conference on Computing Education Research, pp. 49–54. ACM (2010)Google Scholar
  35. 35.
    Tufte, E.R.: The Cognitive Style of PowerPoint: Pitching Out Corrupts Within. Graphics Press, Cheshire (2003)Google Scholar
  36. 36.
    Velázquez-Iturbide, J.Á., Pérez-Carrasco, A.: InfoVis interaction techniques in animation of recursive programs. Algorithms 3(1), 76–91 (2010)CrossRefGoogle Scholar
  37. 37.
    Virtanen, A.T., Lahtinen, E., Järvinen, H.M.: VIP, a visual interpreter for learning introductory programming with C++. In: 5th Koli Calling Conference on Computer Science Education, pp. 125–130 (2005)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  1. 1.Web and Information Systems Engineering LabVrije Universiteit BrusselBrusselsBelgium

Personalised recommendations