Using HCI Techniques to Design a More Usable Programming System

J.F. Pane, B.A. Myers, and L.B. Miller, "Using HCI Techniques to Design a More Usable Programming System," Proceedings of IEEE 2002 Symposia on Human Centric Computing Languages and Environments (HCC 2002), Arlington, VA, September 3-6, 2002, pp. 198-206.

A programming system is the user interface between the programmer and the computer. Programming is a notoriously difficult activity, and some of this difficulty can be attributed to the user interface as opposed to other factors. Historically, the designs of programming languages and tools have not emphasized usability. This paper describes the process we used to design HANDS, a new programming system for children that focuses on usability, where HCI knowledge, principles, and methods guided all design decisions. The features of HANDS are presented along with their motivations from prior empirical research on programmers and new studies conducted by the authors. HANDS is an event-based language that features a concrete model for computation, provides operators that match the way non-programmers express problem solutions, and includes domain-specific features for the creation of interactive animations and simulations. In user tests, children using HANDS performed significantly better than children using a reduced-feature version of the system where more traditional methods were required to solve tasks.

Most influential paper award:
This paper was awarded the most influential paper from ten years ago at the 2012 IEEE Symposium on Visual Languages and Human-Centric Computing.

Full text of this paper:
PaneMyersMillerHANDSDesign.pdf (2.9 MB).

John Pane's Home Page
Natural Programming Project Page (last modified on 20020615)