Starting in the fall of my sophomore undergraduate year, I began collaborating with Dr. Matthew Jadud and his colleagues in the Philippines to study the behavior of novice programmers in undergraduate computer science courses.
I uncovered common syntactical and semantic problems by tracing the compile-by-compile progress of novices. I authored a paper that analyzed how novices used strategies such as “divide and conquer” or “move on” to debug string formatting errors and recommended intervention strategies for CS educators.
While the conclusions of the strategy analysis are interesting, I believe the primary contribution of this work is the methodology. The process of grounding the investigation in the qualitative tracing of students' code by examining what changed each time they press the "compile" button is a relatively new idea. I believe it has the potential to help instructors understand what really goes on as inexperienced programmers struggle to type out their first programs.
I'm excited to report that my paper "Novice Programmer Strategies for String Formatting", co-authored with Matt Jadud, was recently accepted in the Journal of Computer Science education and will appear in the September 2010 edition.
Matt Jadud, Assistant Professor of Computer Science, Allegheny College (formerly visiting professor at Olin)
M. Rodrigo, Dept. of Computer Science, Ateneo de Manila University, Philippines
In Java, System.out.printf and String.format consume a specialized kind of string commonly known as a format string. In our study of first-year students at the Ateneo de Manila University we discovered that format strings present a substantial challenge for novice programmers. Focusing on their first laboratory we found that 8% of all compilation errors and 100% of the exceptional, run-time behavior they encountered were due to the improper construction of format strings. In this paper, we present exemplars of their problematic interactions with the compiler and run-time environment, and recommend possible instructional interventions based on our observations.
Submissions to ICER '08 and Journal of Computer Science are both available below as PDFs.