How novices write code: discovering best practices and how they can be adopted
Utah State University, Logan UT
Investigators
Abstract
This project aims to serve the national interest by understanding the thought processes of computer science students when writing computer programming codes. Introductory computer programming courses are a gateway for computer science and other science technology engineering and mathematics majors. As such it is important to improve student success in these courses for novice programmers. While students frequently study examples of completed computer code in introductory computer science courses, the students are not shown or taught the process of how code evolves into a complete solution. Indeed, when instructing students, educators do not quantify the programming process or how the code evolves during the development process. This project team plans to use analysis of keystroke logs of students and experts to construct models of student thinking, problem solving, and trouble shooting. The project intends to understand how educators can best quantify and teach students how to effectively write computer programming code. The proposed work has the potential to be a first principles-based approach to provide a deeper understanding of the code development process for students, improve the quality of computer science graduates, and contribute to a diverse computing workforce. The objectives of this project are to 1) discover through keystroke analysis descriptors for the process of writing a computer programming code, 2) investigate what the programming processes are, and 3) demonstrate how students can adopt best practices. Three studies, centered around keystroke analysis and outcomes of introducing students to keystroke playbacks of programming assignments, will be designed to meet these objectives. The project team plans to produce data analysis software and public keystroke log datasets. The three studies are designed to identify best practices for novice programmers. The project results will be disseminated on the website which will be linked to KeystrokeExplorer, GitHub repositories of KeystrokeExplorer, and the ShowYourWork plugin. The project team intends to present the results at computing education conferences and in Transactions on Computing Education. 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 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 →