当前位置:
X-MOL 学术
›
arXiv.cs.CY
›
论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Synthesizing Tasks for Block-based Programming
arXiv - CS - Computers and Society Pub Date : 2020-06-17 , DOI: arxiv-2006.16913 Umair Z. Ahmed, Maria Christakis, Aleksandr Efremov, Nigel Fernandez, Ahana Ghosh, Abhik Roychoudhury, Adish Singla
arXiv - CS - Computers and Society Pub Date : 2020-06-17 , DOI: arxiv-2006.16913 Umair Z. Ahmed, Maria Christakis, Aleksandr Efremov, Nigel Fernandez, Ahana Ghosh, Abhik Roychoudhury, Adish Singla
Block-based visual programming environments play a critical role in
introducing computing concepts to K-12 students. One of the key pedagogical
challenges in these environments is in designing new practice tasks for a
student that match a desired level of difficulty and exercise specific
programming concepts. In this paper, we formalize the problem of synthesizing
visual programming tasks. In particular, given a reference visual task $\rm
T^{in}$ and its solution code $\rm C^{in}$, we propose a novel methodology to
automatically generate a set $\{(\rm T^{out}, \rm C^{out})\}$ of new tasks
along with solution codes such that tasks $\rm T^{in}$ and $\rm T^{out}$ are
conceptually similar but visually dissimilar. Our methodology is based on the
realization that the mapping from the space of visual tasks to their solution
codes is highly discontinuous; hence, directly mutating reference task $\rm
T^{in}$ to generate new tasks is futile. Our task synthesis algorithm operates
by first mutating code $\rm C^{in}$ to obtain a set of codes $\{\rm C^{out}\}$.
Then, the algorithm performs symbolic execution over a code $\rm C^{out}$ to
obtain a visual task $\rm T^{out}$; this step uses the Monte Carlo Tree Search
(MCTS) procedure to guide the search in the symbolic tree. We demonstrate the
effectiveness of our algorithm through an extensive empirical evaluation and
user study on reference tasks taken from the \emph{Hour of Code: Classic Maze}
challenge by \emph{Code.org} and the \emph{Intro to Programming with Karel}
course by \emph{CodeHS.com}.
中文翻译:
基于块的编程的综合任务
基于块的可视化编程环境在向 K-12 学生介绍计算概念方面发挥着关键作用。这些环境中的关键教学挑战之一是为学生设计新的练习任务,以匹配所需的难度级别并练习特定的编程概念。在本文中,我们将合成可视化编程任务的问题形式化。特别地,给定一个参考视觉任务 $\rm T^{in}$ 及其解决方案代码 $\rm C^{in}$,我们提出了一种自动生成集合 $\{(\rm T^{ out}, \rm C^{out})\}$ 的新任务以及解决方案代码,使得任务 $\rm T^{in}$ 和 $\rm T^{out}$ 在概念上相似但在视觉上不同。我们的方法基于认识到从视觉任务空间到其解决方案代码的映射是高度不连续的;因此,直接改变参考任务 $\rm T^{in}$ 来生成新任务是徒劳的。我们的任务合成算法首先通过变异代码 $\rm C^{in}$ 来获得一组代码 $\{\rm C^{out}\}$。然后,该算法对代码 $\rm C^{out}$ 进行符号执行以获得视觉任务 $\rm T^{out}$;此步骤使用蒙特卡罗树搜索 (MCTS) 程序来指导符号树中的搜索。我们通过对 \emph{Hour of Code: Classic Maze} 挑战的参考任务进行广泛的实证评估和用户研究来证明我们算法的有效性 {Code.org} 和 \emph{Intro to Programming with Karel \emph{CodeHS.com} 的课程。我们的任务合成算法首先通过变异代码 $\rm C^{in}$ 来获得一组代码 $\{\rm C^{out}\}$。然后,该算法对代码 $\rm C^{out}$ 进行符号执行以获得视觉任务 $\rm T^{out}$;此步骤使用蒙特卡罗树搜索 (MCTS) 程序来指导符号树中的搜索。我们通过对 \emph{Hour of Code: Classic Maze} 挑战的参考任务进行广泛的实证评估和用户研究来证明我们算法的有效性 {Code.org} 和 \emph{Intro to Programming with Karel \emph{CodeHS.com} 的课程。我们的任务合成算法首先通过变异代码 $\rm C^{in}$ 来获得一组代码 $\{\rm C^{out}\}$。然后,该算法对代码 $\rm C^{out}$ 进行符号执行以获得视觉任务 $\rm T^{out}$;此步骤使用蒙特卡罗树搜索 (MCTS) 程序来指导符号树中的搜索。我们通过对 \emph{Hour of Code: Classic Maze} 挑战的参考任务进行广泛的实证评估和用户研究来证明我们算法的有效性 {Code.org} 和 \emph{Intro to Programming with Karel \emph{CodeHS.com} 的课程。此步骤使用蒙特卡罗树搜索 (MCTS) 程序来指导符号树中的搜索。我们通过对 \emph{Hour of Code: Classic Maze} 挑战的参考任务进行广泛的实证评估和用户研究来证明我们算法的有效性 {Code.org} 和 \emph{Intro to Programming with Karel \emph{CodeHS.com} 的课程。此步骤使用蒙特卡罗树搜索 (MCTS) 程序来指导符号树中的搜索。我们通过对 \emph{Hour of Code: Classic Maze} 挑战的参考任务进行广泛的实证评估和用户研究来证明我们算法的有效性 {Code.org} 和 \emph{Intro to Programming with Karel \emph{CodeHS.com} 的课程。
更新日期:2020-11-06
中文翻译:
基于块的编程的综合任务
基于块的可视化编程环境在向 K-12 学生介绍计算概念方面发挥着关键作用。这些环境中的关键教学挑战之一是为学生设计新的练习任务,以匹配所需的难度级别并练习特定的编程概念。在本文中,我们将合成可视化编程任务的问题形式化。特别地,给定一个参考视觉任务 $\rm T^{in}$ 及其解决方案代码 $\rm C^{in}$,我们提出了一种自动生成集合 $\{(\rm T^{ out}, \rm C^{out})\}$ 的新任务以及解决方案代码,使得任务 $\rm T^{in}$ 和 $\rm T^{out}$ 在概念上相似但在视觉上不同。我们的方法基于认识到从视觉任务空间到其解决方案代码的映射是高度不连续的;因此,直接改变参考任务 $\rm T^{in}$ 来生成新任务是徒劳的。我们的任务合成算法首先通过变异代码 $\rm C^{in}$ 来获得一组代码 $\{\rm C^{out}\}$。然后,该算法对代码 $\rm C^{out}$ 进行符号执行以获得视觉任务 $\rm T^{out}$;此步骤使用蒙特卡罗树搜索 (MCTS) 程序来指导符号树中的搜索。我们通过对 \emph{Hour of Code: Classic Maze} 挑战的参考任务进行广泛的实证评估和用户研究来证明我们算法的有效性 {Code.org} 和 \emph{Intro to Programming with Karel \emph{CodeHS.com} 的课程。我们的任务合成算法首先通过变异代码 $\rm C^{in}$ 来获得一组代码 $\{\rm C^{out}\}$。然后,该算法对代码 $\rm C^{out}$ 进行符号执行以获得视觉任务 $\rm T^{out}$;此步骤使用蒙特卡罗树搜索 (MCTS) 程序来指导符号树中的搜索。我们通过对 \emph{Hour of Code: Classic Maze} 挑战的参考任务进行广泛的实证评估和用户研究来证明我们算法的有效性 {Code.org} 和 \emph{Intro to Programming with Karel \emph{CodeHS.com} 的课程。我们的任务合成算法首先通过变异代码 $\rm C^{in}$ 来获得一组代码 $\{\rm C^{out}\}$。然后,该算法对代码 $\rm C^{out}$ 进行符号执行以获得视觉任务 $\rm T^{out}$;此步骤使用蒙特卡罗树搜索 (MCTS) 程序来指导符号树中的搜索。我们通过对 \emph{Hour of Code: Classic Maze} 挑战的参考任务进行广泛的实证评估和用户研究来证明我们算法的有效性 {Code.org} 和 \emph{Intro to Programming with Karel \emph{CodeHS.com} 的课程。此步骤使用蒙特卡罗树搜索 (MCTS) 程序来指导符号树中的搜索。我们通过对 \emph{Hour of Code: Classic Maze} 挑战的参考任务进行广泛的实证评估和用户研究来证明我们算法的有效性 {Code.org} 和 \emph{Intro to Programming with Karel \emph{CodeHS.com} 的课程。此步骤使用蒙特卡罗树搜索 (MCTS) 程序来指导符号树中的搜索。我们通过对 \emph{Hour of Code: Classic Maze} 挑战的参考任务进行广泛的实证评估和用户研究来证明我们算法的有效性 {Code.org} 和 \emph{Intro to Programming with Karel \emph{CodeHS.com} 的课程。