Margaret Burnet
Margaret Burnett gives a keynote address at FSE 2016.

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

Distinguished Paper Award
Distinguished Paper Award, FSE 2016. Pictured (left to right): Mihai Codoban (OSU alumus, now at Microsoft), Danny Dig (OSU), Michael Hilton (OSU) , Tien Nguyen (UT Dallas.) and three conference organizers.

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

Distinguished Paper Award, FSE 2016.
Distinguished Paper Award, FSE 2016. Pictured (left to right) Margaret Burnett (OSU), Scott Fleming (Univ. Memphis, former OSU postdoc), David Piorkowski (OSU alum, now at IBM Research), Austin Henley (Univ. Memphis), and three conference organizers.

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.

Chris ScaffidiGuest post by:
Prof. Chris Scaffidi, computer science, Oregon State University

Many people ask me whether they should pursue graduate school in computer science. Answering this question requires explaining what graduate school is good for.

For the Ph.D., the answer is relatively simple. A Ph.D. primarily focuses on training students to do research. It also provides other skills, but that is the main focus. As such, it is appropriate and necessary training for anyone who wants to become a tenured professor.

For the master’s degree, the answer deserves more discussion. It is also an important discussion because almost 85% of all graduate degrees granted in computer science were master’s degrees (according to the 2015 Taulbee Survey). To avoid relying on just my own opinions, I asked six students who have graduated from the master’s program at Oregon State University about what their training had accomplished, what aspects of the program were most valuable, and whether the value justified the cost overall.

Improved capabilities

My former students explained that earning a master’s degree in computer science expanded four areas of capabilities.

  1. Graduate school developed these former students’ ability to master material efficiently. One student explained that his employer valued his “ability to quickly grasp existing knowledge on some relatively advanced topics.” Others also commented on their enhanced ability to learn new frameworks, languages, concepts, and tools.
  2. They also commented on how the program increased their problem-solving skills. This manifested differently for each person. One noted that he had “a more rounded way of approaching problems,” while another commented that supervisors “appreciate my critical thinking ability, [and] a systematic approach to problem solving.”
  3. Several former students commented on how the program had strengthened communication skills. One indicated, “In my experience, my employer values my presentation and writing skills just as much as my technical knowledge.”
  4. Finally, they commented on the value of specific technical knowledge obtained from graduate school. This included AI, machine learning, Big Data, Java, JavaScript, and other specific technologies that my former students now use in their work.

Valuable aspects of graduate school

Three aspects of graduate school came up as being of most value.

  1. All but one former student commented on how their project experiences contributed to knowledge. All of these developed computer software during their studies, as part of their research projects. Actually doing advanced software development with a mentor, rather than just learning about it, provided a context for skill development. For example, one wrote, “Graduate school was a lot different [from undergraduate studies] because I had to go further out of my comfort zone to succeed, learning new languages and systems as needed” while another summarized “It’s all about the people and the projects.”
  2. Several noted the importance of finding faculty willing to connect their expertise to students’ needs. This is a team effort — the advisor (me) has a only a certain range of expertise, which meant that students also valued getting help from other helpful faculty who taught courses outside my own range. For instance, one former student wrote, “All faculty members and existing grad students are doing interesting work, and everyone is approachable.”
  3. Finally, all noted the importance of industry-relevant experiences, in addition to research. These included doing internships, using technologies relevant to industry needs, and interacting with people from industry. In fact, several pointed out the need to strengthen these aspects of our program at Oregon State University. (All six of these former students were doing research, as they started the program prior to our new master’s track tailored to the needs of students who want to pursue a career in industry, rather than in research.) For example, one commented on the importance of “classes that are geared towards master’s students who want to go on and become software developers and want to gain knowledge about practical applications of theoretical concepts.”

Does the value exceed the cost?

The five students reported to me that they incurred between $0 and $20,000 in total out-of-pocket costs, due to the fact that they received assistantships for some or all of their terms at Oregon State University.

So, in the end, was obtaining a master’s degree worth it? All confirmed that the value exceeded the cost. One pointed out that people with master’s degrees often have higher salaries than those with bachelor’s. The difference appears to be approximately $7,000 per year right now, varying somewhat based on job title and location (according to data for bachelor’s and master’s degrees). The payoff might not be immediate, however. For example, one student noted that he had to switch jobs at least once after graduating in order to obtain a position that made use of his increased skills and paid a higher salary.

Bottom line: What is a master’s degree in computer science good for?

My former students identified four areas of enhanced capability that included soft and technical skills. They obtained these largely through industry-relevant experiences, projects, and mentorship from committed faculty. They believed their employers noticed and valued their improved capabilities, which translated into a higher-paying career.

I hope that this information will be useful to you or to colleagues that might be considering whether to get a graduate degree. We will use this and other feedback to continue enhancing our own program in order to better meet the needs of our students. If you would like to contact me and ask questions, please feel free to send me a LinkedIn invitation.