Code Park: A New 3D Code Visualization Tool

We introduce Code Park, a novel tool for visualizing codebases in a 3D game-like environment. Code Park aims to improve a programmer's understanding of an existing codebase in a manner that is both engaging and intuitive, appealing to novice users such as students. It achieves these goals by laying out the codebase in a 3D park-like environment. Each class in the codebase is represented as a 3D room-like structure. Constituent parts of the class (variable, member functions, etc.) are laid out on the walls, resembling a syntax-aware "wallpaper". The users can interact with the codebase using an overview, and a first-person viewer mode. We conducted two user studies to evaluate Code Park's usability and suitability for organizing an existing project. Our results indicate that Code Park is easy to get familiar with and significantly helps in code understanding compared to a traditional IDE. Further, the users unanimously believed that Code Park was a fun tool to work with.

[1]  Danny Holten,et al.  Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data , 2006, IEEE Transactions on Visualization and Computer Graphics.

[2]  Eric Rosenbaum,et al.  Scratch: programming for all , 2009, Commun. ACM.

[3]  Pierre Poulin,et al.  Visualization-based analysis of quality for large-scale software systems , 2005, ASE.

[4]  Richard W. Vuduc,et al.  Communicating Software Architecture using a Unified Single-View Visualization , 2007, 12th IEEE International Conference on Engineering Complex Computer Systems (ICECCS 2007).

[5]  Christoph Wysseier,et al.  Visualizing Feature Interaction in 3-D , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[6]  A. Baddeley Human Memory: Theory and Practice, Revised Edition , 1990 .

[7]  Caitlin Kelleher,et al.  Using storytelling to motivate programming , 2007, CACM.

[8]  Mohammad Ghafari,et al.  MetaVis: Exploring Actionable Visualization , 2016, 2016 IEEE Working Conference on Software Visualization (VISSOFT).

[9]  Kenneth M. Kahn,et al.  ToonTalk - An Animated Programming Environment for Children , 1996, J. Vis. Lang. Comput..

[10]  Martin Gogolla,et al.  On better understanding UML diagrams through interactive three-dimensional visualization and animation , 2000, AVI '00.

[11]  Michele Lanza,et al.  Visually localizing design problems with disharmony maps , 2008, SoftVis '08.

[12]  David Bonyuet,et al.  3D visualization for software development , 2004, Proceedings. IEEE International Conference on Web Services, 2004..

[13]  Aymen Ben Abbes,et al.  The effect of spatial organization of targets and distractors on the capacity to selectively memorize objects in visual short-term memory , 2014, Advances in cognitive psychology.

[14]  Andrian Marcus,et al.  3D representations for software visualization , 2003, SoftVis '03.

[15]  Philippe Dugerdil,et al.  EvoSpaces Visualization Tool: Exploring Software Architecture in 3D , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[16]  Jock D. Mackinlay,et al.  The perspective wall: detail and context smoothly integrated , 1991, CHI.

[17]  Estelle Perrin,et al.  AlgoPath: A New Way of Learning Algorithmic , 2012, ACHI 2012.

[18]  Kirsti Ala-Mutka,et al.  A study of the difficulties of novice programmers , 2005, ITiCSE '05.

[19]  Michael Balzer,et al.  Software landscapes: visualizing the structure of large software systems , 2004, VISSYM'04.

[20]  George D. Kuh,et al.  Student Engagement and Student Learning: Testing the Linkages* , 2006 .

[21]  J. J. Higgins,et al.  The aligned rank transform for nonparametric factorial analyses using only anova procedures , 2011, CHI.

[22]  Hironori Washizaki,et al.  Influence of the Programming Environment on Programming Education , 2016, ITiCSE.

[23]  Malcolm Munro,et al.  Virtual but visible software , 2000, 2000 IEEE Conference on Information Visualization. An International Conference on Computer Visualization and Graphics.

[24]  Randy Pausch,et al.  Alice: a 3-D tool for introductory programming concepts , 2000 .

[25]  Craig Anslow,et al.  CodeSurveyor: Mapping large-scale software to aid in code comprehension , 2015, 2015 IEEE 3rd Working Conference on Software Visualization (VISSOFT).

[26]  Stéphane Ducasse,et al.  A categorization of classes based on the visualization of their internal structure: the class blueprint , 2001, OOPSLA '01.

[27]  Árpád Beszédes,et al.  CodeMetrpolis — A minecraft based collaboration tool for developers , 2013, 2013 First IEEE Working Conference on Software Visualization (VISSOFT).

[28]  Mohammad Ghafari,et al.  Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies , 2016, 2016 IEEE Working Conference on Software Visualization (VISSOFT).

[29]  Joseph J. LaViola,et al.  CSTutor: A Sketch-Based Tool for Visualizing Data Structures , 2014, TOCE.

[30]  Doug A. Bowman,et al.  Maintaining Spatial Orientation during Travel in an Immersive Virtual Environment , 1999, Presence.

[31]  R. Walgate Tale of two cities , 1984, Nature.

[32]  Michael Jünger,et al.  A new approach for visualizing UML class diagrams , 2003, SoftVis '03.

[33]  Marcelo R. Campo,et al.  An Overview of 3D Software Visualization , 2009, IEEE Transactions on Visualization and Computer Graphics.

[34]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[35]  Emiko Charbonneau,et al.  Exploring Minecraft as a conduit for increasing interest in programming , 2013, FDG.

[36]  Hong Yul Yang,et al.  A Solar System Metaphor for 3D Visualisation of Object Oriented Software Metrics , 2004, InVis.au.

[37]  Stephen G. Eick,et al.  Seesoft-A Tool For Visualizing Line Oriented Software Statistics , 1992, IEEE Trans. Software Eng..

[38]  Mary Czerwinski,et al.  Data mountain: using spatial memory for document management , 1998, UIST '98.

[39]  E. Maguire,et al.  The Human Hippocampus and Spatial and Episodic Memory , 2002, Neuron.

[40]  J. Sweller COGNITIVE LOAD THEORY, LEARNING DIFFICULTY, AND INSTRUCTIONAL DESIGN , 1994 .

[41]  Andy Cockburn,et al.  Evaluating the effectiveness of spatial memory in 2D and 3D physical and virtual environments , 2002, CHI.

[42]  Michael Balzer,et al.  Voronoi treemaps for the visualization of software metrics , 2005, SoftVis '05.

[43]  Joseph J. LaViola,et al.  Code bubbles: rethinking the user interface paradigm of integrated development environments , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[44]  Olivier Zendra,et al.  Visualization of the Static Aspects of Software: A Survey , 2011, IEEE Transactions on Visualization and Computer Graphics.

[45]  Michael Balzer,et al.  Level-of-detail visualization of clustered graph layouts , 2007, 2007 6th International Asia-Pacific Symposium on Visualization.

[46]  Patricia Haden,et al.  Parson's programming puzzles: a fun and effective learning tool for first programming courses , 2006 .

[47]  Christopher Kurtz,et al.  Code Gestalt: a software visualization tool for human beings , 2011, CHI Extended Abstracts.