skip to main content
10.1145/3276954.3276962acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Live, synchronized, and mental map preserving visualization for data structure programming

Published: 24 October 2018 Publication History

Abstract

Live programming is an activity in which the programmer edits code while observing the result of the program. It has been exercised mainly for pedagogical and artistic purposes, where outputs of a program are not straightforwardly imagined. While most live programming environments so far target programs that explicitly generate visual or acoustic outputs, we believe that live programming is also useful for data structure programming, where the programmer often has a hard time to grasp a behavior of programs. However, it is not clear what features a live programming environment should provide for such kind of programs. In this paper, we present a design of live programming environment for data structure programming, identify the problems of synchronization and mental map preservation, and propose solutions based on a calling-context sensitive identification technique. We implemented a live programming environment called Kanon, and tested with 13 programmers.

References

[1]
Samuel Aaron and Alan F. Blackwell. 2013. From Sonic Pi to Overtone: Creative Musical Experiences with Domain-specific and Functional Languages. In Proceedings of the First ACM SIGPLAN Workshop on Functional Art, Music, Modeling & Design (FARM ’13) . ACM, New York, NY, USA, 35–46.
[2]
Apple Computer. 2016. Swift Playgrounds. http://www.apple.com/swift/ playgrounds/ . Accessed February 2017.
[3]
D. Archambault and H. C. Purchase. 2012. The Mental Map and Memorability in Dynamic Graphs. In 2012 IEEE Pacific Visualization Symposium. 89–96.
[4]
Kent Beck. 2003. Test-Driven Development: by Example. Addison-Wesley Professional.
[5]
M. H. Brown. 1991. Zeus: a system for algorithm animation and multi-view editing. In Proceedings 1991 IEEE Workshop on Visual Languages. 4–9.
[6]
Marc H. Brown and Robert Sedgewick. 1984. A System for Algorithm Animation. In Proceedings of the 11th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH ’84) . ACM, New York, NY, USA, 177–186.
[7]
Sebastian Burckhardt, Manuel Fahndrich, Peli de Halleux, Sean McDirmid, Michal Moskal, Nikolai Tillmann, and Jun Kato. 2013. It’s Alive! Continuous Feedback in UI Programming. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’13) . ACM, New York, NY, USA, 95–104.
[8]
Almende B.V. 2018. vis.js - A dynamic, browser based visualization library. Retrieved April 23, 2018 from http://visjs.org/
[9]
Jonathan Edwards. 2004. Example Centric Programming. In Proceedings of Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’04), Doug Schmidt (Ed.). ACM, New York, NY, USA, 84–91.
[10]
Chris Granger. 2012. Light Table. http://www.chris-granger.com/lighttable/ . Accessed February 2017.
[11]
Philip J Guo. 2013. Online Python Tutor: Embeddable Web-based Program Visualization for CS Education. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education . ACM, 579–584.
[12]
Christopher Michael Hancock. 2003. Real-time Programming and the Big Ideas of Computational Literacy . Ph.D. Dissertation. Massachusetts Institute of Technology, Cambridge, MA, USA.
[13]
T. Dean Hendrix, James H. Cross, II, and Larry A. Barowski. 2004. An Extensible Framework for Providing Dynamic Data Structure Visualizations in a Lightweight IDE. In Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education (SIGCSE ’04) . ACM, New York, NY, USA, 387–391.
[14]
Ariya Hidayat. 2018. Esprima. Retrieved April 23, 2018 from http://esprima. org
[15]
Tomoki Imai, Hidehiko Masuhara, and Tomoyuki Aotani. 2015. Making Live Programming Practical by Bridging the Gap Between Trial-and-error Development and Unit Testing. In Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity (2015-10-25), Jonathan Aldrich (Ed.). ACM, ACM, 11–12.
[16]
Fabian Jakobs. 2018. Ace - The High Performance Code Editor for the Web. Retrieved April 23, 2018 from https://ace.c9.io
[17]
Saketh Kasibatla and Alessandro Warth. 2018. Seymour: Live Programming for the Classroom. Retrieved June 17, 2018 from https://harc.github.io/ seymour-live2017/
[18]
Jun Kato, Sean McDirmid, and Xiang Cao. 2012. DejaVu: Integrated Support for Developing Interactive Camera-based Programs. In Proceedings of the 25th annual ACM symposium on User Interface Software and Technology (UIST’12) . ACM, 189–196.
[19]
Khan Academy. 2018. Intro to JS: Drawing & Animation. https://www. khanacademy.org/computing/computer-programming/programming . Accessed February 2017.
[20]
Yi-Yi Lee, Chun-Cheng Lin, and Hsu-Chun Yen. 2006. Mental Map Preserving Graph Drawing Using Simulated Annealing. In Proceedings of the 2006 Asia-Pacific Symposium on Information Visualisation - Volume 60 (APVis ’06) . Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 179–188. http://dl.acm.org/citation.cfm?id=1151903.1151930
[21]
Bil Lewis. 2003. Debugging Backwards in Time. In Proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG 2003) . arXiv: cs.SE/0310016 http://arxiv.org/abs/cs.SE/0310016
[22]
Henry Lieberman and Christopher Fry. 1995. Bridging the Gulf Between Code and Behavior in Programming. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI ’95) . ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 480–486.
[23]
Sean McDirmid. 2007. Living it Up with a Live Programming Language. In In Proceedings of Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!) . ACM, 623–638.
[24]
Sean McDirmid. 2013. Usable Live Programming. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2013) . ACM, New York, NY, USA, 53–62.
[25]
Akio Oka, Hidehiko Masuhara, and Tomoyuki Aotani. 2017a. The Visualization of Data Structures and Interactive Features for Live Programming. In The 113th IPSJ Workshop on Programming.
[26]
Akio Oka, Hidehiko Masuhara, Tomoki Imai, and Tomoyuki Aotani. 2017b. Kanon: Data Structure Programming using Live Programming Environment. In Proceedings of the 10th JSSST Workshop on Programming and Programming Languages (PPL 2017) .
[27]
Akio Oka, Hidehiko Masuhara, Tomoki Imai, and Tomoyuki Aotani. 2017c. Live Data Structure Programming. In Companion to the First International Conference on the Art, Science and Engineering of Programming (Programming ’17) . ACM, New York, NY, USA, Article 26, 7 pages.
[28]
John Resig. 2012. Redefining the Introduction to Computer Science. http: //ejohn.org/blog/introducing-khan-cs/ . Accessed March 2018.
[29]
John T Stasko. 1989. TANGO: A Framework and System for Algorithm Animation . Technical Report. Providence, RI, USA.
[30]
David Ungar and Randall B. Smith. 1987. Self: The Power of Simplicity. In Proceedings of Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’87) (ACM SIGPLAN Notices), Norman Meyrowitz (Ed.), Vol. 22(12). ACM, ACM, Orlando, FL, 227–242.
[31]
Bret Victor. 2012. Inventing on Principle. Keynote Talk at the Canadian University Software Engineering Conference (CUSEC).
[32]
Thomas Zimmermann and Andreas Zeller. 2002. Visualizing Memory Graphs. In Software Visualization. Springer, 191–204.

