title: "Omnicode: A Novice-Oriented Live Programming Environment with Always-On Run-Time Value Visualizations" authors: Hyeonsu Kang and Philip J. Guo venue: ACM Symposium on User Interface Software and Technology (UIST) year: 2017 links: - Blog post tweet: Omnicode constantly visualizes the full history of all numeric values in your code as you're coding 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. bibtex: > @inproceedings{KangUIST2017, author = {Kang, Hyeonsu and Guo, Philip J.}, title = {Omnicode: A Novice-Oriented Live Programming Environment with Always-On Run-Time Value Visualizations}, booktitle = {Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology}, series = {UIST '17}, year = {2017}, isbn = {978-1-4503-4981-9}, location = {Qu\&\#233;bec City, QC, Canada}, pages = {737--745}, numpages = {9}, url = {http://doi.acm.org/10.1145/3126594.3126632}, doi = {10.1145/3126594.3126632}, acmid = {3126632}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {always-on visualizations, live programming}, }