Creativity support in authoring and backtracking

The “Natural Programming” group has been working for 15 years on making it easier for all kinds of programmers to be creative when writing software. Recently, one focus has been enabling “end-user programmers” (EUPs) such as interaction designers to more easily author interactive behaviors for the web. In a separate project, we are adding features to a code editor to support “backtracking” — undoing operations to partially or fully restore the code to a previous state — since creative exploration usually involves both moving forward to new designs and going backwards to retract some or all of the design that is not desired. In all of these projects, we seek to measure both the usability of our tools, and their effectiveness at fostering creativity. Author

[1]  Brad A. Myers,et al.  ConstraintJS: programming interactive behaviors for the web by integrating constraints and states , 2012, UIST '12.

[2]  Philip J. Guo,et al.  Opportunistic Programming: Writing Code to Prototype, Ideate, and Discover end-us e r soft war e e ngine e ring , 2009 .

[3]  Brad A. Myers,et al.  Designers’ natural descriptions of interactive behaviors , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

[4]  J. P. Guilford,et al.  Intelligence, creativity, and their educational implications , 1968 .

[5]  Susan Stewart,et al.  Design Thinking: Understanding How Designers Think and Work , 2011 .

[6]  J. Forlizzi,et al.  From Design Research to Theory : Evidence of a Maturing Field , 2009 .

[7]  Brad A. Myers,et al.  Finding causes of program output with the Java Whyline , 2009, CHI.

[8]  Mary Shaw,et al.  The state of the art in end-user software engineering , 2011, ACM Comput. Surv..

[9]  Daniel L. Schwartz,et al.  Parallel prototyping leads to better design results, more divergence, and increased self-efficacy , 2010, TCHI.

[10]  Bill Buxton,et al.  Sketching User Experiences: Getting the Design Right and the Right Design , 2007 .

[11]  D. Schoen The Reflective Practitioner , 1983 .

[12]  Brad A. Myers Creating dynamic interaction techniques by demonstration , 1987, CHI 1987.

[13]  Brad A. Myers,et al.  Reusable hierarchical command objects , 1996, CHI.

[14]  Brian Ellis,et al.  The Factory Pattern in API Design: A Usability Evaluation , 2007, 29th International Conference on Software Engineering (ICSE'07).

[15]  James A. Landay,et al.  Interactive sketching for the early stages of user interface design , 1995, CHI '95.

[16]  Yasuhiro Yamamoto,et al.  Interaction design of tools for fostering creativity in the early stages of information design , 2005, Int. J. Hum. Comput. Stud..

[17]  Brad A. Myers,et al.  An exploratory study of backtracking strategies used by developers , 2012, 2012 5th International Workshop on Co-operative and Human Aspects of Software Engineering (CHASE).

[18]  Thomas D. LaToza,et al.  Visualizing call graphs , 2011, 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[19]  Jean-Michel Hoc,et al.  Language Semantics, Mental Models and Analogy , 1990 .

[20]  Brad A. Myers,et al.  Getting more out of programming-by-demonstration , 1999, CHI '99.

[21]  Brad A. Myers,et al.  Citrus: a language and toolkit for simplifying the creation of structured editors for code and data , 2005, UIST '05.

[22]  Scott R. Klemmer,et al.  Example-centric programming: integrating web search into the development environment , 2010, CHI.

[23]  John Zimmerman,et al.  Visions for Euclase: Ideas for Supporting Creativity through Better Prototyping of Behaviors Position paper for the ACM CHI 2009 Workshop on Computational Creativity Support , 2009 .

[24]  Bradley R. Schmerl,et al.  Agent-assisted task management that reduces email overload , 2010, IUI '10.

[25]  Brad A. Myers,et al.  How designers design and program interactive behaviors , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

[26]  Brad A. Myers,et al.  Using HCI techniques to design a more usable programming system , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

[27]  John Zimmerman,et al.  How to support designers in getting hold of the immaterial material of software , 2010, CHI.

[28]  Thomas Berlage,et al.  A selective undo mechanism for graphical user interfaces based on command objects , 1994, TCHI.

[29]  Thomas R. G. Green,et al.  Cognitive dimensions of notations , 1990 .

[30]  P. Hyland,et al.  Eliciting and specifying requirements for highly interactive systems using activity theory , 2005 .

[31]  B. Myers Creating dynamic interaction techniques by demonstration , 1987, CHI '87.

[32]  Thomas D. LaToza,et al.  Developers ask reachability questions , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[33]  Brad A. Myers,et al.  Natural programming languages and environments , 2004, Commun. ACM.

[34]  Philip J. Guo,et al.  Writing Code to Prototype, Ideate, and Discover , 2009, IEEE Software.

[35]  Mary Beth Rosson,et al.  The reuse of uses in Smalltalk programming , 1996, TCHI.

[36]  Elizabeth D. Mynatt,et al.  Side views: persistent, on-demand previews for open-ended tasks , 2002, UIST '02.