skip to main content
10.1145/2702123.2702319acmconferencesArticle/Chapter ViewAbstractPublication PageschiConference Proceedingsconference-collections
research-article

An Interactive System for Data Structure Development

Published:18 April 2015Publication History

ABSTRACT

Data structure algorithms are of fundamental importance in teaching and software development, yet are difficult to understand. We propose a new approach for understanding, debugging and developing heap manipulating data structures. The key technical idea of our work is to combine deep parametric abstraction techniques emerging from the area of static analysis with interactive abstraction manipulation. Our approach bridges program analysis with HCI and enables new capabilities not possible before: i) online automatic visualization of the data structure in a way which captures its essential operation, thus enabling powerful local reasoning, and ii) fine grained pen and touch gestures allowing for interactive control of the abstraction -- at any point the developer can pause the program, graphically interact with the data, and continue program execution. These features address some of the most pressing challenges in developing data structures. We implemented our approach in a Java-based system called FluiEdt and evaluated it with $27$ developers. The results indicate that FluiEdt is more effective in helping developers find data structure errors than existing state of the art IDEs (e.g. Eclipse) or pure visualization based approaches.

Skip Supplemental Material Section

Supplemental Material

pn1038-file3.mp4

mp4

50.6 MB

References

  1. Aftandilian, E. E. et al. Heapviz: interactive heap visualization for program understanding and debugging. In Proc. SOFTVIS '10, 2010, p.53--62. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Balakrishnan, G., and T. Reps. Recency-abstraction for heap-allocated storage. In Proc. SAS'06. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bragdon, A. et al. Code bubbles: A working set-based interface for code understanding and maintenance. In Proc. CHI '10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Brandt, J. et al. Example-centric programming: integrating web search into the development environment. In Proc. CHI '10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Brandt, J. et al. Two studies of opportunistic programming: Interleaving web foraging, learning, and writing code. In Proc. CHI '09. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Brown, M. H., and M. A. Najork. Algorithm animation using 3d interactive graphics. In Proc. UIST '93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. DeLine, R., and K. Rowan. Code canvas: Zooming towards better development environments. In Proc. ICSE '10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Détienne, F. Software Design-Cognitive Aspect. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Galenson, J. et al. Codehint: Dynamic and interactive synthesis of code snippets. In Proc. ICSE '14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Gilmore, D. J. Models of debugging. Acta Psychologica 78, 13 (1991), 151--172.Google ScholarGoogle ScholarCross RefCross Ref
  11. Guo, P. J. Online python tutor: Embeddable web-based program visualization for cs education. In Proc. SIGCSE '13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Hartmann, B., M. Dhillon, and M. K. Chan. Hypersource: Bridging the gap between source and code-related web sites. In Proc. CHI '11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Hoffmann, R., J. Fogarty, and D. S. Weld. Assieme: finding and leveraging implicit references in a web search interface for programmers. In Proc. UIST' 07. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Karrer, T. et al. Stacksplorer: Call graph navigation helps increasing code maintenance efficiency. In Proc. UIST '11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Katz, I. R., and J. R. Anderson. Debugging: An analysis of bug-location strategies. SIGCHI Bull. 21, 1 (Aug. 1989). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Ko, A. J., and B. A. Myers. Extracting and answering why and why not questions about java program output. ACM Trans. Softw. Eng. Methodol. 20, 2 (Sept. 2010), 4:1--4:36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Ko, A. J., B. A. Myers, and H. H. Aung. Six learning barriers in end-user programming systems. In Proc. VL/HCC '04. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Lieber, T., J. R. Brandt, and R. C. Miller. Addressing misconceptions about code with always-on programming visualizations. In Proc. CHI' 14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Mamykina, L. et al. Design Lessons from the Fastest Q&A site in the west. In Proc. CHI '11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Marron, M. et al. Abstracting runtime heaps for program understanding. Trans. Softw. Eng.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Mayer, R. E. The psychology of how novices learn computer programming. ACM Computing Surveys (CSUR) 13, 1 (1981), 121--141. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Oney, S., and J. Brandt. Codelets: Linking interactive documentation and example code in the editor. In Proc. CHI '12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Rzeszotarski, J. M., and A. Kittur. Kinetica: Naturalistic multi-touch data visualization. In Proc. CHI' 14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Sagiv, M., T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. ACM Trans. Program. Lang. Syst. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Sorva, J., V. Karavirta, and L. Malmi. A review of generic program visualization systems for introductory programming education. Trans. Comput. Educ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Stasko, J. Tango: a framework and system for algorithm animation. Computer 23, 9 (Sept 1990), 27--39. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Weiser, M. Programmers use slices when debugging. Commun. ACM 25, 7 (July 1982), 446--452. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Wightman, D. et al. Snipmatch: Using source code context to enhance snippet retrieval and parameterization. In Proc. UIST '12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Yeh, R. B., A. Paepcke, and S. R. Klemmer. Iterative design and evaluation of an event architecture for pen-and-paper interfaces. In Proc. UIST '08. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Zeleznik, R. et al. Hands-on Math: A Page-based Multi-touch and Pen Desktop for Technical Work and Problem Solving. In Proc. UIST '10. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An Interactive System for Data Structure Development

    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
      CHI '15: Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems
      April 2015
      4290 pages
      ISBN:9781450331456
      DOI:10.1145/2702123

      Copyright © 2015 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 ACM 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: 18 April 2015

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      CHI '15 Paper Acceptance Rate486of2,120submissions,23%Overall Acceptance Rate6,199of26,314submissions,24%

      Upcoming Conference

      CHI '24
      CHI Conference on Human Factors in Computing Systems
      May 11 - 16, 2024
      Honolulu , HI , USA

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader