This Article 
 Bibliographic References 
 Add to: 
Andrés Moreno, University of Joensuu, Joensuu
Mike Joy, University of Warwick, Coventry
Niko Myller, University of Joensuu, Joensuu
Erkki Sutinen, University of Joensuu, Joensuu
Fundamental concepts of programming and data structures are usually taught with graphical tools such as simulations and animations. Conflictive animations have been proposed to improve students' understanding of programming concepts. In conflictive animations, errors are introduced in the animations to motivate students to constantly check their knowledge against what is being animated. We have implemented a framework in an animation tool that allows the automatic generation of conflictive animations of statements, expressions, and other programming constructs. The automatic generation is challenging due to the alternative paths execution can take and their side effects. The architecture of the tool consists of several layers that can alter the normal interpretation or visualization of the program. The framework and the tool have been evaluated by creating conflictive animations of two programming concepts—for-loops and inheritance—and by running a set of 27 examples taken from Java textbooks. Of these, over two thirds (19) required no modification or only minor changes to create the conflictive animations. The reasons that the remaining examples did not generate conflictive animations automatically were divided between the layered architecture used and the example program itself.

[1] A. Moreno, E. Sutinen, R. Bednarik, and N. Myller, "Conflictive Animations as Engaging Learning Tools," Proc. Seventh Baltic Sea Conf. Computing Education Research (Koli Calling '07), R. Lister and B. Simon, eds., vol. 88, pp. 203-206, 2007.
[2] R. Ben-Bassat Levy, M. Ben-Ari, and P.A. Uronen, "The Jeliot 2000 Program Animation System," Computers and Education, vol. 40, no. 1, pp. 1-15, 2003.
[3] A. Moreno and M.S. Joy, "Jeliot 3 in a Demanding Educational Setting," Electronic Notes in Theoretical Computer Science, vol. 178, pp. 51-59, 2007.
[4] J. Sorva, "The Same But Different: Students' Understandings of Primitive and Object Variables," Proc. Eighth Baltic Sea Conf. Computing Education Research (Koli Calling '07), A. Pears and L. Malmi, eds., 2008.
[5] C.D. Hundhausen, S.A. Douglas, and J.T. Stasko, "A Meta-Study of Algorithm Visualization Effectiveness," J. Visual Languages and Computing, vol. 13, no. 3, pp. 259-290, 2002.
[6] T.L. Naps, G. Rößling, V. Almstrum, W. Dann, R. Fleischer, C. Hundhausen, A. Korhonen, L. Malmi, M. McNally, S. Rodger, and J.Á. Velázquez Iturbide, "Exploring the Role of Visualization and Engagement in Computer Science Education," Proc. Working Group Reports from ITiCSE on Innovation and Technology in Computer Science Education (ITiCSE-WGR '02), pp. 131-152, 2002.
[7] T. Naps, S. Cooper, B. Koldehofe, C. Leska, G. Rößling, W. Dann, A. Korhonen, L. Malmi, J. Rantakokko, R.J. Ross, J. Anderson, R. Fleischer, M. Kuittinen, and M. McNally, "Evaluating the Educational Impact of Visualization," Proc. Working Group Reports from ITiCSE on Innovation and Technology in Computer Science Education (ITiCSE-WGR '03), pp. 124-136, 2003.
[8] P. Ihantola, V. Karavirta, A. Korhonen, and J. Nikander, "Taxonomy of Effortless Creation of Algorithm Visualizations," Proc. First Int'l Workshop Computing Education Research (ICER '05), pp. 123-133, 2005.
[9] N. Postman, "The Fallen Angel," The End of Education, Vintage Books, 1996.
[10] A. Moreno, N. Myller, E. Sutinen, and M. Ben-Ari, "Visualizing Program with Jeliot 3," Proc. Int'l Working Conf. Advanced Visual Interfaces (AVI '04), pp. 373-380, 2004.
[11] A. Kumar and S. Kasabov, "Observer Architecture of Program Visualization," Electronic Notes in Theoretical Computer Science, vol. 178, pp. 153-160, 2007.
[12] J. Ángel Velázquez Iturbide and C. Pareja-Flores, "An Approach to Effortless Construction of Program Animations," Computers & Education, vol. 50, no. 1, pp. 179-192, 2008.
[13] V. Karavirta, A. Korhonen, L. Malmi, and K. Stalnacke, "MatrixPro—A Tool for Demonstrating Data Structures and Algorithms Ex Tempore," Proc. IEEE Int'l Conf. Advanced Learning Technologies (ICALT '04), pp. 892-893, 2004.
[14] M. Ben-Ari, "Constructivism in Computer Science Education," J. Computers in Math. and Science Teaching, vol. 20, no. 1, pp. 45-73, 2001.
[15] C. Große and A. Renkl, "Finding and Fixing Errors in Worked Examples: Can This Foster Learning Outcomes?" Learning and Instruction, vol. 17, pp. 612-634, 2007.
[16] A. Rudder, M. Bernard, and S. Mohammed, "Teaching Programming Using Visualization," Proc. Sixth Conf. IASTED Int'l Conf. Web-Based Education (WBED '07), pp. 487-492, 2007.
[17] A. Korhonen and L. Malmi, "Taxonomy of Visual Algorithm Simulation Exercises," Proc. Third Program Visualization Workshop, pp. 118-125, 2004.
[18] L. Ma, J.D. Ferguson, M. Roper, I. Ross, and M. Wood, "Using Cognitive Conflict and Visualisation to Improve Mental Models Held by Novice Programmers," Proc. 39th SIGCSE Technical Symp. Computer Science Education (SIGCSE '08), pp. 342-346, 2008.
[19] N. Myller, "The Fundamental Design Issues of Jeliot 3," master's thesis, Univ. of Joensuu, 2004.
[20] A. Moreno, "Intermediate Code in Program Animation Software," master's thesis, Univ. of Joensuu, 2005.
[21] A. Moreno, E. Sutinen, and M. Joy, "Understanding and Evaluating Conflictive Animations," to be submitted.
[22] N. Ragonis and M. Ben-Ari, "Teaching Constructors: A Difficult Multiple Choice," Proc. 16th European Conf. Object-Oriented Programming Workshop, vol. 3, 2002.
[23] S. Holland, R. Griffiths, and M. Woodman, "Avoiding Object Misconceptions," Proc. 28th SIGCSE Technical Symp. Computer Science Education (SIGCSE '97), pp. 131-134, 1997.
[24] M. Bruce-Lockhart, P. Crescenzi, and T. Norvella, "Integrating Test Generation Functionality into the Teaching Machine Environment," Proc. Fifth Program Visualization Workshop, G. Rößling and J.Á. Velázquez Iturbide, eds., vol.. 224, pp. 115-124, 2009.

Index Terms:
CS1, animation, programming education, conflictive animation, object-oriented programming, Java, errors.
Andrés Moreno, Mike Joy, Niko Myller, Erkki Sutinen, "Layered Architecture for Automatic Generation of Conflictive Animations in Programming Education," IEEE Transactions on Learning Technologies, vol. 3, no. 2, pp. 139-151, April-June 2010, doi:10.1109/TLT.2009.36
Usage of this product signifies your acceptance of the Terms of Use.