Area of Study
Science and Mathematics
Many student programmers practice what is called tinkering (attempting to fix broken code by making small haphazard changes). Tinkering wastes time and circumvents the pedagogical purposes of programming exercises in introductory computer science courses. The tinkering process is focused on editing the code before submitting it for compilation, a process that takes code written in a high-level language for translation into machine language (something interpreted directly by the computer). Our hypothesis is that it may be possible to dissuade tinkering by introducing a delay into the compile step, where this delay will keep the student programmer from making changes to his or her code before compilation is completed. The goal of the delay is to elicit more careful consideration of the code before compiling, leading to proper analytical programming skills. Our research focused on generating tasks that induce tinkering in student programmers and investigating the effectiveness of compiler delays on stopping this behavior. We developed and employed various methods to collect data about participants’ responses: a plugin for the BlueJ programming environment to record coding behaviors, screen capture software, and using a think-aloud protocol to get a sense for participants’ thoughts. Our subject pool was limited to 10 students, so we found our qualitative data most helpful. The information collected suggested that the delays were inneffective, but participants remarked that they perceived themselves as being more cautious. This first test of our idea has encouraged us to continue pursuing various solutions to the problem of tinkering.
Wenholz, Kyle, "Fostering Logical Thinking in Novice Student Programmers" (2011). Summer Research. 80.
University of Puget Sound