2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)
Download PDF

Abstract

A diverse range of people, from students to engineers to designers, are interested in using programming to analyze, visualize, and build new intelligent systems from data. However, when working with data, a programmer must typically experiment heavily: writing out and running many different approaches in code to reach a desired result [1][2]. This form of exploratory programming presents extra challenges and pitfalls for programmers. For example, as a person iterates on a problem over a long period of time, it can become difficult to answer questions like: “Through what steps did I achieve this result?” [3] or “What different analyses have I tried or not tried so far?”. Currently there is a sparsity of tools for programmers to keep track of all their code experimentation, and intermediary data analysis steps are easily lost. Programmers also struggle with making many small highly exploratory code changes, such as trying 10 different values of a parameter [2]. Current code version tools are not designed for rapid iteration on small sections of code, thus these programmers often resort to informal ad-hoc methods of versioning such as leaving 10 different values of a parameter in comments in their code, or copying the 10 different values to a separate text file. As programmers work to make sense of challenging data questions, managing experiments in code adds an extra degree of overhead and confusion that can make this work all the more difficult.
Like what you’re reading?
Already a member?
Get this article FREE with a new membership!

Related Articles