Teaching Program Decomposition in CS1: A Conceptual Framework for Improved Code Quality
Georgiana Haldeman, Judah Robbins Bernal, Alec Wydra, Paul Denny

TL;DR
This paper introduces a conceptual framework for teaching program decomposition in CS1 courses, grounded in code style principles, to improve student skills and enable automated educational tools.
Contribution
It presents a systematic, teachable approach to program decomposition, including scaffolded exercises and potential for automation in educational tools.
Findings
Framework grounded in code style principles
Systematic approach for teaching decomposition
Potential for automation in educational tools
Abstract
Program decomposition is essential for developing maintainable and efficient software, yet it remains a challenging skill to teach and learn in introductory programming courses. What does program decomposition for procedural CS1 programs entail? How can CS1 students improve the decomposition of their programs? What scaffolded exercises can instructors use to teach program decomposition skills? We aim to answer all these questions by presenting a conceptual framework that (1) is grounded in the established code style principles, (2) provides a systematic approach that can be taught to students as an actionable strategy to improve the program decomposition of their programs, and (3) includes scaffolded exercises to be used in classroom activities. In addition, this systematic approach is automatable and can further be used to implement visualizers, automated feedback generators and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsTeaching and Learning Programming · Experimental Learning in Engineering · Educational Technology and Assessment
