My doctoral research, under the advisement of Dr. Chris Parnin, explored improving the behavior of software engineers by introducing developer recommendation choice architectures, a framework for integrating concepts from nudge theory into the design of bots and automated recommendation systems. To evaluate this approach, I determined what makes an effective developer recommendation, analyzed existing systems, and developed a novel bot.
By incorporating developer recommendation choice architectures into recommendations for software engineers, we can nudge developers to adopt behaviors useful for improving code quality and developer productivity.
Flower (pronounced flow-er) is an Eclipse plugin that leverages powerful program analysis techniques while maintaining a minimalistic interface to assist developers in effectively navigating program flow. Our tool enables developers to simultaneously navigate control flow and data flow within the Eclipse Integrated Development Environment (IDE). Some of the features include clicking on any variable or parameter to automatically invoke the tool and highlight everywhere the variable is used and displaying links in the code as well as boxes directly above and below the editor to method calls and declarations where the selected variable is modified or referenced. |
Computer science education faces a unique problem where enrollment in introductory courses is drastically increasing while the field's retention rate is decreasing. Programming assignments and grades play a major role students losing interest in the major. This project studies using concepts from automated program repair to improve CS education by providing valuable feedback and automatically grading assignments for beginner programmers. The results suggest our patch grading algorithm is effective for improving grades on introductory coding assignments. |
This project focused on using the Alice 3D block-based programming language to integrate computer programming concepts and computational thinking into K-12 education, specifically middle school math. For this work, we organized Adventures in Alice Workshops for K-12 teachers interested in incorporating computational thinking and programming concepts into their courses, hosted an Alice Activity Day for students, created and mapped tutorials to standards for middle school students, and presented this work at a variety of venues for students and research presentations. This research was completed for the Duke University Computer Science Undergraduate Research Fellowship (CSURF) program with Dr. Susan Rodger. |
For this work, we examined ways to integrate robotics into society and improve the interaction between robots and humans. We explored using the Robot Operating System (ROS) to program iRobot Create robots and AR Drone Parrot Quadricpoters. Our final project consisted of designing and creating SwagBot, a delivery system to transport objects between users. This project was completed as part of the Computing Research Association Distributed Research Experience for Undergraduates (DREU) program Dr. Chad Jenkins and the Brown University Robotics group. |