J.F. Pane, "A Programming System for Children that is Designed for Usability," Ph.D. Thesis, Carnegie Mellon University, Computer Science Department, CMU-CS-02-127, Pittsburgh, PA, May 3, 2002.
(also appears as Carnegie Mellon University Human Computer Interaction Institute Technical Report CMU-HCII-02-101)
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 thesis describes a new process for designing programming systems where HCI knowledge, principles and methods play an important role in all design decisions. The process began with an exhaustive review of three decades of research and observations about the difficulties encountered by beginner programmers. This material was catalogued and organized for this project as well as for the benefit of other future language designers. Where questions remained unanswered, new studies were designed and conducted, to examine how beginners naturally think about and express problem solutions. These studies revealed ways that current popular programming languages fail to support the natural abilities of beginners.
All of this information was then used to design HANDS, a new programming system for children. HANDS is an event-based system featuring a concrete model for computation based on concepts that are familiar to non-programmers. HANDS provides queries and aggregate operations to match the way non-programmers express problem solutions, and includes domain-specific features to facilitate the creation of interactive animations and simulations. In user tests, children using the HANDS system performed significantly better than children using a version of the system that lacked several of these features. This is evidence that the process described here had a positive impact on the design of HANDS, and could have a similar impact on other new programming language designs.
The contributions of this thesis include a survey of the knowledge about beginner programmers that is organized for programming system designers, empirical evidence about how non-programmers express problem solutions, the HANDS programming system for children, a new model of computation that is concrete and based on familiar concepts, an evaluation of the effectiveness of key features of HANDS, and a case study of a new user-centered design process for creating programming systems.
Thesis (excluding appendices):
PaneThesis.pdf (22.5 MB).
PaneThesisAppendices.pdf (14 MB).
Thesis Summary (Chapter 1 only):
PaneThesisCh1.pdf (1 MB).
firstname.lastname@example.org (last modified on 20020913)