Talks

Basics of AI: what you need to know (to prepare for college)

February 07, 2025

Community Presentation, North Carolina Museum of Natural Sciences, Youth Programs, Raleigh,North Carolina [Slides]

This talk is geared toward high school science students who are preparing for the transition to college. It explains some basics of AI and explores some of the changes they will face when beginning the next step of their academic careers.

Code Search and Comprehension

February 01, 2024

Research Talk, University of Stuttgart, Stuttgart, Germany [Slides]

Developers have challenges with finding code to reuse, understanding it, and adapting it toothier context. This talk explores several recent results in search and comprehension.

How Code Search Drives Software Engineering

July 10, 2023

Seminar Talk, Colorado School of Mines, Golden, Colorado, USA [Slides]

Code search describes the process of retrieving source code from a repository, where that source code matches a query. Whether a developer is looking for where an error was thrown, learning how to use a new-to-them API, learning a new programming language, or browsing their team’s directory to familiarize themselves with the codebase, search underpins all these activities. Beyond those human-driven software engineering processes, search is also a component in automated software engineering, such as automated program repair, code example recommendation, and clone detection. This talk explores my research group’s explorations into how code search shapes modern software development processes, and looks ahead to future challenges and opportunities (especially in the context of generative AI).

Nevertheless, She Persisted: An intervention to increase women’s persistence intentions in CS

August 27, 2021

Invited Talk, Simon Fraser University School of Computing Science Diversity Committee’s Student Experiences Initiative, Virtual [Slides]

Gender stereotypes about women’s computing ability contribute to the dearth of women in computing by causing women to experience gender bias. These gender stereotypes are doubly disadvantaging to women because they create gender diferences in self-assessments of computing ability, decreasing the likelihood that women will persist in Computer Science (CS). This is because students need to believe they have sufcient ability in a feld in order to pursue it as a career. This talk presents an intervention to increase women’s persistence intentions in CS.

Program Analysis Fueled Search

February 01, 2020

Invited Talk, University of Virginia, Leading Engineering for Safe Software (LESS) laboratory, Charlottesville, VA, USA [Slides]

Developers search the web for code, but web search was not built for code. Here are the challenges and the strides we’ve made to make search for code easier and more precise.

Repairing Programs with Semantic Code Search

June 28, 2018

Industry Talk, BBN Technologies, Cambridge, MA, USA [Slides]

All software has bugs. This talk presents an approach to patching bugs that is not prone to overfitting (at least compared to prior approaches).

Making software development easier, one search at a time

May 04, 2018

Colloquium Talk, Davidson College, Davidson, NC, USA [Slides]

Search is an embedded process in modern software development, and it’s not going anywhere. Search is used to help developers find code to reuse, find API examples, and explore documentation. This talk explores my recent research in code search for software engineering, including understanding why developers search, how we can make search more precise, and how behavioral code search can enable automated program repair. advertisement

I get by with a little help from my friends: crowdsourcing program repair

January 10, 2017

Research Talk, Dagstuhl, Wadern, Germany [Slides]

Regular expressions are commonly used in source code, yet developers find them hard to read, hard to write, and hard to compose. Motivated by the prevalence of regular expression usage in practice and the number of bug reports related to regular expressions, I propose several future directions for studying regular expressions, including error classification, test coverage, test input generation, reuse, and automated program repair. The repair strategies can work in the presence or absence of fault localization, and with or without test cases. I conclude by discussing the potential impact of integrating regex support into automated program repair approaches. Dagstuhl Seminar