Our work spans the full spectrum of AI-driven software engineering — from generating and repairing code with large language models to securing the software supply chain.
Using large language models to automatically generate, document, and repair source code. Investigating energy-efficient training, hallucination detection, and sustainable AI for software development.
Pioneering neural models for code search, clone detection, program comprehension, and software traceability. Building the foundations of AI-assisted development at scale.
Automating bug report analysis, refactoring recommendations, and program comprehension through NLP and ML. Making legacy software sustainable.
Analyzing software supply chains, privacy compliance at scale, and GenAI security. Research adopted by Google, Meta, Twitter/X.
Four research-active faculty in W&M’s Department of Computer Science, each leading work at the intersection of artificial intelligence and software engineering.

Generative AI for code, automated program repair, code documentation, and sustainable AI for software development.

Deep learning for SE, software maintenance and evolution, program comprehension, and mobile application analysis.

Automated bug report management, code refactoring, software comprehension through NLP/ML, and supply chain analysis.

Privacy compliance analysis, software supply chain security, GenAI security, and vulnerability assessment.
Our research directly feeds into three complementary courses — giving students hands-on experience with the tools and techniques we develop.
The full pipeline of AI-enabled software development: mining code repositories, building language models, evaluating generated outputs, prompting LLMs, detecting hallucinations, and shipping real applications through AI pair-programming.

A comprehensive introduction to the software engineering lifecycle: requirements analysis, design patterns, version control, testing and verification, agile methodologies, repository mining, and the growing role of deep learning in SE practice.

How software ages, decays, and gets renewed: software quality assessment, code smells and refactoring, bug report analysis, repository mining for maintenance insights, and applying NLP and machine learning to software comprehension tasks.
