Program-design is an essential skill students in introductory computing courses must learn, but which continues to be difficult for students. Many introductory curricula focuses on low-level constructs, even when students are expected to gain higher-level problem-solving and program-design skills. How to Design Programs (HtDP) is a curriculum that teaches a multi-step approach to program-design, promoting multiple, interrelated program-design skills. My research explores how novice programmers use HtDP-based techniques to design programs, the design-related skills students learn and use, the factors that drive their design decisions, and how these weave into a conceptual framework of HtDP-based program-design.
F.E.V.G. Castro. Towards a Theory of HtDP-based Program-Design Learning. International Computing Education Research (Espoo, Finland. 13-15 August 2018)