Cited By

View all
  • (2023)Toward Studying Example-Based Live Programming in CS/SE EducationProceedings of the 2nd ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments10.1145/3623504.3623568(17-24)Online publication date: 18-Oct-2023
  • (2023)Learning Data Structures Through Reverse Engineering Method2023 International Conference on Informatics, Multimedia, Cyber and Informations System (ICIMCIS)10.1109/ICIMCIS60089.2023.10349071(240-245)Online publication date: 7-Nov-2023
  • (2022)An Approach to Collecting Object Graphs for Data-structure Live Programming Based on a Language Implementation FrameworkJournal of Information Processing10.2197/ipsjjip.30.45130(451-463)Online publication date: 2022
  • Show More Cited By

Index Terms

  1. Live, synchronized, and mental map preserving visualization for data structure programming

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    Onward! 2018: Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
    October 2018
    146 pages
    ISBN:9781450360319
    DOI:10.1145/3276954
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 24 October 2018

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Live programming
    2. data structures
    3. object graph

    Qualifiers

    • Research-article

    Conference

    SPLASH '18
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 40 of 105 submissions, 38%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)35
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 07 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Toward Studying Example-Based Live Programming in CS/SE EducationProceedings of the 2nd ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments10.1145/3623504.3623568(17-24)Online publication date: 18-Oct-2023
    • (2023)Learning Data Structures Through Reverse Engineering Method2023 International Conference on Informatics, Multimedia, Cyber and Informations System (ICIMCIS)10.1109/ICIMCIS60089.2023.10349071(240-245)Online publication date: 7-Nov-2023
    • (2022)An Approach to Collecting Object Graphs for Data-structure Live Programming Based on a Language Implementation FrameworkJournal of Information Processing10.2197/ipsjjip.30.45130(451-463)Online publication date: 2022
    • (2019)WillowProceedings of the XXXIII Brazilian Symposium on Software Engineering10.1145/3350768.3351303(553-558)Online publication date: 23-Sep-2019

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media