11/22/2002 10:00am-12:00pm ECOT 831
|
Programmorphosis: Sustained Wizard Support for End-User Programming
Computer Science PhD Candidate
Whereas sophisticated computer users have the ability to exercise more control
in what they are exposed to, the technologically challenged end-users remain at
the mercy of information producers and thus assume a more passive role in the
information society. Being able to control information delivery and produce
computational artifacts not only gives users a higher control over what is
directed to them, but also gives them control on what is created and
communicated to others. Furthermore, empowering end-users to create
computational content is an educationally effective and rewarding activity.
However, programming is necessary for constructing such artifacts. While
learning how to program is not impossible for these end-users, it is usually
quite difficult and uninteresting. The high cost/benefit ratio of programming
stemming from pragmatic concerns, such as the time required to master a
programming language, keeps end-users away from programming - and away from the
benefits it can afford.
This dissertation describes Programmorphosis, a multi-layered approach to
end-user programming, which, at the highest level, enables novice end-user
programmers to define behaviors of interacting agents in a high-level abstract
language. In Programmorphosis, behavior genres are used to group and structure
domain concepts in a template. Specifying behaviors is achieved by altering
behavioral parameters in templates in a wizard environment (the Behavior Wizard)
that subsequently generates lower-level executable code. Therefore, the
programming process transforms into a task of modification and customization of
reusable templates and the program itself transforms from a high level
specification to low-level executable code.
The Programmorphosis approach contributes to end-user programming research by
(1) introducing sustained wizard support for all phases of the programming task;
(2) featuring an extensible multi-layered programming architecture;
(3) supporting exploratory programming, which affords a shorter turnaround in
the modify-generate-and-test cycle; (4) enabling focus on the problem domain,
not programming; and (5) as a tool for use in educational settings,
facilitating structured constructionism.
|