Martin Erwig and Margaret Burnett are part of a team working to advance exploratory programming with a $3 million grant from NSF.

Anyone who has struggled with a spreadsheet formula that is producing mysterious results can appreciate a program that would give hints to help identify and solve the problem.

Computer science professors Martin Erwig and Margaret Burnett at Oregon State University aim to improve the experience of computer programming for all levels, including professional programmers and users of packaged programs — known as “end users.”

Recognized as leaders in the area of end-user software engineering, Erwig and Burnett with their collaborators received a 4-year grant from the National Science Foundation totaling $3 million, of which $857,141 was awarded to Oregon State. The grant brings together a group of top end-user software engineering researchers with expertise in several areas including programming languages, software engineering, human-computer interaction and education. The other universities involved are Carnegie Mellon University, University of Nebraska–Lincoln and University of Washington.

The project builds on Erwig’s theoretical work to help users reason about possible variations of their programs. Many end users and professional programmers employ a type of exploratory programming to investigate different variations of their code, but multiple choices can produce an unwieldy number of program variants.

“For example, several popular software systems offer more than 250 choices for configuration, which can generate more variants of the software than there are atoms in the universe,” Erwig said.

“Obviously, it would be impossible to generate every variant to check a particular property. So we need new ways of reasoning about software that contain choices.”

Burnett’s research focuses on developing tools to help users navigate the overwhelming possibilities they face during programming. Her human-computer interaction research involves drawing from theories in both computer science and psychology that she then tests with empirical studies.

One tool she has developed, called the “Idea Garden” decorates bits of code to notify a user that there is a hint available to them if they are having trouble problem-solving their program’s behavior. The suggestions give just enough information to point users in the right direction.

“The hints do not try to fix the problem for them. Instead, they help users learn to be better problem solvers so they won’t get stuck the next time,” Burnett said.

The overall goal is to make exploratory programming more productive and more accessible to a wide range of users. In addition, some of its education and outreach activities aim to increase the diversity in the field of computing. For example, the grant supports programs with undergraduates and high-school students to encourage interest in computing with younger students from a variety of backgrounds.