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 2018Publication 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Apple Computer. 2016. Swift Playgrounds. http://www.apple.com/swift/ playgrounds/ . Accessed February 2017.Google ScholarGoogle Scholar
  3. D. Archambault and H. C. Purchase. 2012. The Mental Map and Memorability in Dynamic Graphs. In 2012 IEEE Pacific Visualization Symposium. 89–96. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Kent Beck. 2003. Test-Driven Development: by Example. Addison-Wesley Professional. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Almende B.V. 2018. vis.js - A dynamic, browser based visualization library. Retrieved April 23, 2018 from http://visjs.org/Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Chris Granger. 2012. Light Table. http://www.chris-granger.com/lighttable/ . Accessed February 2017.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Ariya Hidayat. 2018. Esprima. Retrieved April 23, 2018 from http://esprima. orgGoogle ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Fabian Jakobs. 2018. Ace - The High Performance Code Editor for the Web. Retrieved April 23, 2018 from https://ace.c9.ioGoogle ScholarGoogle Scholar
  17. Saketh Kasibatla and Alessandro Warth. 2018. Seymour: Live Programming for the Classroom. Retrieved June 17, 2018 from https://harc.github.io/ seymour-live2017/Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Khan Academy. 2018. Intro to JS: Drawing & Animation. https://www. khanacademy.org/computing/computer-programming/programming . Accessed February 2017.Google ScholarGoogle Scholar
  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 Google ScholarGoogle ScholarDigital LibraryDigital Library
  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/0310016Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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) .Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. John Resig. 2012. Redefining the Introduction to Computer Science. http: //ejohn.org/blog/introducing-khan-cs/ . Accessed March 2018.Google ScholarGoogle Scholar
  29. John T Stasko. 1989. TANGO: A Framework and System for Algorithm Animation . Technical Report. Providence, RI, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Bret Victor. 2012. Inventing on Principle. Keynote Talk at the Canadian University Software Engineering Conference (CUSEC).Google ScholarGoogle Scholar
  32. Thomas Zimmermann and Andreas Zeller. 2002. Visualizing Memory Graphs. In Software Visualization. Springer, 191–204. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

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

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • 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

      Copyright © 2018 ACM

      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].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 24 October 2018

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate40of105submissions,38%

      Upcoming Conference

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader