Current and past research projects. Relevant publications are shown for each project. See a complete list on my publications page.
Academic help-seeking (active)
Knowing when and how to seek academic help is an important aspect in self-regulated learning. Seeking help too soon or too often can degrade learning outcomes, but avoiding seeking help can also be detrimental. Students are often left to discover a balance between these extremes for themselves.
- Characterising networks of peers within classrooms and their collaborative habits
- A number of factors influence whether and when students will seek academic help from the internet, their peers, or their instructors [Koli Calling ‘21]
Broadening participation in computing (active)
In an NSF-funded alliance of 6 CSU campuses — Cal Poly SLO, Cal Poly Pomona, CSU LA, SFSU, CSU Dominguez Hills, and CSU Fullerton — we are working to improve student recruitment and retention in computing, by making curricular enhancements to early CS courses. Specifically, our alliance is focused on incorporating socially responsible computing assignments into CS coursework.
- We broadly describe our first two years’ activities, including curricular enhancements at all six campuses as well as a faculty learning community for instructors incorporating this new material into their CS courses [ASEE ‘24]
- At Cal Poly SLO, we have designed a new CS 0 course focused on analysis and visualisation of real-world datasets, with a bent toward societally meaningful contexts [SIGCSE ‘24]
Software testing (active)
Software testing is an important self-regulatory skill in software development. I’m interested in research regarding the teaching and learning of software testing. My work has focused on students’ testing process and test quality.
- The effects of mutation analysis and other feedback mechanisms on students’ thought processes as they compose tests [TOCE ‘24]
- We proposed ways to reduce the computational cost of mutation analysis to provide students with rapid incremental feedback about their software tests [JSS ‘21]
- We mined program snapshot histories for insight into students’ test writing habits [SIGCSE ‘19]
Other early-stage active projects
- Programming is taught all over campus, not just in CS classes. What can we learn about how non-computing students learn and use programming? [J Chem Ed ‘24]
- IDE plugins to assist programmer cognition [SURP 2022, Project on GitHub]
Undergraduate students’ software debugging habits
In exploring students’ debugging practices, we found that:
- Simple documentation of progress on debugging problems helped students recover from bugs with slightly reduced reliance on instructors [SIGCSE ‘23]
- Using a range of debugging techniques—as opposed to only one—may lead to improved project outcomes and reduced reliance on an autograder [Koli Calling ‘20]
Assessing and improving time management in software development
Time management is generally challenging for learners, particularly those who are working on large and complex programming projects for the first time. A large part of my PhD work was focused on assessing and improving students’ time management on programming projects.
- Explicit project milestones helped to reduce the rates of late submissions and improve project performance [SIGCSE ‘21]
- Students’ development habits had significant impacts on their project performance and timeliness [ICER ‘17]
- Fine-grained IDE log data yielded accurate measurements of students’ development habits [ITiCSE ‘17]
CodeWorkout
CodeWorkout is an online drill-and-practice system for people learning a programming language for the first time. It is free, open-source, and currently serves thousands of users at Virginia Tech and other universities.
- We used CodeWorkout in Virginia Tech’s CS 1 course and explored the effects of voluntary practice of programming assignments on exam performance, controlling for individual student abilities [CompEd ‘19]
Collaborations
I have collaborated on other projects.
- [ITiCSE ‘20] ProgSnap2—A data specification for sharing and analysing programming snapshot datasets
- [ASE ‘19] Testing the generalisability of research on regular expressions