Matrix A Framework for Interactive Software Visualization

Data structures and algorithms are essential topics in elementary computer science education. They include abstract concepts and processes, such as data types and the procedural encoding of programs, which people often find difficult to understand. Software visualiza-tion can significantly help in solving the problem. In this paper, we describe the platform independent Matrix framework that combines algorithm animation with algorithm simulation, where the user interacts directly with data structures through a graphical user interface. The simulation process created by the user can be stored and played back in terms of algorithm animation. In addition, the user can use existing library routines to create illustrations for advanced abstract data types, or he can use Matrix to animate and simulate his own algorithms. Moreover, Matrix provides an extensive set of visual concepts for algorithm animation. These concepts include visualizations for primitive types, arrays, lists, trees, and graphs. This set can be extended further by using visualizations nested to an arbitrary level. Furthermore, we present three applications built on Matrix framework. TRAKLA2 is a web-based learning environment dedicated to distribute visual algorithm simulation exercises in a Data Structures and Algorithms course. MatrixPro is a tool for instructors for creating customizable algorithm animations in terms of algorithm simulation. MVT (Matrix Visual Tester) is a visual testing tool to make it easier for programmers to test and debug their code.

[1]  Ari Korhonen Algorithm Animation and Simulation , 2000 .

[2]  Susan H. Rodger,et al.  Web-based animation of data structures using JAWAA , 1998, SIGCSE '98.

[3]  Lauri Malmi,et al.  Matrix - concept animation and algorithm simulation system , 2001, ITiCSE '01.

[4]  Mordechai Ben-Ari,et al.  The Jeliot 2000 program animation system , 2003, Comput. Educ..

[5]  John Hershberger,et al.  Color and sound in algorithm animation , 1992, Computer.

[6]  Brad A. Myers INCENSE: A system for displaying data structures , 1983, SIGGRAPH.

[7]  Satoru Kawai,et al.  An Algorithm for Drawing General Undirected Graphs , 1989, Inf. Process. Lett..

[8]  Bernd Freisleben,et al.  The ANIMAL algorithm animation tool , 2000, ITiCSE '00.

[9]  John T. Stasko Using direct manipulation to build algorithm animations by demonstration , 1991, CHI '91.

[10]  Robert R. Henry,et al.  The University of Washington illustrating compiler , 1990, PLDI '90.

[11]  Rudolf Fleischer,et al.  Algorithm Animation for Teaching , 2001, Software Visualization.

[12]  Erkki Sutinen,et al.  Understanding Algorithms by Means of Visualized Path Testing , 2001, Software Visualization.

[13]  Ivan Herman,et al.  GraphXML - An XML-Based Graph Description Format , 2000, GD.

[14]  Andrés Moreno Algorithm Animation , 2006, Human-Centered Visualization Environments.

[15]  Blaine A. Price,et al.  A Principled Taxonomy of Software Visualization , 1993, J. Vis. Lang. Comput..

[16]  Athanasios Tsintsifas,et al.  The marking system for CourseMaster , 2002, ITiCSE '02.

[17]  John T. Stasko,et al.  Please address correspondence to , 2000 .

[18]  Richard Rasala Automatic array algorithm animation in C++ , 1999, SIGCSE '99.

[19]  Lauri Malmi,et al.  TRAKLA2: a Framework for Automatically Assessed Visual Algorithm Simulation Exercises , 2003 .

[20]  J.T. Stasko,et al.  Tango: a framework and system for algorithm animation , 1990, Computer.

[21]  J.F. Korsh,et al.  Animating programs and students in the laboratory , 1998, FIE '98. 28th Annual Frontiers in Education Conference. Moving from 'Teacher-Centered' to 'Learner-Centered' Education. Conference Proceedings (Cat. No.98CH36214).

[22]  M. Brown,et al.  JCAT: Collaborative active textbooks using Java , 1997, Comput. Networks ISDN Syst..

[23]  Kenneth A. Reek,et al.  The TRY system -or- how to avoid testing student programs , 1989, SIGCSE '89.

[24]  Michael T. Goodrich,et al.  PILOT: an interactive tool for learning and grading , 2000, SIGCSE '00.

[25]  Denise M. Woit,et al.  Providing mark-up and feedback to students with online marking , 1999, SIGCSE '99.

[26]  Michael T. Goodrich,et al.  Testers and visualizers for teaching data structures , 1999, SIGCSE '99.

[27]  Oliver Grillmeyer An interactive multimedia textbook for introductory computer science , 1999, SIGCSE '99.

[28]  Marc H. Brown,et al.  Zeus: a system for algorithm animation and multi-view editing , 1991, Proceedings 1991 IEEE Workshop on Visual Languages.

[29]  Lauri Malmi,et al.  TRAKLA - A System for Teaching Algorithms Using Email and a Graphical Editor , 1993 .

[30]  Jan Lönnberg,et al.  Visual Testing of Software , 2022 .

[31]  David Jackson,et al.  Grading student programs using ASSYST , 1997, SIGCSE '97.

[32]  Lauri Malmi,et al.  Algorithm simulation with automatic assessment , 2000, ITiCSE '00.

[33]  Owen Astrachan,et al.  An object-oriented, apprenticeship approach to data structures using simulation , 1996, Technology-Based Re-Engineering Engineering Education Proceedings of Frontiers in Education FIE'96 26th Annual Conference.

[34]  John English,et al.  Experience with an automatically assessed course , 2000, ITiCSE '00.

[35]  Eileen Kraemer,et al.  A Methodology for Building Application-Specific Visualizations of Parallel Programs , 1993, J. Parallel Distributed Comput..

[36]  Brad A. Myers,et al.  Automatic data visualization for novice Pascal programmers , 1988, [Proceedings] 1988 IEEE Workshop on Visual Languages.

[37]  Ari Korhonen,et al.  VISUAL ALGORITHM SIMULATION , 2003 .

[38]  Barton P. Miller What to Draw? When to Draw? An Essay on Parallel Program Visualization , 1993, J. Parallel Distributed Comput..

[39]  Andreas Winter,et al.  GraX : Graph Exchange Format , 2000 .

[40]  Sougata Mukherjea,et al.  Toward visual debugging: integrating algorithm animation capabilities within a source-level debugger , 1994, TCHI.

[41]  John T. Stasko,et al.  Using student-built algorithm animations as learning aids , 1997, SIGCSE '97.

[42]  Susan H. Rodger,et al.  Animation, visualization, and interaction in CS 1 assignments , 1998, SIGCSE '98.

[43]  Lauri Malmi,et al.  Fully automatic assessment of programming exercises , 2001 .

[44]  Lauri Malmi,et al.  Algorithm Simulation - A Novel Way to Specify Algorithm Animations , 2002 .

[45]  David A. Duce,et al.  Scalable Vector Graphics SVG 1.0 Specification , 2000 .

[46]  Edward M. Reingold,et al.  Graph drawing by force‐directed placement , 1991, Softw. Pract. Exp..

[47]  J RossRockford,et al.  Dancing with DynaLab , 1996 .

[48]  Erkki Sutinen,et al.  Animation of user algorithms on the Web , 1997, Proceedings. 1997 IEEE Symposium on Visual Languages (Cat. No.97TB100180).

[49]  Raghvinder S. Sangwan,et al.  A Visual Interface for Effortless Animation of C/C++ Programs , 2000, J. Vis. Lang. Comput..