Proceedings of the 52nd ACM Technical Symposium on Computer Science Education | 2021
Pattern Census: A Characterization of Pattern Usage in Early Programming Courses
Abstract
Expert programmers rarely think at the syntactic level. Instead, they think at higher levels of abstraction, mentally chunking groups of syntactic elements into a single abstraction. Explicitly teaching common chunks in early programming courses has been proposed in the research literature using the term pattern-oriented instruction , but this practice appears not to be emphasized, nor is there a consensus about which patterns to teach or in what order. In this paper, we explore the set of patterns that students are expected to learn, independent of whether they are taught explicitly or must learn implicitly. Specifically, we studied the instructor solutions to homework and exams from 12 introductory CS courses from nine universities, identifying the presence of 15 patterns throughout the semester. We present results about the relative frequency of the patterns and the order in which the patterns tend to be introduced.