



Department of Computer Science, CB 430
University of Colorado at Boulder
Boulder, Colorado 80309-0430
blough@cs.colorado.edu
Successful end-user programming environments have
evaded some of the cognitive barriers to programming,
with spreadsheets and computer-aided-design systems
being the classic examples. We contend that computational
scientists can benefit from the application of techniques
discussed in [4] and [5] to their tasks.
Spreadsheets offer a good example of a powerful and
flexible combination of direct manipulation and textual
programming. To specify the sum of a range of cells in
Microsoft Excel *,
the user can either type the SUM
function, or click on the _ key on the toolbar. To specify
the range of cells to be summed, she or he can drag the
mouse across the relevant cells, or type the cell addresses.
This is a very simple example of a powerful class of
programming tools which we are pursuing in our research.
Some of the simulation models store the cluster in a tree
structure, and the analysis procedures can be quite
sophisticated. One researcher whom we interviewed had
written over ten thousand lines of analysis code. The same
researcher had implemented his own three-byte integers to
save memory. Clearly, DLA research involves writing real
programs.
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 literature search 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.
PREDLA is being written in MIT Scheme [1], 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. PREDLA will also support the
representation of arbitrary functions as combinations of
graphics and text which can be called by direct
manipulation.
Since research paths are difficult to anticipate, there will be
times when a researcher will need to add functionality that
PREDLA does not provide, such as a new simulation
model, or a new analysis technique. PREDLA's design
supports this process, too. PREDLA will not be a
monolithic application, but consists 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.
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.
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
likely to produce a more accurate portrait of PREDLA's
strengths and weaknesses.
Abstract
As domain experts with programming expertise,
computational scientists require the flexibility of
programming languages, yet appreciate the convenience
and power of direct-manipulation interfaces and scientific
visualization tools. Although traditionally separate, direct-
manipulation and programming can support each other in
the same application [2]. In such an environment, graphic
and textual language elements can be freely intermingled.
We are in the process of developing a programmable
environment to support research in diffusion-limited
aggregation (DLA), an area of computational science, as an
exploration of the issues surrounding these ideas.
Keywords:
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 [3]. The needs of computational
scientists span these categories, since they construct
sophisticated programs using general-purpose
environments, yet (like end users) they are interested in
computation only to the extent that it addresses a problem
in the domain of interest. This situation suggests that a
hybrid environment would provide the best support for
their research activities.
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 [6]. 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.
A PROGRAMMABLE RESEARCH ENVIRONMENT
To explore the intertwined 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.
GOALS
PREDLA is designed to support different kinds of
interaction with a DLA simulation, so that an individual
researcher can choose a combination of tools appropriate to
the task at hand and to her or his own inclination.
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.
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.
Clinger, W. and Rees, J. Revised4 Report on the
Algorithmic Language Scheme. MIT AI Memo No.
848b, 1991.
2. Eisenberg, M. Programmable Applications: Interpreter
Meets Interface. MIT AI Memo No. 1325, 1991.
3.
Glinert, E. P. Visual Programming Environments:
Paradigms and Systems. IEEE Computer Society
Press, 1990.
4. Lewis, C. and Olson, G. Can Principles of Cognition
Lower the Barriers to Programming? in Empirical
Studies of Programmers, Second Workshop. Ablex
Publishing, 1986.
5. Nardi, B. A Small Matter of Programming::
Perspectives on End User Computing. MIT Press,
1993.
6. Witten, T.A. and Sander, L.M. Diffusion-Limited
Aggregation, a Kinetic Critical Phenomenon. Physical
Review Letters. 47, 19, p. 1400.
FOOTNOTES
Return to text