Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3126594.3126632acmconferencesArticle/Chapter ViewAbstractPublication PagesuistConference Proceedingsconference-collections
research-article
Public Access

Omnicode: A Novice-Oriented Live Programming Environment with Always-On Run-Time Value Visualizations

Published: 20 October 2017 Publication History

Abstract

Visualizations of run-time program state help novices form proper mental models and debug their code. We push this technique to the extreme by posing the following question: What if a live programming environment for an imperative language always displays the entire history of all run-time values for all program variables all the time? To explore this question, we built a prototype live IDE called Omnicode ("Omniscient Code") that continually runs the user's Python code and uses a scatterplot matrix to visualize the entire history of all of its numerical values, along with meaningful numbers derived from other data types. To filter the visualizations and hone in on specific points of interest, the user can brush and link over the scatterplots or select portions of code. They can also zoom in to view detailed stack and heap visualizations at each execution step. An exploratory study on 10 novice programmers discovered that they found Omnicode to be useful for debugging, forming mental models, explaining their code to others, and discovering moments of serendipity that would not have been likely within an ordinary IDE.

References

[1]
2013. A History of Live Programming. http://liveprogramming.github.io/liveblog/2013/ 01/a-history-of-live-programming/. (Jan. 2013).
[2]
2017. doctest - Test interactive Python examples. https://docs.python.org/2/library/doctest.html. (2017).
[3]
Shaaron Ainsworth and Andrea Th Loizou. 2003. The effects of self-explaining when learning with text or diagrams. Cognitive Science 27, 4 (2003), 669--681.
[4]
Mordechai Ben-Ari and Jorma Sajaniemi. 2004. Roles of Variables As Seen by CS Educators. In Proceedings of the 9th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE '04). ACM, NY, NY, USA, 52--56.
[5]
Benjamin Biegel, Benedikt Lesch, and Stephan Diehl. 2015. Live object exploration: Observing and manipulating behavior and state of Java objects. In 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME). 581--585.
[6]
Margaret M. Burnett, John W. Atwood Jr, and Zachary T. Welch. 1998. Implementing Level 4 Liveness in Declarative Visual Programming Languages. In Proceedings of the IEEE Symposium on Visual Languages (VL '98). IEEE Computer Society, Washington, DC, USA, 126--. http://dl.acm.org/citation.cfm?id=832279.834482
[7]
Pauli Byckling, Petri Gerdt, and Jorma Sajaniemi. 2005. Roles of Variables in Object-oriented Programming. In Companion to the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA '05). ACM, NY, NY, USA, 350--355.
[8]
Michelene T.H. Chi, Miriam Bassok, Matthew W. Lewis, Peter Reimann, and Robert Glaser. 1989. Self-Explanations: How Students Study and Use Examples in Learning to Solve Problems. Cognitive Science 13, 2 (1989), 145--182.
[9]
Michelene T.H. Chi, Nicholas De Leeuw, Mei-Hung Chiu, and Christian Lavancher. 1994. Eliciting Self-Explanations Improves Understanding. Cognitive Science 18, 3 (1994), 439--477.
[10]
Benedict Du Boulay. 1986. Some Difficulties of Learning to Program. Journal of Educational Computing Research 2, 1 (1986), 57--73.
[11]
Michael D. Ernst, Jeff H. Perkins, Philip J. Guo, Stephen McCamant, Carlos Pacheco, Matthew S. Tschantz, and Chen Xiao. 2007. The Daikon system for dynamic detection of likely invariants. Science of Computer Programming 69, 1--3 (Dec. 2007), 35--45.
[12]
Chris Granger. 2017. Light Table: The next generation code editor. http://lighttable.com/. (July 2017).
[13]
Philip J. Guo. 2013. Online Python Tutor: Embeddable Web-based Program Visualization for CS Education. In Proceedings of the 44th ACM Technical Symposium on Computer Science Education (SIGCSE '13). ACM, NY, NY, USA, 579--584.
[14]
Jeffrey Heer, Michael Bostock, and Vadim Ogievetsky. 2010. A Tour Through the Visualization Zoo. Commun. ACM 53, 6 (June 2010), 59--67.
[15]
Jeffrey Heer and Ben Shneiderman. 2012. Interactive Dynamics for Visual Analysis. Commun. ACM 55, 4 (April 2012), 45--54.
[16]
Christopher D. Hundhausen and Jonathan L. Brown. 2007. What You See Is What You Code: A 'live' algorithm development and visualization environment for novice learners. Journal of Visual Languages & Computing 18, 1 (2007), 22 -- 47.
[17]
Christopher D. Hundhausen, Sarah A. Douglas, and John T. Stasko. 2002. A Meta-Study of Algorithm Visualization Effectiveness. Journal of Visual Languages & Computing 13, 3 (2002), 259 -- 290.
[18]
Daniel H. H. Ingalls. 1981. Design Principles Behind Smalltalk. Byte Magazine 6, 8 (1981), 286--298.
[19]
Andrew J. Ko and Brad A. Myers. 2008. Debugging Reinvented: Asking and Answering Why and Why Not Questions About Program Behavior. In Proceedings of the 30th International Conference on Software Engineering (ICSE '08). ACM, NY, NY, USA, 301--310.
[20]
Jan-Peter Krämer, Joachim Kurz, Thorsten Karrer, and Jan Borchers. 2014. How live coding affects developers' coding behavior. In Proceedings of the 2014 IEEE Symposium on Visual Languages - Human Centric Computing (VLHCC '14). IEEE Computer Society, Washington, DC, USA, 5--8.
[21]
Tom Lieber, Joel R. Brandt, and Rob C. Miller. 2014. Addressing Misconceptions About Code with Always-on Programming Visualizations. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '14). ACM, NY, NY, USA, 2481--2490.
[22]
Lauri Malmi, Ville Karavirta, Ari Korhonen, Jussi Nikander, Otto Seppl, and Panu Silvasti. 2004. Visual Algorithm Simulation Exercise System with Automatic Assessment: TRAKLA2. In Informatics in Education. 048.
[23]
Andrés Moreno, Niko Myller, Erkki Sutinen, and Mordechai Ben-Ari. 2004. Visualizing Programs with Jeliot 3. In Proceedings of the Working Conference on Advanced Visual Interfaces (AVI '04). ACM, NY, NY, USA, 373--376.
[24]
Greg Nelson, Benjamin Xie, and Andrew J. Ko. 2017. Comprehension First: Evaluating a Novel Pedagogy and Tutoring System for Program Tracing in CS1. In Proceedings of the 2017 International Conference on International Computing Education Research (ICER '17). ACM, NY, NY, USA.
[25]
David Saff and Michael D. Ernst. 2004. An Experimental Evaluation of Continuous Testing During Development. In Proceedings of the 2004 ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA '04). ACM, NY, NY, USA, 76--85.
[26]
Clifford A. Shaffer, Matthew L. Cooper, Alexander Joel D. Alon, Monika Akbar, Michael Stewart, Sean Ponce, and Stephen H. Edwards. 2010. Algorithm Visualization: The State of the Field. Trans. Comput. Educ. 10, 3, Article 9 (Aug. 2010), 22 pages.
[27]
Juha Sorva. 2013. Notional Machines and Introductory Programming Education. Trans. Comput. Educ. 13, 2, Article 8 (July 2013), 31 pages.
[28]
Juha Sorva, Ville Karavirta, and Lauri Malmi. 2013. A Review of Generic Program Visualization Systems for Introductory Programming Education. Trans. Comput. Educ. 13, 4, Article 15 (Nov. 2013), 64 pages.
[29]
Juha Sorva and Teemu Sirkiä. 2010. UUhistle: A Software Tool for Visual Program Simulation. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research (Koli Calling '10). ACM, NY, NY, USA, 49--54.
[30]
Steven L. Tanimoto. 2013. A perspective on the evolution of live programming. In 2013 1st International Workshop on Live Programming (LIVE). 31--34.
[31]
Bret Victor. 2012. Learnable Programming: Designing a programming system for understanding programs. http://worrydream.com/LearnableProgramming/. (Sept. 2012).
[32]
E. M. Wilcox, J. W. Atwood, M. M. Burnett, J. J. Cadiz, and C. R. Cook. 1997. Does Continuous Visual Feedback Aid Debugging in Direct-manipulation Programming Systems?. In Proceedings of the ACM SIGCHI Conference on Human Factors in Computing Systems (CHI '97). ACM, NY, NY, USA, 258--265.

Cited By

View all
  • (2024)Tyche: Making Sense of PBT EffectivenessProceedings of the 37th Annual ACM Symposium on User Interface Software and Technology10.1145/3654777.3676407(1-16)Online publication date: 13-Oct-2024
  • (2024)Understanding and Supporting Debugging Workflows in CADProceedings of the 37th Annual ACM Symposium on User Interface Software and Technology10.1145/3654777.3676353(1-14)Online publication date: 13-Oct-2024
  • (2024)Validating AI-Generated Code with Live ProgrammingProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642495(1-8)Online publication date: 11-May-2024
  • Show More Cited By

Index Terms

  1. Omnicode: A Novice-Oriented Live Programming Environment with Always-On Run-Time Value Visualizations

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    UIST '17: Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology
    October 2017
    870 pages
    ISBN:9781450349819
    DOI:10.1145/3126594
    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: 20 October 2017

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. always-on visualizations
    2. live programming

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    UIST '17

    Acceptance Rates

    UIST '17 Paper Acceptance Rate 73 of 324 submissions, 23%;
    Overall Acceptance Rate 561 of 2,567 submissions, 22%

    Upcoming Conference

    UIST '25
    The 38th Annual ACM Symposium on User Interface Software and Technology
    September 28 - October 1, 2025
    Busan , Republic of Korea

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)224
    • Downloads (Last 6 weeks)29
    Reflects downloads up to 14 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Tyche: Making Sense of PBT EffectivenessProceedings of the 37th Annual ACM Symposium on User Interface Software and Technology10.1145/3654777.3676407(1-16)Online publication date: 13-Oct-2024
    • (2024)Understanding and Supporting Debugging Workflows in CADProceedings of the 37th Annual ACM Symposium on User Interface Software and Technology10.1145/3654777.3676353(1-14)Online publication date: 13-Oct-2024
    • (2024)Validating AI-Generated Code with Live ProgrammingProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642495(1-8)Online publication date: 11-May-2024
    • (2024)Teaching Programming Concepts with Visualization: A Systematic Overview and Lessons Learned2024 IEEE Integrated STEM Education Conference (ISEC)10.1109/ISEC61299.2024.10665100(1-7)Online publication date: 9-Mar-2024
    • (2023)Probe Log: Visualizing the Control Flow of Babylonian ProgrammingCompanion Proceedings of the 7th International Conference on the Art, Science, and Engineering of Programming10.1145/3594671.3594679(61-67)Online publication date: 13-Mar-2023
    • (2023)Log-it: Supporting Programming with Interactive, Contextual, Structured, and Visual LogsProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581403(1-16)Online publication date: 19-Apr-2023
    • (2023)CrossCode: Multi-level Visualization of Program ExecutionProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581390(1-13)Online publication date: 19-Apr-2023
    • (2023)A Study of Editor Features in a Creative Coding ClassroomProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3580683(1-15)Online publication date: 19-Apr-2023
    • (2023)Detangler: Helping Data Scientists Explore, Understand, and Debug Data Wrangling Pipelines2023 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL-HCC57772.2023.00031(189-198)Online publication date: 3-Oct-2023
    • (2023)Octave: An End-User Programming Environment for Analysis of Spatiotemporal Data for Construction Students2023 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL-HCC57772.2023.00014(51-59)Online publication date: 3-Oct-2023
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Login options

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media