Date of Award:

5-2026

Document Type:

Thesis

Degree Name:

Master of Science (MS)

Department:

Computer Science

Committee Chair(s)

John Edwards

Committee

John Edwards

Committee

Seth Poulsen

Committee

Curtis Dyreson

Abstract

Learning to program is a difficult endeavor, leading to chronically high failure rates in introductory programming courses. One thing that makes teaching programming difficult is that we don’t fully understand what problem solving habits and writing strategies separate successful programmers from struggling ones. Knowing how to teach these habits to a new programmer is an equally difficult challenge,

Studying the way people write code has proved difficult. Until recently, there was very little relevant publicly available data, and no good ways to analyze student programming behavior at a large scale. In this thesis, I address both issues. I publish a large dataset of student coding activity, recorded from students in an introductory college programming course. I also publish tools to help with further publishing and analysis of this type of data in the future. Using these tools, I find that students who frequently switch between different parts of their code take longer to complete their assignments, though this behavior doesn’t seem to hurt their grades.

I discover how students think about the process of writing code through interviews with students. I find that students often had poor recollection of how they wrote their code. I define several higher level programming behaviors for future study, in order to better teach future programming students.

Creative Commons License

Creative Commons Attribution 4.0 License
This work is licensed under a Creative Commons Attribution 4.0 License.

Share

COinS