PhD Candidate, Full CV (Updated as of November 2020)
TIME SENSITIVE RESEARCH PARTICIPATION OPPORTUNITY
Do you want to help push forth the bounds of human knowledge? Are you a current or prior professional software developer?
If so, consider participating in our study of how developers use stack overflow. The study will take one hour of your time,
and you will be compensated $50. It will involve a recorded video conference while you search stack overflow.
If interested, fill out this short prescreening form, and we will contact you if you qualify!
I am a third-year computer science PhD student at the University of Michigan where I am advised by Westley Weimer. Broadly, my research is at the intersection of software engineering and human factors. In particular, I am interested in reducing computing barriers for both novice and expert programmers, especially through the lenses of program comprehension, education, and diversity. My recent research include using neuroimaging and transfer-training-based experiments to study connections between natural language, spatial reasoning, and software engineering. I have also researched and built a tool that automatically provides input-related hints to novice programmers by using template-based automatic program repair to fix erroneous inputs. When I'm not working on research, I enjoy cooking, reading, traveling, hiking, and having long, overwrought conversations about moral philosophy, history, and astrophysics. I also play cello, and I'm always up for improvising and swapping music recommendations!
In this area of work, I investigate what factors, at a cognative level, distinguish novice programmers from expert programmers. I use a variety of techniques, including programming tests, psychological assessments, and medical imaging.
Coming soon
Around a third of all novice Python programs contain a call to standard input. These inputs can be surprisingly complex and can contain bugs. However, modern programming hint generators usually consider only the source code when identifying and fixing errors. With this work, I aim to understand input structures and and fix erroneous inputs for unique novice programs.