"Watch What I Do" Chapter 23


Making Programming Accessible
to Visual Problem Solvers

Henry Lieberman


Graphic designers, architects, multimedia designers, animators and users of CAD/CAM systems are experts in visual problem solving. To date, computer-based graphic editing tools provide these people with the means to display and edit visual representations of their designs, but provide little explicit support for the problem-solving processes that visual designers perform. A study of how knowledge is actually communicated in visual design domains shows that visual designers rely heavily on the generation and critique of visual examples. Programming by demonstration is a technique that permits the construction of programs directly from the presentation of graphical examples, together with some explanation of them. This paper presents a scenario of how a particular demonstrational technique, graphical annotation, can be used to convey the structure of a design to permit a system to perform layout tasks automatically.

The goal of a graphic designer or multimedia designer is often to create a graphic artifact that serves to communicate some information to a viewer. The designer must encode his or her communication intentions in some structured representation of media objects that reside in a graphical editor.

The problem is that the current generation of graphic editors keeps only the results of design choices, that is, only the arrangement of media elements the designer has chosen. This is fragile, because if any of the assumptions responsible for the current set of graphic choices changes, the design may no longer be valid as a solution to its communication goals. If, for example, the amount of space on the screen or page changes, the correct response to such a change is not simply to stretch or shrink the design, but to change decisions about typeface, aspect ratio or placement of elements. The designer must redesign the artifact "as if" the new situation had been present from the beginning, while preserving as much of the original reasoning [not necessarily the original data!] as possible. This process is tedious and error-prone, and it is here that computer assistance could be of real help to the designer.

Culturally, designers are comfortable with direct manipulation of the visual elements of a design, and not comfortable at all with textual input of abstract concepts. So a possible approach might be to use concrete visual examples as the representation of abstract concepts in the domain of visual design.

back to ... Table of Contents Watch What I Do