More Natural Programming Through User Studies

The Natural Programming Project is working on making programming languages and environments easier to learn, more effective, and less error prone. We are taking a human-centered approach, by first studying how people perform their tasks, and then designing languages and environments that take into account people’s natural tendencies. Early work focused on designing languages for novices based on how people think about expressing algorithms and tasks. Current work is more focused on programming environments. We studied novice and expert programmers working on every-day bugs, and found that they continuously are asking “Why” and “Why Not” questions, so we developed the “WhyLine” which allows programmers to directly ask these questions of their programs and get a visualization of the answers. The WhyLine decreased debugging time by a factor of 8 and increased programmer productivity by 40%. We studied typical maintenance tasks and discovered that programmers spend about 38% of their time navigating around code, and so we are in the process of designing a new tool to eliminate the need for this. When learning new SDKs, we observed that programmers tend to try to adapt examples, so we are working on techniques to make reuse of example code easier. For editing of code, our studies show that people do not require the full flexibility of text editing, so a more supportive environment may be possible.

This talk will provide an overview of our studies and resulting designs as part of the Natural Programming project.

For more information, see http://www.cs.cmu.edu/~NatProg

Speaker Details

Brad A. Myers is a Professor in the Human-Computer Interaction Institute in the School of Computer Science at Carnegie Mellon University, where he is the principal investigator for various research projects including: the Pebbles Hand-Held Computer Project, Natural Programming, User Interface Software, and Demonstrational Interfaces. He is the author or editor of over 250 publications, including the books “Creating User Interfaces by Demonstration” and “Languages for Developing User Interfaces,” and he is on the editorial board of five journals. He has been a consultant on user interface design and implementation to over 50 companies, and regularly teaches courses on user interface design and software. Myers received a PhD in computer science at the University of Toronto where he developed the Peridot UIMS. He received the MS and BSc degrees from the Massachusetts Institute of Technology during which time he was a research intern at Xerox PARC. From 1980 until 1983, he worked at PERQ Systems Corporation. In 2004, he was elected to the CHI Academy, an honor bestowed on the principal leaders of the field, whose efforts have shaped the discipline and led the research in human-computer interaction. His research interests include user interface development systems, user interfaces, hand-held computers, programming by example, programming languages for kids, visual programming, interaction techniques, window management, and programming environments. He belongs to SIGCHI, ACM, IEEE Computer Society, IEEE, and Computer Professionals for Social Responsibility.http://www.cs.cmu.edu/~bam

Date:
Speakers:
Brad A. Myers
Affiliation:
Carnegie Mellon University