Block-based visual programming environments are increasingly used to introduce computing concepts to beginners. Given that programming tasks are open-ended and conceptual, novice students often struggle when learning in these environments. AI-driven programming tutors hold great promise in automatically assisting struggling students, and need several components to realize this potential. We investigate the crucial component of student modeling, in particular, the ability to automatically infer students' misconceptions for predicting (synthesizing) their behavior. We introduce a novel benchmark, StudentSyn, centered around the following challenge: For a given student, synthesize the student's attempt on a new target task after observing the student's attempt on a fixed reference task. This challenge is akin to that of program synthesis; however, instead of synthesizing a {solution} (i.e., program an expert would write), the goal here is to synthesize a {student attempt} (i.e., program that a given student would write). We first show that human experts (TutorSS) can achieve high performance on the benchmark, whereas simple baselines perform poorly. Then, we develop two neuro/symbolic techniques (NeurSS and SymSS) in a quest to close this gap with TutorSS.
翻译:基于积木块的视觉编程环境越来越多地被用于向初学者介绍计算概念。由于编程任务具有开放性和概念性,初学学生在此类环境中学习时常面临困难。人工智能驱动的编程辅导工具在自动辅助遇到困难的学生方面具有巨大潜力,但要实现这一潜力需要多个组件的支持。我们研究了学生建模这一关键组件,特别是自动推断学生误解以预测(合成)其行为的能力。我们提出了一个新的基准测试StudentSyn,其核心挑战如下:对于给定的学生,在观察到该学生对固定参考任务的完成尝试后,合成该学生对新目标任务的完成尝试。该挑战类似于程序合成任务,但目标并非合成一个{解决方案》(即专家撰写的程序),而是合成一个{学生尝试》(即特定学生会编写的程序)。我们首先证明人类专家(TutorSS)在该基准测试上能达到较高性能,而简单基线方法表现不佳。随后,我们开发了两种神经/符号技术(NeurSS和SymSS),力图缩小与TutorSS之间的性能差距。