Keynote: Brad Myers

Engineering More Natural Interactive Programming Systems


We are all familiar with computing systems that are used by developers to create interactive computing systems for others. This includes the languages, libraries, and interactive development environments that we use every day. The Natural Programming Project has been working on tools, techniques and methods for designing and developing these systems, using methods from the HCI and Software Engineering fields. We have performed many studies about the barriers developers face performing their tasks, and people’s natural expression of algorithms for new applications. We have created a wide variety of languages, tools and techniques that take advantage of this new knowledge. User studies of these techniques often show a dramatic impact in developer productivity. For example, we studied novice and expert programmers debugging their code, 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 increases productivity by about a factor of two. We studied the usability of APIs, such as the Java SDK, and discovered some common patterns that make programmers up to 10 times slower in finding and using the appropriate methods. This talk will provide an overview of our studies and the resulting designs as part of the Natural Programming project.

Brad A. Myers

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 Natural Programming Project, and the Pebbles Handheld Computer Project and and previously led the Amulet and Garnet projects. He is the author or editor of over 350 publications, including the books “Creating User Interfaces by Demonstration” and “Languages for Developing User Interfaces,” and he has been on the editorial board of five journals. He has been a consultant on user interface design and implementation to over 60 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.