Call for Papers
City of San Francisco
Sponsors & Supporters
Improving Program Comprehension by Answering Questions
Speaker: Prof. Brad A. Myers
Human Computer Interaction Institute
School of Computer Science
Carnegie Mellon University
My Natural Programming Project is working on making software development easier to learn, more effective, and less error prone. An important focus over the last few years has been to discover what are the hard-to-answer questions that developers ask while they are trying to comprehend their programs, and then to develop tools to help answer those questions. For example, by studying programmers working on every-day bugs, we found that they continuously are asking "Why" and "Why Not" questions as they try to comprehend what happened, 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 professional programmers trying to understand unfamiliar code, and identified over 100 questions they identified as hard-to-answer. In particular, we saw that programmers frequently had specific questions about the feasible execution paths, so we developed a new visualization tool to directly present this information. When trying to use unfamiliar APIs, such as the Java SDK and the SAP eSOA APIs, we discovered some common patterns that make programmers up to 10 times slower in finding and understanding how to use the appropriate methods, so we developed new tools to compensate. This talk will provide an overview of our studies and resulting tools that address program comprehension issues.
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 IEEE Fellow, 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 400 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 75 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 belongs to SIGCHI, ACM, IEEE, and the IEEE Computer Society.
Contact him at: bam at cs dot cmu.edu