EDBT 2026 Demo / reviewers in the wild / expert
Cody Watson
dblp:201/7334
· DBLP profile ↗
9ranked-venue papers
2as first author
1since 2021 · last 2022
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 2 first-author · 1 since 2021Databases, data management, data science and information retrieval · 1Graphics, computer vision, multimedia, augmented reality and games · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
6 papers |
Empirical software engineering · 34% Program synthesis and code generation · 21% Software maintenance and evolution · 19% |
Topics — the 12 heaviest of 13, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program synthesis and code generation
code generation with language models |
1.0 | 2 | 2022 | A Systematic Literature Review on the Use of Deep Learning in Software Engineering Research · ACM Trans. Softw. Eng. Methodol. 2022 On learning meaningful assert statements for unit test cases · ICSE 2020 |
Debugging and program repair
automated program repair |
0.8 | 3 | 2019 | An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translation · ACM Trans. Softw. Eng. Methodol. 2019 An empirical investigation into learning bug-fixing patches in the wild via neural machine translation · ASE 2018 On learning meaningful code changes via neural machine translation · ICSE 2019 |
Empirical software engineering
mining software repositories |
0.6 | 3 | 2019 | An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translation · ACM Trans. Softw. Eng. Methodol. 2019 An empirical investigation into learning bug-fixing patches in the wild via neural machine translation · ASE 2018 Detecting and summarizing GUI changes in evolving mobile apps · ASE 2018 |
Empirical software engineering › AI for software engineering
machine learning for software engineering |
0.6 | 1 | 2022 | A Systematic Literature Review on the Use of Deep Learning in Software Engineering Research · ACM Trans. Softw. Eng. Methodol. 2022 |
Empirical software engineering
systematic literature review |
0.6 | 1 | 2022 | A Systematic Literature Review on the Use of Deep Learning in Software Engineering Research · ACM Trans. Softw. Eng. Methodol. 2022 |
Software testing
test generation |
0.4 | 1 | 2020 | On learning meaningful assert statements for unit test cases · ICSE 2020 |
Software maintenance and evolution › refactoring
automated refactoring |
0.4 | 1 | 2019 | On learning meaningful code changes via neural machine translation · ICSE 2019 |
Empirical software engineering › mining software repositories › commit analysis
bug-fix mining |
0.4 | 1 | 2019 | An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translation · ACM Trans. Softw. Eng. Methodol. 2019 |
Compilers and program optimization
program transformation |
0.4 | 1 | 2019 | On learning meaningful code changes via neural machine translation · ICSE 2019 |
Software maintenance and evolution
refactoring |
0.4 | 1 | 2019 | On learning meaningful code changes via neural machine translation · ICSE 2019 |
Program synthesis and code generation
neural machine translation for code |
0.3 | 1 | 2018 | An empirical investigation into learning bug-fixing patches in the wild via neural machine translation · ASE 2018 |
Software maintenance and evolution › software maintenance
bug fixing |
0.1 | 1 | 2019 | On learning meaningful code changes via neural machine translation · ICSE 2019 |
Methods — techniques the papers use, named apart from their topics
neural machine translation · 1.5encoder-decoder model · 0.7systematic literature review · 0.6deep learning · 0.4abstract syntax tree operations · 0.4natural language generation · 0.3computer vision · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | A Systematic Literature Review on the Use of Deep Learning in Software Engineering ResearchabstractAn increasingly popular set of techniques adopted by software engineering (SE) researchers to automate development tasks are those rooted in the concept of Deep Learning (DL). The popularity of such techniques largely stems from their automated feature engineering capabilities, which aid in modeling software artifacts. However, due to the rapid pace at which DL techniques have been adopted, it is difficult to distill the current successes, failures, and opportunities of the current research landscape. In an effort to bring clarity to this cross-cutting area of work, from its modern inception to the present, this article presents a systematic literature review of research at the intersection of SE & DL. The review canvasses work appearing in the most prominent SE and DL conferences and journals and spans 128 papers across 23 unique SE tasks. We center our analysis around the components of learning , a set of principles that governs the application of machine learning techniques (ML) to a given problem domain, discussing several aspects of the surveyed work at a granular level. The end result of our analysis is a research roadmap that both delineates the foundations of DL techniques applied to SE research and highlights likely areas of fertile exploration for the future. Cody Watson, Nathan Cooper, David Nader-Palacio, Kevin Moran, Denys Poshyvanyk |
ACM Trans. Softw. Eng. Methodol. | 1 |
| 2020 | On learning meaningful assert statements for unit test casesabstractSoftware testing is an essential part of the software lifecycle and requires a substantial amount of time and effort. It has been estimated that software developers spend close to 50% of their time on testing the code they write. For these reasons, a long standing goal within the research community is to (partially) automate software testing. While several techniques and tools have been proposed to automatically generate test methods, recent work has criticized the quality and usefulness of the assert statements they generate. Therefore, we employ a Neural Machine Translation (NMT) based approach called Atlas (AuTomatic Learning of Assert Statements) to automatically generate meaningful assert statements for test methods. Given a test method and a focal method (i.e., the main method under test), Atlas can predict a meaningful assert statement to assess the correctness of the focal method. We applied Atlas to thousands of test methods from GitHub projects and it was able to predict the exact assert statement manually written by developers in 31% of the cases when only considering the top-1 predicted assert. When considering the top-5 predicted assert statements, Atlas is able to predict exact matches in 50% of the cases. These promising results hint to the potential usefulness of our approach as (i) a complement to automatic test case generation techniques, and (ii) a code completion support for developers, who can benefit from the recommended assert statements while writing test code. Cody Watson, Michele Tufano, Kevin Moran, Gabriele Bavota, Denys Poshyvanyk |
ICSE | 1 |
| 2019 | On learning meaningful code changes via neural machine translationabstractRecent years have seen the rise of Deep Learning (DL) techniques applied to source code. Researchers have exploited DL to automate several development and maintenance tasks, such as writing commit messages, generating comments and detecting vulnerabilities among others. One of the long lasting dreams of applying DL to source code is the possibility to automate non-trivial coding activities. While some steps in this direction have been taken (e.g., learning how to fix bugs), there is still a glaring lack of empirical evidence on the types of code changes that can be learned and automatically applied by DL. Our goal is to make this first important step by quantitatively and qualitatively investigating the ability of a Neural Machine Translation (NMT) model to learn how to automatically apply code changes implemented by developers during pull requests. We train and experiment with the NMT model on a set of 236k pairs of code components before and after the implementation of the changes provided in the pull requests. We show that, when applied in a narrow enough context (i.e., small/medium-sized pairs of methods before/after the pull request changes), NMT can automatically replicate the changes implemented by developers during pull requests in up to 36% of the cases. Moreover, our qualitative analysis shows that the model is capable of learning and replicating a wide variety of meaningful code changes, especially refactorings and bug-fixing activities. Our results pave the way for novel research in the area of DL on code, such as the automatic learning and applications of refactoring. Michele Tufano, Jevgenija Pantiuchina, Cody Watson, Gabriele Bavota, Denys Poshyvanyk |
ICSE | 3 |
| 2019 | Learning How to Mutate Source Code from Bug-FixesabstractMutation testing has been widely accepted as an approach to guide test case generation or to assess the effectiveness of test suites. Empirical studies have shown that mutants are representative of real faults; yet they also indicated a clear need for better, possibly customized, mutation operators and strategies. While methods to devise domain-specific or general-purpose mutation operators from real faults exist, they are effort-and error-prone, and do not help the tester to decide whether and how to mutate a given source code element. We propose a novel approach to automatically learn mutants from faults in real programs. First, our approach processes bug fixing changes using fine-grained differencing, code abstraction, and change clustering. Then, it learns mutation models using a deep learning strategy. We have trained and evaluated our technique on a set of ~787k bug fixes mined from GitHub. Our empirical evaluation showed that our models are able to predict mutants that resemble the actual fixed bugs in between 9% and 45% of the cases, and over 98% of the automatically generated mutants are lexically and syntactically correct. Michele Tufano, Cody Watson, Gabriele Bavota, Massimiliano Di Penta, Martin White, Denys Poshyvanyk |
ICSME | 2 |
| 2019 | An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine TranslationabstractMillions of open source projects with numerous bug fixes are available in code repositories. This proliferation of software development histories can be leveraged to learn how to fix common programming bugs. To explore such a potential, we perform an empirical study to assess the feasibility of using Neural Machine Translation techniques for learning bug-fixing patches for real defects. First, we mine millions of bug-fixes from the change histories of projects hosted on GitHub in order to extract meaningful examples of such bug-fixes. Next, we abstract the buggy and corresponding fixed code, and use them to train an Encoder-Decoder model able to translate buggy code into its fixed version. In our empirical investigation, we found that such a model is able to fix thousands of unique buggy methods in the wild. Overall, this model is capable of predicting fixed patches generated by developers in 9--50% of the cases, depending on the number of candidate patches we allow it to generate. Also, the model is able to emulate a variety of different Abstract Syntax Tree operations and generate candidate patches in a split second. Michele Tufano, Cody Watson, Gabriele Bavota, Massimiliano Di Penta, Martin White, Denys Poshyvanyk |
ACM Trans. Softw. Eng. Methodol. | 2 |
| 2018 | Detecting and summarizing GUI changes in evolving mobile appsabstractMobile applications have become a popular software development domain in recent years due in part to a large user base, capable hardware, and accessible platforms. However, mobile developers also face unique challenges, including pressure for frequent releases to keep pace with rapid platform evolution, hardware iteration, and user feedback. Due to this rapid pace of evolution, developers need automated support for documenting the changes made to their apps in order to aid in program comprehension. One of the more challenging types of changes to document in mobile apps are those made to the graphical user interface (GUI) due to its abstract, pixel-based representation. In this paper, we present a fully automated approach, called GCAT, for detecting and summarizing GUI changes during the evolution of mobile apps. GCAT leverages computer vision techniques and natural language generation to accurately and concisely summarize changes made to the GUI of a mobile app between successive commits or releases. We evaluate the performance of our approach in terms of its precision and recall in detecting GUI changes compared to developer specified changes, and investigate the utility of the generated change reports in a controlled user study. Our results indicate that GCAT is capable of accurately detecting and classifying GUI changes - outperforming developers - while providing useful documentation. Kevin Moran, Cody Watson, John Hoskins, George Purnell, Denys Poshyvanyk |
ASE | 2 |
| 2018 | An empirical investigation into learning bug-fixing patches in the wild via neural machine translationabstractMillions of open-source projects with numerous bug fixes are available in code repositories. This proliferation of software development histories can be leveraged to learn how to fix common programming bugs. To explore such a potential, we perform an empirical study to assess the feasibility of using Neural Machine Translation techniques for learning bug-fixing patches for real defects. We mine millions of bug-fixes from the change histories of GitHub repositories to extract meaningful examples of such bug-fixes. Then, we abstract the buggy and corresponding fixed code, and use them to train an Encoder-Decoder model able to translate buggy code into its fixed version. Our model is able to fix hundreds of unique buggy methods in the wild. Overall, this model is capable of predicting fixed patches generated by developers in 9% of the cases. Michele Tufano, Cody Watson, Gabriele Bavota, Massimiliano Di Penta, Martin White, Denys Poshyvanyk |
ASE | 2 |
| 2018 | Deep learning similarities from different representations of source codeabstractAssessing the similarity between code components plays a pivotal role in a number of Software Engineering (SE) tasks, such as clone detection, impact analysis, refactoring, etc. Code similarity is generally measured by relying on manually defined or hand-crafted features, e.g., by analyzing the overlap among identifiers or comparing the Abstract Syntax Trees of two code components. These features represent a best guess at what SE researchers can utilize to exploit and reliably assess code similarity for a given task. Recent work has shown, when using a stream of identifiers to represent the code, that Deep Learning (DL) can effectively replace manual feature engineering for the task of clone detection. However, source code can be represented at different levels of abstraction: identifiers, Abstract Syntax Trees, Control Flow Graphs, and Bytecode. We conjecture that each code representation can provide a different, yet orthogonal view of the same code fragment, thus, enabling a more reliable detection of similarities in code. In this paper, we demonstrate how SE tasks can benefit from a DL-based approach, which can automatically learn code similarities from different representations. Michele Tufano, Cody Watson, Gabriele Bavota, Massimiliano Di Penta, Martin White, Denys Poshyvanyk |
MSR | 2 |
| 2017 | Making and gaming in signal processing classesabstractSignal processing, communication systems, and estimation and detection theory are important concepts in electrical engineering, and are taught in most graduate and upper-level undergraduate electrical engineering programs. Students often struggle with the abstract concepts of signals, however, largely because the courses are very theoretical. Traditionally, these theoretical courses are delivered in a lecture-based format which provides little opportunity for students to attain a concrete understanding of signals. Occasionally, signals courses have an associated lab, but they often rely heavily on numerical simulations, which leaves students struggling. In this paper we lay out an active learning framework for engaging students using the “tinkering” concept used in the emerging maker movement and the idea of “gamification.” We present baseline data, course structure, activity lists, and details of a specific activity. Richard Martin 0001, Andrew G. Klein, Jennifer Hefner, Cody Watson, Kirsten R. Basinet |
ICASSP | 4 |