skip to main content
A programming system for children that is designed for usability
Publisher:
  • Carnegie Mellon University
  • Schenley Park Pittsburgh, PA
  • United States
ISBN:978-0-493-65343-3
Order Number:AAI3051022
Pages:
431
Bibliometrics
Skip Abstract Section
Abstract

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.

Cited By

  1. ACM
    Kölling M and McKay F (2016). Heuristic Evaluation for Novice Programming Systems, ACM Transactions on Computing Education, 16:3, (1-30), Online publication date: 27-Jun-2016.
  2. ACM
    Fleming S, Scaffidi C, Piorkowski D, Burnett M, Bellamy R, Lawrance J and Kwan I (2013). An Information Foraging Theory Perspective on Tools for Debugging, Refactoring, and Reuse Tasks, ACM Transactions on Software Engineering and Methodology (TOSEM), 22:2, (1-41), Online publication date: 1-Mar-2013.
  3. ACM
    Namoun A, Wajid U, Mehandjiev N and Owrak A User-centered design of a visual data mapping tool Proceedings of the International Working Conference on Advanced Visual Interfaces, (473-480)
  4. ACM
    Wang D, Zhang C and Wang H T-Maze Proceedings of the 10th International Conference on Interaction Design and Children, (127-135)
  5. ACM
    Dahotre A, Zhang Y and Scaffidi C A qualitative study of animation programming in the wild Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, (1-10)
  6. ACM
    Myers B, Ko A, Park S, Stylos J, LaToza T and Beaton J More natural end-user software engineering Proceedings of the 4th international workshop on End-user software engineering, (30-34)
  7. ACM
    Fetter M and Gross T Contact management on the wall Proceedings of the 2nd international conference on Tangible and embedded interaction, (247-250)
  8. ACM
    Broy V, Althoff F and Klinker G iFlip Proceedings of the working conference on Advanced visual interfaces, (155-158)
  9. ACM
    Weiher M and Ducasse S Higher order messaging Proceedings of the 2005 symposium on Dynamic languages, (23-34)
  10. ACM
    Myers B, Pane J and Ko A (2004). Natural programming languages and environments, Communications of the ACM, 47:9, (47-52), Online publication date: 1-Sep-2004.
  11. ACM
    Klemmer S, Li J, Lin J and Landay J Papier-Mache Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, (399-406)
  12. Warren P Learning to program Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30, (327-333)
  13. ACM
    Myers B Towards more natural functional programming languages Proceedings of the seventh ACM SIGPLAN international conference on Functional programming, (1-1)
  14. ACM
    Myers B (2002). Towards more natural functional programming languages, ACM SIGPLAN Notices, 37:9, (1-1), Online publication date: 17-Sep-2002.
Contributors
  • RAND Corporation
  • Carnegie Mellon University
  • Carnegie Mellon University

Recommendations