CHI '95 ProceedingsTopIndexes
PostersTOC

Merging Language, Direct Manipulation, and Visualization: Programmable Research Environments for Computational Scientists

Eric Blough

Department of Computer Science, CB 430
University of Colorado at Boulder
Boulder, Colorado 80309-0430
blough@cs.colorado.edu

© ACM

AbstractKeywords:

Programming environments, End-user programming, User interface components, Scientific visualization, Visual programming, Simulation, Computational science, Programmable applications.

Introduction

Programming environments have typically fallen into three rough categories: text-based general-purpose environments, task- or domain-specific end-user environments within an application context, and purely visual environments [2]. Computational scientists use general-purpose programming environments because they need to write sophisticated programs, yet (like end users) they are interested in computation only to the extent that it addresses a problem in their domain. We suggest that a hybrid environment would provide better support for their research activities.

Successful end-user programming environments have evaded some of the cognitive barriers to (general-purpose) programming, with spreadsheets and computer-aided design systems being the classic examples. The techniques discussed in [3] and [4] can also be applied to computational science programming environments, potentially enriching the interaction between researcher and task.

DIFFUSION-LIMITED AGGREGATION

We are grounding our research in a particular area of computational science: diffusion-limited aggregation. Diffusion-limited aggregation (DLA) is concerned with the characteristics of clusters formed by the aggregation of randomly moving particles [5]. DLA researchers write computer programs to simulate cluster formation and to analyze the properties of the resulting clusters. The simulations typically consume substantial time and computer memory, largely due to constraints on cluster formation, and the analysis procedures can be quite sophisticated. One researcher we interviewed had implemented his own three-byte integers to save memory, and wrote over ten thousand lines of analysis code.

Since clusters grow in space over time, spatial and temporal information are fundamental to DLA research. Papers published in the field almost invariably include pictures of DLA aggregates, and many of the cluster characteristics are most naturally described in visual terms. The growth of a cluster over time is shown either by a color scheme or by successive pictures.

Our background research and interviews indicate that the vast majority of DLA research takes place non- interactively, and that visual representations are typically static. Given the exploratory nature of the research, interaction and visualization would seem to be clear benefits.

A PROGRAMMABLE RESEARCH ENVIRONMENT

To explore the interacting roles of direct manipulation, visualization, and programming, we are developing a programmable research environment for DLA (PREDLA). PREDLA will support the interactive construction and analysis of DLA clusters through textual programming, direct manipulation, or the two in combination.

PREDLA is being written in MIT Scheme [6], a dialect of LISP. Although all of PREDLA's functionality is available through the Scheme interpreter, the most common interactions (such as running simulations, displaying and analyzing clusters and parts of clusters) will be supported by direct manipulation.

Since research paths are difficult to anticipate, researchers will need to add new functionality, such as new simulation models or analysis techniques. For this reason, PREDLA will not be a monolithic application, but will consist of a carefully constructed set of language primitives and higher- level tools built from these primitives. The intent is that a researcher will be able to use and/or modify existing higher-level functions and data structures rather than starting from raw Scheme.

Visual Depictions

A central idea in the plan for PREDLA is that each visual depiction will be identified with a program object. Any changes in the program object will be reflected in the depiction. Selection of part of a depiction (e.g., part of a cluster) will result in the creation of a new program object corresponding to the depiction.

This correspondence between visual depictions and program objects leads naturally to their combination in language expressions. One of PREDLA's planned features will allow depictions to be "dragged-and-dropped" into language expressions.

Direct Manipulations

A similar idea is planned for direct manipulations. For example, the value of a slider variable and the visual position of the slider can be changed by direct manipulation of the slider, or by executing textual language statements. More interestingly, the manipulation of a slider might be "captured" by a function which maps time to the slider value. The manipulation could then be executed again as a textual statement, or modified, or plotted.

Direct manipulation and textual programming could be combined even more closely. Selection with the mouse could be constrained by a predicate, so that only the depictions which are in the dragged rectangle and for which the predicate is true will be selected.

GOALS

We expect to see several higher-level results in the context of PREDLA. First, the direct-manipulation tools should reduce the cognitive load for the researcher, by keeping important features of the simulation and analysis visible. Second, the organization of the language primitives should facilitate the production of new functionality without sacrificing the fine control frequently required by programmers. Third, the availability of a large number of different tools in PREDLA, coupled with the immediacy of visualization and direct manipulation, may contribute to a richness of interaction not found in conventional computational science environments.

Finally, we wish to determine whether the lessons learned from PREDLA have any utility in other computational science domains, or to the higher-level issue of programming in general.

EVALUATION

Several different evaluation methods are available to determine whether PREDLA is a qualitatively better research environment, and whether the tools and techniques instantiated in it can be generalized to other domains or to general-purpose programming. One form of evaluation will consist of comparisons between simulation and analysis tasks taken from actual DLA experiments with the same tasks performed in PREDLA. The usefulness of PREDLA's set of language primitives will be reflected in the ease or difficulty of using it to perform experiments that had not been conceived when PREDLA was developed.

Although few DLA researchers are immediately available to us, we are actively working to have DLA researchers use PREDLA, and we hope that some will use it for an extended time. Since PREDLA is a research environment, not a walk-up-and-use system, longer-term evaluation is required to produce a more accurate portrait of PREDLA's strengths and weaknesses.

IMPLICATIONS

Detailed evaluation of PREDLA will not only indicate its success or failure as an application, but will also suggest which of its programming tools have promise, both for computational science and for more general programming environments. At best, we hope to be able to abstract some design principles for programmable research environments, and for programming tools that incorporate both text and graphics.

Acknowledgments

This work is supported by NSF Grant IRI-9210324. The author would like to thank the DLA researchers collectively for cheerfully submitting to interviews, the Massachusetts Institute of Technology Scheme Team for their assistance with MIT Scheme and the Scheme Widget Application Toolkit, and Digital Equipment Corporation for donation of equipment. Special thanks go to Peter Ossadnik, Scott Peckham, and Clayton Lewis for their willing help, and to Michael Eisenberg, the author's adviser.

References

1. Eisenberg, M. Programmable Applications: Interpreter Meets Interface. MIT AI Memo No. 1325, 1991.

2. Glinert, E. P. Visual Programming Environments: Paradigms and Systems. IEEE Computer Society Press, 1990.

3. Lewis, C. and Olson, G. Can Principles of Cognition Lower the Barriers to Programming? in Empirical Studies of Programmers, Second Workshop. Ablex Publishing, 1986.

4. Nardi, B. A Small Matter of Programming:: Perspectives on End User Computing. MIT Press, 1993.

5. Witten, T.A. and Sander, L.M. Diffusion-Limited Aggregation, a Kinetic Critical Phenomenon. Physical Review Letters. 47, 19, p. 1400.

6. Clinger, W. and Rees, J. Revised4 Report on the Algorithmic Language Scheme. MIT AI Memo No. 848b, 1991.