Animation Metaphors for Object-Oriented Concepts

Program visualization and animation has traditionally been done at the level of the programming language and its implementation in a computer. However, novices do not know these concepts and visualizations that build upon programming language implementation may easily fail in helping novices to learn programming concepts. Metaphor, on the contrary, involves the presentation of a new idea in terms of a more familiar one and can facilitate active learning. This paper applies a metaphor approach to object-oriented programming by presenting new metaphors for such concepts as class, object, object instantiation, method invocation, parameter passing, object reference, and garbage collection. The use of these metaphors in introductory programming education is also discussed.

[1]  John M. Carroll,et al.  Metaphor, computing systems, and active learning , 1999, Int. J. Hum. Comput. Stud..

[2]  Ann E. Fleury Programming in Java: student-constructed rules , 2000, SIGCSE '00.

[3]  J. Stasko,et al.  A Meta-Study of Algorithm Visualization Effectiveness , 2002, J. Vis. Lang. Comput..

[4]  Micaela Esteves,et al.  OOP-Anim, a system to support learning of basic object oriented programming concepts , 2003, CompSysTech '03.

[5]  Klaus-Peter Löhr,et al.  Jan - Java animation for program understanding , 2003, IEEE Symposium on Human Centric Computing Languages and Environments, 2003. Proceedings. 2003.

[6]  D. G. MacKay,et al.  Metaphor and Thought , 1980 .

[7]  Marja Kuittinen,et al.  Visualizing Roles of Variables in Program Animation , 2004, Inf. Vis..

[8]  Iain Milne,et al.  OGRE: Three-Dimensional Program Visualization for Novice Programmers , 2004, Education and Information Technologies.

[9]  G. Lakoff,et al.  Metaphors We Live by , 1981 .

[10]  Thomas Schmitt,et al.  JAVAVIS: Automatic Program Visualization with Object and Sequence Diagrams Using the Java Debug Interface (JDI) , 2001, Software Visualization.

[11]  Christine Mingins,et al.  Jacot: a UML-based tool for the run-time inspection of concurrent Java programs , 2003 .

[12]  Marja Kuittinen,et al.  An Experiment on Using Roles of Variables in Teaching Introductory Programming , 2005, Comput. Sci. Educ..

[13]  Yu-chen Hsu,et al.  The effects of metaphors on novice and expert learners' performance and mental-model development , 2006, Interact. Comput..

[14]  James L. Alty,et al.  A framework for engineering metaphor at the user interface , 2000, Interact. Comput..

[15]  Jorma Sajaniemi,et al.  An empirical analysis of roles of variables in novice-level procedural programs , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

[16]  Jorma Sajaniemi,et al.  Roles of variables and programming skills improvement , 2006, SIGCSE '06.

[17]  Erkki Sutinen,et al.  Visualizing programs with Jeliot 3 , 2004, AVI.

[18]  Elsevier Sdol International Journal of Human-Computer Studies , 2009 .

[19]  Mark Woodman,et al.  Avoiding object misconceptions , 1997, SIGCSE '97.

[20]  John Stasko,et al.  Using Visualization to Foster Object-Oriented Program Understanding , 1994 .

[21]  Michael Thuné,et al.  Novice Java programmers' conceptions of "object" and "class", and variation theory , 2005, ITiCSE '05.