I study how humans interact with code and design new ways to build software. I work at the intersection of software engineering and human-computer interaction.
I use behavioral methods to study developers as users of their programming tools, understand what makes designing, implementing, and debugging software hard, and re-envision the relationship between developers and code. A key focus of my work has been designing new techniques to view and manipulate code. I have pioneered the design of crowdsourced programming environments, which reify developer’s design knowledge, strategies, and mental models in explicit forms which can be manipulated by program analysis tools and connected to code.
My student, Emad Aghayi, successfully defended his dissertation.
Our paper on Hypothesizer: A Hypothesis-Based Debugger to Find and Test Debugging Hypotheses appeared at UIST 2023.
I served as General Chair of VL/HCC 2023 in Washington, DC.
Our paper on What's (not) working in programmer user studies appeared in ACM Transactions on Software Engineering Methodology.
Our paper on A Survey of Tool Support for Working with Design Decisions in Code appeared in ACM Computing Surveys.
Our paper on A qualitative study on the implementation design decisions of developers appeared ICSE 2023. Our paper won an ACM Distinguished Paper Award.
I gave a talk at Never Work in Theory on Programming Strategically.
My student, Abdulaziz Alaboudi, successfully defended his dissertation. This summer he'll be starting as an Assistant Professor in the College of Computer and Information Science at King Saud University.
Our paper on ChatGPT and software testing education: promises & perils appeared at the Software Testing Education Workshop.
My student, Sajed Jalil, was the runner-up in the Graduate Division of the CEC Innovation Week Poster Contest.
My paper on Connecting design to code appeared in IEEE Software.
David Samudio
|
Maryam Arab
|
Sahar Mehrpour
|
Sajed Jalil
|
Ruochen Wang
|
Mainul Hossain
|
Abdulaziz Alaboudi
|
Emad Aghayi
|
What do we know about human aspects of software development? Bibliography
How has software engineering research evolved over the past 4 decades? Tag Clouds
Evaluating programming languages and tools in studies with human participants Paper, Slides from tutorial