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)隐含(即不显示解决方案代码)。我们的算法使用基于符号推理和基于图的代码表示技术来综合这些任务。我们展示了我们的算法可以生成来自Code Hour的Maze Challenge和Karel参考任务的数百个针对不同学生尝试的流行测验。我们通过专家评分使用评估标准来评估这些流行测验的质量。此外,我们已经构建了一个在线平台,通过流行测验的反馈赋能块编程任务的练习,并报告了一项初始用户研究结果。