DIGITAL LIBRARY
PROFILING PROGRAM DECOMPOSITION IN CS1
Stanford University (UNITED STATES)
About this paper:
Appears in: EDULEARN22 Proceedings
Publication year: 2022
Pages: 10128-10135
ISBN: 978-84-09-42484-9
ISSN: 2340-1117
doi: 10.21125/edulearn.2022.2447
Conference name: 14th International Conference on Education and New Learning Technologies
Dates: 4-6 July, 2022
Location: Palma, Spain
Abstract:
Decomposition is a skill that is essential to software development. Breaking down a problem into subproblems, solving these subproblems independently, and then recomposing these solutions is perceived as the most challenging programming skill for learners to master. Researchers have studied decomposition in introductory programming courses through guided experiments, case studies, and surveys.

In this work, we follow a different, more scalable approach. We build a system to collect 78,500 code snapshots from two CS1 programming assignments of 250 students, detect the pivotal moments when the novice programmers decide to add a new function, and identify what drives their decisions from the code. We then classify the learners based on the identified reasons for adding new functions and study the relationship between the groups and student performance. Finally, we discuss the implications of our findings for teaching and future research.
Keywords:
Program decomposition, reasons for new functions, introductory programming courses.