Research Projects

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.

Peer-Reviewed Publications

  • Causal Relationships and Programming Outcomes: A Transcranial Magnetic Stimulation Experiment
    Hammad Ahmad, Madeline Endres, Kaia Newman, Priscila Santiesteban, Emma Shedden, Westley Weimer. ICSE'24.
    ACM Distinguished Paper Award
    pdf
    dataset

  • CirFix: Automated Hardware Repair and its Real-World Applications
    Priscila Santiesteban, Yu Huang, Westley Weimer, Hammad Ahmad. TSE.
    9.322 impact factor
    pdf

  • 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.
    26% acceptance rate
    pdf
    dataset

  • 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.
    pdf

  • Digging into Semantics: Where do search-based software repair methods search?
    Hammad Ahmad, Padraic Cashin, Stephanie Forrest, Westley Weimer. PPSN'22.
    pdf

  • 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.
    16% acceptance rate
    pdf

  • CirFix: Automatically Repairing Defects in Hardware Design Code [ACM Artifact Badges: available, functional, results produced]
    Hammad Ahmad, Yu Huang, Westley Weimer. ASPLOS'22.
    20% acceptance rate
    pdf
    artifact
    github

  • Applying Automated Program Repair to Dataflow Programming Languages
    Yu Huang, Hammad Ahmad, Stephanie Forrest, Westley Weimer. GI@ICSE'21.
    pdf

  • A Program Logic to Verify Signal Temporal Logic Specifications of Hybrid Systems
    Hammad Ahmad, Jean-Baptiste Jeannin. HSCC'21.
    35% acceptance rate
    pdf
    techinal report

  • A Comparison of Semantic-Based Initialization Methods for Genetic Programming
    Hammad Ahmad, Thomas Helmuth. GECCO'18.
    pdf