Automated positive reinforcement of good programming processes
University Of California-Riverside, Riverside CA
Investigators
Abstract
This project aims to serve the national interest by developing techniques to automatically award points to students for following a good process when students write computer programs. This project intends to address a common problem that students perform poorly in computer programming courses because they do not follow a good process. The "process" refers to an approach students take as they develop their computer programs. While instructors may advise students to follow a good process, students often do not take such advice, perhaps believing they can take a shortcut to a working program. Giving points to students is the most direct and common way to positively influence student behaviors. However, manually awarding points for following a good process is a labor-intensive grading task. This project intends to create automated methods to reward a good programming process, meanwhile developing a deeper understanding of how a good programming process can improve student metacognition and success. This project team plans to take advantage of new programming-learning systems that can capture process-related data to automatically analyze students' recorded behaviors and award points. Process behaviors to be auto-awarded with points will include four phases: 1) starting early, 2) spending sufficient time, 3) writing programs little by little, and 4) testing one's own programs thoroughly. Such an automation has only recently become a possibility, via the advent of cloud-based programming-learning environments that record much of a student's programming behavior. The project intends to answer several research questions: 1) Can desired process points be auto-awarded using today's widely-used programming-learning systems? 2) Can process points incentivize good process while avoiding negative consequences like stressing students over "being watched"? 3) Can process points be made transparent and understandable through simple visualizations and basic explanations? 4) Will process points ultimately impact students' metacognition, behavior, and success? The techniques will be codified in Python scripts that will be made available to programming instructors across the country. The NSF IUSE: EDU Program supports research and development projects to improve the effectiveness of STEM education for all students. Through its Engaged Student Learning track, the program supports the creation, exploration, and implementation of promising practices and tools. This project is also supported by the NSF IUSE:HSI program, which has the goals of enhancing the quality of undergraduate STEM education, and increasing the recruitment, retention, and graduation rates of students pursuing associate’s or baccalaureate degrees in STEM. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
View original record on NSF Award Search →