I am interested in studying and refining the technique and approaches used to teach computer science. This work can improve the way that computer science is taught, both here and elsewhere. I have also found that this research avenue provides opportunity to work both with students and other faculty in the department. For several years, I have participated in a loosely-bound research group of faculty and students working on various aspects of computer science education.
We have a large (and growing) collection of computer programs submitted by students in introductory courses. In total, these programs provide strong indications of student behavior and the learning process. To date, this work has produced two conference papers, including one written by a student under my guidance. We have invested time during the past several semesters in building tools to gather and analyze data, with plans for three more papers in the near future and some ideas for possible direction beyond those.
This research has already led to real changes made in the structure and perspective of our introductory programming courses. These changes are now being assessed to verify the expected improvements are seen. I value the real and immediate effect this research has on my own courses, improving the experience and outcome of students in our CS program.
Students working under my supervision have contributed to the ongoing work and have, in some cases, presented their work at student and professional conferences:
- Nevan Simone worked for several years to build tools and collect data evaluating the effectiveness of automated assessment for student work as well as the value of error-reporting tools for improving student work. His work contributed to two papers – Are Automated Assessment Tools Helpful in Programming Courses? in summer 2015 and On Novices’ Interaction with Compiler Error Messages: A Human Factors Approach in fall 2017.
- Roger Gee began in fall 2013 to expand our toolset for automated assessment and grading of student programs, providing a more accurate view of student progress, utilizing the data produced by McClellan and Starbuck. This work as presented at the Undergraduate Research Festival in spring 2015 and later incorporated in a paper Do Enhanced Compiler Error Messages Help Students? Results Inconclusive., presented at an international conference in spring 2017.
- Andrew McClellan began a data mining project in fall 2012, categorizing failed student submissions to identify the primary error. He graduated in spring 2013, but his work was continued by Adam Starbuck in fall 2013.
- Nigel Bosch analyzed historical student data to characterize the behavior of students when writing programs for an introductory class. The results of this work were incorporated in a paper Characterization of CS1 Student Programming, presented at a national conference in summer 2012.
- David Reynolds, a math major, wrote test cases and automated assessment scripts for students submitting test cases as homework assignments. The results of this work were incorporated in a paper Testing Test-First First, presented at a regional conference in fall 2012.
- Justin Ewers began an effort in fall 2011 to classify student-submitted programs by various criteria, to refine our automated grading.
- Brittany Kight worked on an iPad application for use in an introductory programming course, and presented her work at ACU’s Undergraduate Research Festival in spring 2011.