Block-based programming environments are increasingly used to introduce computing concepts to beginners. However, novice students often struggle in these environments, given the conceptual and open-ended nature of programming tasks. To effectively support a student struggling to solve a given task, it is important to provide adaptive scaffolding that guides the student towards a solution. We introduce a scaffolding framework based on pop quizzes presented as multi-choice programming tasks. To automatically generate these pop quizzes, we propose a novel algorithm, PQuizSyn. More formally, given a reference task with a solution code and the student's current attempt, PQuizSyn synthesizes new tasks for pop quizzes with the following features: (a) Adaptive (i.e., individualized to the student's current attempt), (b) Comprehensible (i.e., easy to comprehend and solve), and (c) Concealing (i.e., do not reveal the solution code). Our algorithm synthesizes these tasks using techniques based on symbolic reasoning and graph-based code representations. We show that our algorithm can generate hundreds of pop quizzes for different student attempts on reference tasks from Hour of Code: Maze Challenge and Karel. We assess the quality of these pop quizzes through expert ratings using an evaluation rubric. Further, we have built an online platform for practicing block-based programming tasks empowered via pop quiz based feedback, and report results from an initial user study.
翻译:基于块编程环境日益被用于向初学者介绍计算概念。然而,由于编程任务的概念性和开放性,新手学生往往在这些环境中遇到困难。为了有效支持正在努力解决给定任务的学生,提供引导其走向解决方案的自适应支架至关重要。我们引入了基于多项选择编程任务的随堂测验支架框架。为了自动生成这些随堂测验,我们提出了一种新颖算法PQuizSyn。更正式地说,给定一个包含解决方案代码的参考任务以及学生当前的尝试,PQuizSyn综合生成具有以下特征的新任务作为随堂测验:(a) 自适应(即针对学生当前尝试进行个性化),(b) 易于理解(即容易理解和解决),以及(c) 隐藏性(即不泄露解决方案代码)。我们的算法利用基于符号推理和基于图的代码表示技术来综合这些任务。我们展示了该算法能够针对来自《编程一小时:迷宫挑战》和Karel的参考任务上不同的学生尝试,生成数百个随堂测验。我们通过专家评分使用评估标准来评估这些随堂测验的质量。此外,我们构建了一个在线平台,用于练习基于块编程任务,并通过随堂测验反馈提供支持,并报告了初步用户研究的结果。