Writing Between the Lines: How Novices Construct Java Programs

Research output: Chapter in Book/Report/Conference proceedingConference paperpeer-review

21 Downloads (Pure)

Abstract

Novices frequently learn to program using text-based programming, in languages such as Java. Programs can be constructed in a variety of different ways. Novices may write them sequentially, one line after another, or they may use top-down design to write outlines then fill them in. They may do a lot of trial and error: writing and deleting as they receive errors, or they may use a lot of copy-and-paste. This level of detail -- higher than keystroke-level editing but below plan-composition analysis -- has rarely been explored in programming education research, but it can provide insight into how novices tackle program construction, and offer hints as to how they wrestle with the challenges of constructing an error-free program. In this paper we used thematic analysis to create a reliable set of tags for Java program construction, and then used them to tag over 100 programming sessions lasting over 300 hours. We empirically find that novices rarely comment, rarely plan, and frequently program by copying code they already wrote in the project and pasting it then adjusting it -- which we think indicates a way to transfer the knowledge of the code they just wrote to the next code they are constructing. We offer thoughts on the viability of this work and the difficulty of tagging higher-level behaviours such as responses to errors.
Original languageEnglish
Title of host publicationSIGCSE 2024: Proceedings of the 55th ACM Technical Symposium on Computer Science Education
Pages165-171
Number of pages7
Volume1
ISBN (Electronic)9798400704239
DOIs
Publication statusPublished - 7 Mar 2024

Publication series

NameSIGCSE 2024 - Proceedings of the 55th ACM Technical Symposium on Computer Science Education
Volume1

Fingerprint

Dive into the research topics of 'Writing Between the Lines: How Novices Construct Java Programs'. Together they form a unique fingerprint.

Cite this