Abstract
The visualization of programs and algorithms has been demonstrated to be essential when learning to program. Nevertheless, existing graphic representations require a high level of abstraction that most beginner programmers cannot understand. Current state-of-the-art approaches provide promising alternatives, but a significant part leaves the advantages of graphic representation in the background. These advantages include abstracting the source code by means of symbols that make them easier to understand without previous training. This work introduces the evolution of a 2-D graphic notation to a 3-D environment, which represents an improvement to a complete platform for collaborative programming learning through problem solving, named COLLECE-2.0. This improvement provides the platform with capabilities to visualize programs through augmented reality by using a new set of graphic representations, which are based on roads and traffic signs in the context of programming learning. These visual models have been evaluated by Computer Science students to know whether the proposed notation is intuitive and useful. The obtained results show that the proposed notation is suitable for representing programming concepts and easy to understand. We also present a series of improvements, integrated as a new subsystem in the aforementioned platform, which allows the automatic construction of 3-D visualizations on an augmented reality environment. These visualizations use the proposed notation and leverage the scalability and architecture of COLLECE-2.0.
Similar content being viewed by others
Notes
The software is available for download from http://blog.uclm.es/grupochico/proyecto-iapro/collece-2-0/
References
Bacca J, Baldiris S, Fabregat R, Graf S, Kinshuk (2014) Augmented reality trends in education:, A systematic review of research and applications. Educ Technol Soc 17(4):133–149
Bischoff R, Kazi A, Seyfarth M (2002) The morpha style guide for icon-based programming. In: Proceedings of the 11th IEEE International Workshop on Robot and Human Interactive Communication, Berlin, Germany, pp 482–487, DOI https://doi.org/10.1109/ROMAN.2002.1045668, (to appear in print)
Blackwell A, Green T (2003) Notational systems–the cognitive dimensions of notations framework. HCI models, theories, and frameworks: toward an interdisciplinary science. Morgan Kaufmann, Burlington
Bloom BS (1956) Taxonomy of educational objectives, vol 1. McKay, New York, pp 20–24. Cognitive domain
Bosse Y, Gerosa MA (2017) Why is programming so difficult to learn? ACM SIGSOFT Softw Eng Notes 41(6):1–6
Bravo C, Redondo MA, Verdejo MF, Ortega M (2008) A framework for process-solution analysis in collaborative learning environments. Int J Hum Comput Stud 66(11):812–832. https://doi.org/10.1016/j.ijhcs.2008.08.003
Bravo C, Duque R, Gallardo J (2013) A groupware system to support collaborative programming: Design and experiences. J Syst Softw 86 (7):1759–1771. https://doi.org/10.1016/j.jss.2012.08.039
Burgess N, Maguire EA, O’Keefe J (2002) The human hippocampus and spatial and episodic memory. Neuron 35 (4):625–641. https://doi.org/10.1016/S0896-6273(02)00830-9
Chang SK (1987) Visual languages: a tutorial and survey. IEEE Softw 4(1):29–39. https://doi.org/10.1109/MS.1987.229792
Cisar SM, Pinter R, Radosav A, Cisar P (2011) Effectiveness of program visualization in learning java: A case study with jeliot 3. Int J Comput Commun Control 6(4):669–682. https://doi.org/10.15837/ijccc.2011.4.2094
Costagliola G, De Rosa M, Fuccella V, Perna S (2018) Visual languages: a graphical review. Inf Vis 17(4):335–350. https://doi.org/10.1177/1473871617714520
Dann W, Cooper S, Pausch R (2001) Using visualization to teach novices recursion. ACM SIGCSE Bulletin 33(3):109–112. https://doi.org/10.1145/377435.377507
Diehl S (2010) Software visualization: visualizing the structure, behaviour, and evolution of software. Springer, Berlin
Dishman L (2020) Why coding is still the most important job skill of the future. https://www.fastcompany.com/3060883/why-coding-is-the-job-skill-of-the-future-for-everyone, accessed: 2020-02-19
Dunleavy M, Dede C (2014) Augmented reality teaching and learning. Springer, Berlin, pp 735–745. https://doi.org/10.1007/978-1-4614-3185-5_59
Gajraj RR, Williams M, Bernard M, Singh L (2011) Transforming source code examples into programming tutorials. In: Proceedings of the 6th international multi-conference on computing in the global information technology, Luxembourg, pp 160–164
GlassDoor (2020) Best Jobs in America 2018. https://www.glassdoor.com/List/Best-Jobs-in-America-2018-LST_KQ0,25.htm, accessed: 2020-02-19
Halabi O (2019) Immersive virtual reality to enforce teaching in engineering education. Multimed Tools Appl 79(3):2987–3004. https://doi.org/10.1007/s11042-019-08214-8
Hansen WJ (1978) Measurement of program complexity by the pair: (cyclomatic number, operator count). SIGPLAN Not 13(3):29–33. https://doi.org/10.1145/954373.954375
Hidalgo-Céspedes J, Marín-Raventós G, Lara-villagrán V (2016) Learning principles in program visualizations: a systematic literature review. In: Proceedings of the 46th Annual Frontiers in Education (FIE) conference, Erie, PA, USA. IEEE, pp 1–9, DOI 10.1109/FIE.2016.7757692, (to appear in print)
Hundhausen CD, Douglas SA, Stasko JT (2002) A meta-study of algorithm visualization effectiveness. J Vis Lang Comput 13(3):259–290. https://doi.org/10.1006/jvlc.2002.0237
Jimenez-Diaz G, Gonzalez-Calero PA, Gomez-Albarran M (2012) Role-play virtual worlds for teaching object-oriented design: the virplay development experience. Softw Pract Exp 42(2):235–253. https://doi.org/10.1002/spe.1071
Jurado F, Molina AI, Redondo MA, Ortega M, Giemza A, Bollen L, Hoppe HU (2009) Learning to program with coala, a distributed computer assisted environment. J Univers Comput Sci 15(7):1472–1485. https://doi.org/10.3217/jucs-015-07-1472
Jurado F, Molina AI, Redondo MA, Ortega M (2013) Cole-programming: Shaping collaborative learning support in eclipse. IEEE Revista Iberoamericana de Tecnologias del Aprendizaje 8(4):153–162. https://doi.org/10.1109/RITA.2013.2284953
Kann C, Lindeman RW, Heller R (1997) Integrating algorithm animation into a learning environment. Comput Educ 28(4):223–228. https://doi.org/10.1016/S0360-1315(97)00015-8
Karp RM (1972) Reducibility among combinatorial problems. Complex Comput Comput 1(1):85–103. https://doi.org/10.1007/978-1-4684-2001-2_9
Knight C, Munro M (2000) Virtual but visible software. In: Proceedings of the IEEE international conference on information visualisation, Londonm United Kingdom, pp 198–205, DOI https://doi.org/10.1109/IV.2000.859756, (to appear in print)
Knuth DE (1997) The art of computer programming: sorting and searching, vol 3. Pearson Education, London
Koschmann T (1996) Paradigm shifts and instructional technology:, An introduction, Book section, vol 1, pp 1–23
Lacave C, Molina AI, Giralt J (2013) Identificando algunas causas del fracaso en el aprendizaje de la recursividad: análisis experimental en las asignaturas de programación. In: Proceedings of the XIX Jornadas sobre la Enseñanza Universitaria de la Informática, Castellón de la Plana. Universitat Jaume I. Escola Superior de Tecnologia i Ciències Experimentals, Spain, pp 225–232
Lacave C, Paredes-Velasco M, Ȧngel Velázquez-Iturbide J, Hernán I (2017) Experiencia para la evaluación de visback, una herramienta para la visualización de algoritmos de backtracking. Informá,tica Educativa Comunicaciones 23(26):83–94
Levy R B B, Ben-Ari M, Uronen P A (2003) The jeliot 2000 program animation system. Comput Educ 40(1):1–15. https://doi.org/10.1016/S0360-1315(02)00076-3
Mathur AS, Ozkan BK, Majumdar R (2018) Idea: an immersive debugger for actors. In: Proceedings of the 17th ACM SIGPLAN International Workshop on Erlang, St. Louis, MO, USA, ACM. https://doi.org/10.1145/3239332.3242762, vol 3242762, pp 1–12
McCabe TJ (1976) A complexity measure. IEEE Trans Softw Eng SE 2(4):308–320. https://doi.org/10.1109/TSE.1976.233837
Milne I, Rowe G (2004) Ogre: Three-dimensional program visualization for novice programmers. Educ Inf Technol 9(3):219–237. https://doi.org/10.1023/B:EAIT.0000042041.04999.17
Molina AI, Gallardo J, Redondo MA, Bravo C (2014) Evaluating the awareness support of collece, a collaborative programming tool. In: Proceedings of the XV International Conference on Human Computer Interaction, Puerto de la Cruz. Tenerife, Spain, pp 74–81, DOI https://doi.org/10.1145/2662253.2662264, (to appear in print)
Moody D (2009) The “physics” of notations: toward a scientific basis for constructing visual notations in software engineering. IEEE Trans Softw Eng 35 (6):756–779
Myers BA (1990) Taxonomies of visual programming and program visualization. J Vis Lang Comput 1(1):97–123. https://doi.org/10.1016/S1045-926X(05)80036-9
Naps T L, Rößling G, Almstrum V, Dann W, Fleischer R, Hundhausen C, Korhonen A, Malmi L, McNally M, Rodger S (2002) Exploring the role of visualization and engagement in computer science education. In: Proceedings of the 7th annual conference on innovation and technology in computer science education, Aarhus, Denmark, ACM. https://doi.org/10.1145/960568.782998, vol 35, pp 131–152
Nassi I, Shneiderman B (1973) Flowchart techniques for structured programming. ACM SIGPLAN Not 8(8):12–26. https://doi.org/10.1145/953349.953350
National Center for Education Statistics (NCES) (2020) IPEDS Completions Survey. https://nces.ed.gov/ipeds/, accessed: 2020-02-19
Nichols DA, Curtis P, Dixon M, Lamping J (1995) High-latency, low-bandwidth windowing in the jupiter collaboration system. In: Proceedings of the 8th annual ACM symposium on User interface and software technology, Pittsburgh, Pennsylvania, USA. ACM, pp 111–120, DOI https://doi.org/10.1145/215585.215706, (to appear in print)
Ortega M, Redondo MÁ, Molina AI, Bravo C, Lacave C, Arroyo Y, Sánchez S, García MÁ, Collazos CA, Toledo JJ, Luna-García H, Velázquez-Iturbide JÁ, Gómez-Pastrana RA (ACM) Iprog: development of immersive systems for the learning of programming. In: Proceedings of the XVIII international conference on human computer interaction, Cancun, Mexico. https://doi.org/10.1145/3123818.3123874, vol 3123874, pp 1–6
Price B, Baecker R, Small I (1998) An introduction to software visualization, book section, vol 1. MIT Press, Cambridge, pp 3–27
Robertson GG, Card SK, Mackinlay JD (1993) Information visualization using 3d interactive animation. Commun ACM 36(4):57–71. https://doi.org/10.1145/255950.153577
Rowe G, Thorburn G (2000) Vince—an on-line tutorial tool for teaching introductory programming. Br J Educ Technol 31(4):359–369. https://doi.org/10.1111/1467-8535.00168
Sajaniemi J, Kuittinen M (2003) Program animation based on the roles of variables. In: Proceedings of the 2003 ACM symposium on Software visualization, San Diego, California, USA, ACM. https://doi.org/10.1145/774833.774835, pp 7–ff
Sanchez S, Garcia MA, Lacave C, Molina AI, Gonzalez C, Vallejo D, Redondo MA (2018) Applying mixed reality techniques for the visualization of programs and algorithms in a programming learning environment. In: Kush JC, Lester C (eds) Proceedings of the 10th International Conference on Mobile, Hybrid, and On-line Learning, Rome, Italy, IARIA XPS Press, vol 1, pp 84–89
Sánchez S, García MÁ, Bravo C, Redondo MÁ (2017) Sistema collece mejorado para soportar aprendizaje colaborativo de la programación en tiempo real sobre eclipse. IE Comunicaciones 23(26):72–81
Sánchez S, Redondo MA, Vallejo D, González C, Bravo C (2017) Collece 2.0: A distributed real-time collaborative programming environment for the eclipse platform. In: Proceedings of the 11th International Conference on Interfaces and Human Computer Interaction, Lisbon, Portugal, IADIS, pp 1–7
Simonak S (2016) Algorithm visualizations as a way of increasing the quality in computer science education. In: Proceedings of the 14th international symposium on applied machine intelligence and informatics, Herlany, Slovakia, pp 153–157, DOI https://doi.org/10.1109/SAMI.2016.7422999, (to appear in print)
Teng CH, Chen JY (2012) An augmented reality environment for learning opengl programming. In: Proceedings of the 9th international conference on ubiquitous intelligence and computing and 9th international conference on autonomic and trusted computing, Fukuoka, Japan. IEEE, pp 996–1001, DOI https://doi.org/10.1109/UIC-ATC.2012.57, (to appear in print)
Teng CH, Chen JY, Chen ZH (2017) Impact of augmented reality on programming language learning: Efficiency and perception. J Educ Comput Res 56(2):254–271. https://doi.org/10.1177/0735633117706109
Teyseyre AR, Campo MR (2009) An overview of 3d software visualization. IEEE Trans Vis Comput Graph 15(1):87–105. https://doi.org/10.1109/TVCG.2008.86
UNECE (1968) Convention on road signs and signals. United Nations Treaty Series, vol. 1091 pp 3
US Bureau of Labor Statistics (2020) Employment by detailed occupation. https://www.bls.gov/emp/tables/emp-by-detailed-occupation.htm, accessed: 2020-02-19
Urquiza-Fuentes J, Velázquez-iturbide JÁ (2012) A long-term evaluation of educational animations of functional programs. In: Proceedings of the 12th International Conference on Advanced Learning Technologies, Rome, Italy. IEEE, pp 26–30, DOI https://doi.org/10.1109/ICALT.2012.50, (to appear in print)
Urquiza-Fuentes J, Velázquez-Iturbide JA (2013) Toward the effective use of educational program animations: the roles of student’s engagement and topic complexity. Comput Educ 67(Supplement C):178–192. https://doi.org/10.1016/j.compedu.2013.02.013
Vasilopoulos IV, van Schaik P (2018) Koios: Design, development, and evaluation of an educational visual tool for greek novice programmers. J Educ Comput Res. https://doi.org/10.1177/0735633118781776
Velázquez-Iturbide JA, Hernán-Losada I, Paredes-Velasco M (2017) Evaluating the effect of program visualization on student motivation. IEEE Trans Educ 60(3):238–245. https://doi.org/10.1109/TE.2017.2648781
Vujošević-Janičić M, Tošić D (2008) The role of programming paradigms in the first programming courses. Teach Math 11(2):63–83
Wang P, Bednarik R, Moreno A (2012) During automatic program animation, explanations after animations have greater impact than before animations. In: Proceedings of the 12th Koli calling international conference on computing education research, New York, USA, pp 100–109, DOI https://doi.org/10.1145/2401796.2401808, (to appear in print)
Yoel A, MAI, Carmen L, RMA, Manuel O (2018) The greedex experience: Evolution of different versions for the learning of greedy algorithms. Comput Appl Eng Educ 26(5):1306–1317. https://doi.org/10.1002/cae.22023
Acknowledgements
This work has been funded by the Ministry of Economy, Industry and Competitiveness, and the European Regional Development Fund through the project TIN2015-66731-C2-2-R.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Schez-Sobrino, S., García, M.Á., Lacave, C. et al. A modern approach to supporting program visualization: from a 2D notation to 3D representations using augmented reality. Multimed Tools Appl 80, 543–574 (2021). https://doi.org/10.1007/s11042-020-09611-0
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11042-020-09611-0