Marmalade a more helpful programming environment
 

Publications

These are publications related to project Marmalade sorted in reverse chronological order.

Articles from Marmalade Project

Ko, A. J. (2004).
Designing a Flexible and Supportive Direct-Manipulation Programming Environment..
To appear at the IEEE Symposium on Visual Languages and Human-Centric Computing, Rome, Italy, September 26-29.

PDF
An important part of helping learners detect, repair and avoid software errors is providing semantic support for learners while they manipulate their code. Unfortunately, usability aspects of both textual and direct-manipulation environments limit their ability to provide such support. Preliminary findings from exploratory studies are discussed, and several design requirements for a more flexible and supportive programming environment are identified.
Ko, A. J., Myers, B. A., Aung, H. (2004).
Six Learning Barriers in End-User Programming Systems.
To appear at the IEEE Symposium on Visual Languages and Human-Centric Computing, Rome, Italy, September 26-29.

PDF
As programming skills increase in demand and utility, the learnability of end-user programming systems is of utmost importance. However, prior research on learning barriers in programming systems has primarily focused on languages, overlooking potential learning barriers in the environment and accompanying libraries. To address this, a study of beginning programmers learning Visual Basic.NET was performed. This identified six types of learning barriers: design, selection, coordination, use, understanding, and information. These barriers inspire a new metaphor of computation, which provides a more learner-centric view of programming system design.
Ko, A. J. and Myers, B. A.
A Framework and Methodology for Studying the Causes of Software Errors in Programming Systems.
To appear in the Journal of Visual Languages and Computing.

PDF
Programmers' work is often defined by the correctness, robustness, and flexibility of their code, rather than the efficiency with which they produce it. This makes current usability analysis techniques ill-suited to analyze programming systems, since their focus is more on problems with learnability and efficiency of use, and less on error-proneness. We propose a framework and empirical methodology that focuses specifically on describing the causes of software errors in terms of chains of cognitive breakdowns. The framework is derived from past classifications of software errors, psychological studies of software errors, and research on the mechanisms of human error. Our experiences using the framework to study errors in the Alice programming system suggests that our methodology can help highlight common causes of software errors, and provide important design knowledge for reducing programming error-proneness. We believe our contribution has important implications for programming system design, software engineering, the psychology of programming, and computer science education.
Myers, B. A., Pane, J. F. and Ko, A.
Natural Programming Languages and Environments.
To appear in Communications of the ACM.

PDF
Over the last six years, we have been working to create programming languages and environments that are or closer to the way people think about their tasks. The goal is to make it possible for people to express their ideas in the same way they think about them. To achieve this, we performed various studies about how people think about programming tasks, both when trying to create a new program and when trying to find and fix bugs in existing programs. We then used this knowledge to develop new tools for programming and debugging. Our user studies have shown that the resulting systems provide significant benefits to users.
Ko, A. J. and Myers, B. A. (2004).
Designing the Whyline: A Debugging Interface for Asking Questions About Program Failures
CHI 2004, Vienna, Austria, April 24-29, 151-158..

PDF
Debugging is still among the most common and costly of programming activities. One reason is that current debugging tools do not directly support the inquisitive nature of the activity. Interrogative Debugging is a new debugging paradigm in which programmers can ask why did and even why didn't questions directly about their s runtime failures. The Whyline is a prototype Interrogative Debugging interface for the Alice programming environment that visualizes answers in terms of runtime events directly relevant to a s question. Comparisons of identical debugging scenarios from user tests with and without the Whyline showed that the Whyline reduced debugging time by nearly a factor of 8, and helped programmers complete 40% more tasks.
Ko, A. J. and Myers, B. A. (2003).
Development and Evaluation of a Model of Programming Errors.
IEEE Symposia on Human-Centric Computing Languages and Environments, Auckland, New Zealand, October 28th-31st, 7-14.

PDF
This is the original conference version of our journal paper above. It briefly describes prior work on classifying errors, and proposes a new framework for studying the causes of software errors. For all of the details and an empirical methodology for studying the causes of software errors, see the journal paper.
Ko, A. J. (2003).
Preserving Non-Programmers Motivation with Error-Prevention and Debugging Support Tools.
IEEE Symposia Human-Centric Computing Languages and Environments, Auckland, New Zealand, October 28th-31st, 271-272.

PDF
This was an abstract written for the computer science education special event at Human-Centric Computing Languages and Environments 2003. It talks about our approaches to preserving motivation by breaking cycles of errors in learning to program.
Ko, A. J. (2003).
A Contextual Inquiry of Expert Programmers in an Event-Based Programming Environment.
CHI 2003 Extended Abstracts, Fort Lauderdale, FL, April 8th-10th, 1036-1037.

PDF
This is a student poster abstract of our initial studies of Alice, presented at CHI 2003. Here we briefly describe some early ideas for tools to prevent common software errors.

Articles by Others About This Work

Articles About the Natural Programming Project

For publications part of the Natural Programming Project, see the publication listing on the Natural Programming project page.