Danny Dig with his students and collaborators won four prestigious research paper awards at international conferences this year. Dig, an associate professor of computer science in the College of Engineering at Oregon State University, researches software engineering. His focus is on interactive program transformations that improve programmer productivity and software quality.
Distinguished Paper Award (awarded by ACM SIGSOFT at FSE ’17)
Oregon State University faculty and students were well represented at the premiere software engineering conference, ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE 2016) in Seattle November 13-18, 2016.
Distinguished Professor Margaret Burnett gave a keynote address titled Womenomics and Gender-Inclusive Software: What Software Engineers Need to Know, and five of the 74 papers presented there were from Oregon State which is an honor in itself. However, two of those papers were selected to receive Distinguished Paper Awards. Both papers aim to improve the efficiency of software development:
API Code Recommendation Using Statistical Learning from Fine-grained Changes
by Anh Nguyen, Michael Hilton, Mihai Codoban, Hoan Nguyen, Lily Mast, Eli Rademacher, Tien Nguyen and Danny Dig
Abstract: Learning and remembering how to use APIs is difficult. While code- completion tools can recommend API methods, browsing a long list of API method names and their documentation is tedious. Moreover, users can easily be overwhelmed with too much information. We present a novel API recommendation approach that taps into the predictive power of repetitive code changes to provide relevant API recommendations for developers. Our approach and tool, APIREC, is based on statistical learning from fine-grained code changes and from the context in which those changes were made. Our empirical evaluation shows that APIREC correctly recommends an API call in the first position 59% of the time, and it recommends the correct API call in the top 5 positions 77% of the time. This is a significant improvement over the state-of-the-art approaches by 30-160% for top-1 accuracy, and 10-30% for top-5 accuracy, respectively. Our result shows that APIREC performs well even with a one-time, minimal training dataset of 50 publicly available projects.
Foraging and Navigations, Fundamentally: Developers’ Predictions of Value and Cost
by David Piorkowski, Austin Henley, Tahmid Nabi, Scott Fleming, Christopher Scaffidi and Margaret Burnett
Abstract: Empirical studies have revealed that software developers spend 35%–50% of their time navigating through source code during development activities, yet fundamental questions remain: Are these percentages too high, or simply inherent in the nature of software development? Are there factors that somehow determine a lower bound on how effectively developers can navigate a given information space? Answering questions like these requires a theory that captures the core of developers’ navigation decisions. Therefore, we use the central proposition of Information Foraging Theory to investigate developers’ ability to predict the value and cost of their navigation decisions. Our results showed that over 50% of developers’ navigation choices produced less value than they had predicted and nearly 40% cost more than they had predicted. We used those results to guide a literature analysis, to investigate the extent to which these challenges are met by current research efforts, revealing a new area of inquiry with a rich and crosscutting set of research challenges and open problems.
Dig’s research focus for the last 8 years has been on techniques for transforming sequential code into parallel code. He is acutely aware of the need for software developers to learn these techniques now that all new devices from smartphones to desktops use parallel processors. In response, he has organized workshops at Boeing and the Illinois-Intel Parallelism Center at the University of Illinois Urbana-Champaign to help professional programmers improve the performance of their applications by using parallelism in software.
Dig will instruct the class along with other software experts including Tim Matsson from Intel Corporation who is co-author of the influential book, “Patterns for Parallel Programming,” and Doug Lea, professor at State University of New York at Oswego and the lead architect of Java concurrency libraries.
“I teach it as a unique blend of lectures and labs that are deeply integrated. It’s not theoretical, it’s very hands-on,” Dig said. After 30 minutes of lecture, students work on planned exercises on their own laptops with help from teaching assistants.
Dig said that the very pragmatic approach has been well received by past participants. For example, a Boeing engineer commented: “Excellent course: relevant, well done, timely. Well worth the time and effort. I would recommend this course to all our developers.”
This is the first time he will offer the class in a compressed format over a weekend instead of a full week, to make it easier for software developers to attend without missing work. The shortened course cannot cover all the same content, so he will offer additional resources for the material not covered, and there is a possibility he would offer a follow-up course based on interest.
Dig is excited to be hosting the class in Portland, a hub of software development, so he can start building relationships with local software practitioners.
“A constant dialogue with practitioners keeps my research centered and very focused on current software development problems,” he said.
But these classes fulfill another need for him as well.
“Fundamentally, I’m a teacher and I love seeing the lights go on — it’s my mission in life to help people develop their full potential,” Dig said.