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.