Problem decomposition--the ability to break down a large task into smaller, well-defined components--is a critical skill for effectively designing and creating large programs, but it is often not included in introductory computer science curricula. With the rise of generative AI (GenAI), students even at the introductory level are able to generate large quantities of code, and it is becoming increasingly important to equip them with the ability to decompose problems. There is not yet a consensus among educators on how to best teach and assess the skill of decomposition, particularly in introductory computing. This practitioner paper details the development of questions to assess the skill of problem decomposition, and impressions about how these questions were received by students. A challenge unique to problem decomposition questions is their necessarily lengthy context, and we detail our approach to addressing this problem using Question Suites: scaffolded sequences of questions that help students understand a question's context before attempting to decompose it. We then describe the use of open-ended drawing of decomposition diagrams as another form of assessment. We outline the learning objectives used to design our questions and describe how we addressed challenges encountered in early iterations. We present our decomposition assessment materials and reflections on them for educators who wish to teach problem decomposition to beginner programmers.
翻译:问题分解——将大型任务拆分为更小、定义明确的组件的能力——是有效设计和创建大型程序的关键技能,但该技能通常未被纳入计算机科学入门课程。随着生成式人工智能(GenAI)的兴起,即使是入门阶段的学生也能生成大量代码,因此培养他们的问题分解能力变得日益重要。教育工作者尚未就如何最佳地教授和评估分解技能达成共识,尤其是在入门计算课程中。本实践论文详细阐述了评估问题分解技能所设计的问题开发过程,以及学生对这些问题反馈的初步观察。问题分解题目特有的挑战在于其必然冗长的上下文背景,我们通过使用“问题套件”——一种支架式问题序列,帮助学生在尝试分解前理解题目背景——来应对这一挑战。随后,我们描述了开放式绘制分解图作为另一种评估形式的设计思路。我们概述了设计题目时依据的学习目标,并说明如何解决早期迭代中遇到的挑战。本文为希望向编程初学者教授问题分解的教育工作者提供了分解评估材料及相关反思。