Getting more out of programming-by-demonstration

Programming-by-demonstration (PBD) can be used to create toolsand methods that eliminate the need to learn difficult computerlanguages. Gamut is a PBD tool that nonprogrammers can use tocreate a broader range of interactive software, including games,simulations, and educational software, than they can with other PBDtools. To do this, Gamut provides advanced interaction techniquesthat make it easier for a developer to express all aspects of anapplication. These techniques include a simplified way todemonstrate new examples, called nudges, and a way to highlightobjects to show they are important. Also, Gamut includes newobjects and metaphors like the deck-of-cards metaphor fordemonstrating collections of objects and randomness, guide objectsfor demonstrating relationships that the system would find toodifficult to guess, and temporal ghosts which simplify showingrelationships with the recent past. These techniques were tested ina formal setting with nonprogrammers to evaluate theireffectiveness.