Broadly, my research interests relate to software engineering with an emphasis on cognition and pedagogy.
Search-based software engineering
I have used stochastic search-based approaches (e.g., genetic programming) to reduce the amount of developer effort for debugging software. My work in this area has not been limited to software: I am the developer of CirFix, a framework that bridges the gap between automated software repair and the hardware domain using novel insights about hardware designs.
Indicative Paper(s): CirFix, Semantics and Search-based Software Engineering.
Understanding student cognition for CS tasks
I have used objective measures (e.g., eye-tracking) to understand differences in problem-solving strategies employed by students for CS-related tasks, such as reading formal claims about algorithms, and investigating the factors resulting in higher student performance. My efforts on understanding cognition have provided recommendations for instructors and suggested follow-on classroom intervention studies to favor students outcomes.
Indicative Paper(s): Eye-tracking for CS Formalisms
Ongoing Project: Using Transcranial Magnetic Stimulation (TMS) to codify the relationship between spatial reasoning and program comprehension.
Improving software quality through formal verification
I believe that testing for bugs in software can be insufficient, and that elevating the status of a critical system (e.g., autonomous cars) from "tested" to "correct" is becoming increasingly necessary. In this area, I have focused research efforts into developing new formalisms that allow for time-critical safety properties for software to be expressed and reasoned about, and into reducing the amount of manual human effort needed to prove correctness in complex distributed systems.
Indicative Paper(s): Signal Temporal Dynamic Logic, Sift.
CirFix: Automated Hardware Repair and its Real-World Applications
Priscila Santiesteban, Yu Huang, Westley Weimer, Hammad Ahmad. TSE.
How Do We Read Formal Claims? Eye-Tracking and the Cognition of Proofs about Algorithms
Hammad Ahmad, Zachary Karas, Kimberly Diaz, Amir Kamil, Jean-Baptiste Jeannin, Westley Weimer. ICSE'23.
LOGI: An Empirical Model of Heat-Induced Disk Drive Data Loss and its Implications for Data Recovery
Hammad Ahmad, Colton Holoday, Ian Bertram, Kevin Angstadt, Zohreh Sharafi, Westley Weimer. PROMISE'22.
Digging into Semantics: Where do search-based software repair methods search?
Hammad Ahmad, Padraic Cashin, Stephanie Forrest, Westley Weimer. PPSN'22.
Sift: Using Refinement-Guided Automation to Verify Complex Distributed Systems [USENIX Artifact Badges: available, functional]
Haojun Ma, Hammad Ahmad, Aman Goel, Eli Goldweber, Jean-Baptiste Jeannin, Manos Kapritsos, Baris Kasikci. ATC'22.
CirFix: Automatically Repairing Defects in Hardware Design Code [ACM Artifact Badges: available, functional, results produced]
Hammad Ahmad, Yu Huang, Westley Weimer. ASPLOS'22.
Applying Automated Program Repair to Dataflow Programming Languages
Yu Huang, Hammad Ahmad, Stephanie Forrest, Westley Weimer. GI@ICSE'21.
A Program Logic to Verify Signal Temporal Logic Specifications of Hybrid Systems
Hammad Ahmad, Jean-Baptiste Jeannin. HSCC'21.
A comparison of semantic-based initialization methods for genetic programming
Hammad Ahmad, Thomas Helmuth. GECCO'18.