Skip to main content
NC State Home

Kathryn Stolee

KS

Associate Professor

Engineering Building II (EB2) 3228H

919-515-3305 Website

Bio

Kathryn Stolee is an Associate Professor in the Department of Computer Science at North Carolina State University. After graduating from the Jeffrey S. Raikes School of Computer Science and Management, she built a career in software engineering and software engineering education research and received her Ph.D. in Computer Science from the University of Nebraska-Lincoln under the supervision of Sebastian Elbaum.

Stolee’s research makes innovative contributions to our knowledge of software engineering from a technical perspective (e.g., program analysis), human perspective (e.g., human aspects of software engineering, software product management), and educational perspective (e.g., comparative comprehension of algorithms). As examples, she’s explored how refactoring a regular expression can improve comprehension (pdf), how a constraint solver can identify code for a human to reuse (pdf), and how cross-language code-to-code search may help developers learn a new language (pdf). These efforts combine analysis (refactoring, semantic code search, code-to-code search) with human factors (comprehension, reuse, learning). The innovative and influential nature of this research has been recognized by the computer science community at large, and she has been awarded over $2,000,000 in federal grants including an NSF CAREER award. In addition to her scholarly contributions, Stolee is active in the software engineering research community’s top conferences as an author, reviewer, and organizer. She is intentional about mentoring the next generation.

Education

Ph.D. Computer Science University of Nebraska-Lincoln 2013

Area(s) of Expertise

Software Engineering and Programming Languages

Publications

View all publications

Grants

Date: 08/01/18 - 7/31/26
Amount: $500,000.00
Funding Agencies: National Science Foundation (NSF)

Semantic code search uses behavioral specifications, such as input/output examples, to identify code in a repository that matches the specification. Challenges include handling scenarios when 1) there are too few solutions, 2) it is difficult to understand how solutions differ, and 3) there are too many solutions. I propose techniques to 1) expand the scope of code that can be modeled and find approximate solutions when an exact one does not exist, 2) determine the differences between two code fragments, and 3) navigate a large space of possible solutions are needed by selecting inputs that maximally divide the solution space.

Date: 07/01/22 - 6/30/26
Amount: $299,998.00
Funding Agencies: National Science Foundation (NSF)

Software testing is a critical skill for computer science graduates entering technical positions. Software tests, and in particular unit tests, have several uses in education. The purpose of this proposal is to create pedagogy and tools around writing unit tests for CS3 and Software Engineering (SE) courses. Building on our preliminary work, we develop and evaluate the impact of a lightweight intervention with explicit testing strategies on the test quality of student-written tests. Then, we investigate the impact of the process of writing tests on student outcomes.

Date: 08/01/20 - 7/31/25
Amount: $499,994.00
Funding Agencies: National Science Foundation (NSF)

This project advances the state of knowledge about how to infer misconceptions and generate explanations without any explicit models of a programming language. In contrast to existing approaches, which involves manual identification of misconceptions in programming languages, or cross- language migrations������������������which provide translations but no explanations������������������our technique automatically discovers inconsistencies cross-languages and supports automatic resolution for problematic translations.

Date: 08/15/17 - 7/31/22
Amount: $499,996.00
Funding Agencies: National Science Foundation (NSF)

Regular expressions (regexes) are responsible for numerous faults in many software products, and yet, static bug finders and automated program repair techniques generally ignore this common language feature. First, I propose to explore and characterize regex-related bugs in bug repositories. From there, I propose to develop approaches for detecting regex-related bugs using static analysis and patching regex-related bugs using automated program repair. The proposed detection and patching techniques both depend on similarity analysis of regexes. The expected research outcomes include a publicly available data set of regex-related faults, new regex-related bug patterns for static bug finders like FindBugs and PMD, and in the best case, an open source tool for automated patch generation for regular expressions.

Date: 07/01/16 - 6/30/21
Amount: $387,661.00
Funding Agencies: National Science Foundation (NSF)

Software plays an integral role in our society. However, software bugs are common, routinely cause security breaches, and cost our economy billions of dollars annually. The software industry struggles to overcome this challenge: Software is so inherently complex, and mistakes so common, that new bugs are typically reported faster than developers can fix them. Recent research has demonstrated the potential of automated program repair techniques to address this challenge. However, these techniques often produce low-quality repairs that break existing functionality. In this research, we develop new techniques to fix bugs and implement new features automatically, producing high-quality code.

Date: 01/17/19 - 12/31/19
Amount: $87,653.00
Funding Agencies: Laboratory for Analytic Sciences

LAS DO1 Stolee - 2.1 Human- Machine Collaboration

Date: 01/01/17 - 12/31/18
Amount: $217,824.00
Funding Agencies: Laboratory for Analytic Sciences

DO7 Affiliations

Date: 01/01/16 - 12/31/16
Amount: $31,346.00
Funding Agencies: National Science Foundation (NSF)

Software is an integral part of our everyday lives, and our economy relies heavily on software working correctly. However, bugs in software cause security breaches, and cost our economy billions of dollars annually. While these high costs of bugs are well known, the software industry struggles to remedy the situation because the inherent complexity of the software makes bugs so common. The goal of this project is to develop a technique that fixes bugs automatically, greatly reducing the cost of fixing the bugs, improving quality of software, and reducing the negative effects on the economy and society.


View all grants
  • National Science Foundation Faculty Early CAREER Award - 2018
  • Best Paper Award - International Symposium on Empirical Software Engineering and Measurement (ESEM) - 2011