More Natural Programming Through User Studies

Brad Myers   Brad Myers, Human Computer Interaction Institute, School of Computer Science, Carnegie Mellon University

Seminar on People, Computers, and Design
Stanford University September 28, 2007

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 focused on programming environments and libraries. 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" debugging tool 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 help eliminate this overhead. When learning how to use new libraries, we observed that programmers tend to try to adapt examples, so developed 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 we designed a prototype environment that provides
more support.

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

For more information, see

Brad A. Myers is a Professor in the Human-Computer Interaction Institute in the School of Computer Science at Carnegie Mellon University. He is an ACM Fellow, and a member of the CHI Academy, an honor bestowed on the principal leaders of the field. He is the principal investigator for the Pebbles Handheld Computer Project and the Natural Programming Project, and previously led the Amulet and Garnet projects. He is the author or editor of over 300 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. His research interests include user interface development systems, user interfaces, handheld computers, programming environments, programming language design, programming by example, visual programming, interaction techniques, and window management. He is a Senior Member of the IEEE, and also belongs to SIGCHI, ACM, the IEEE Computer Society, and Computer Professionals for Social Responsibility.

View this talk on line at CS547 on Stanford OnLine or using this video link.

Titles and abstracts for previous years are available by year and by speaker.