Synthesizing Tasks for Block-based Programming

06/17/2020
by   Umair Z. Ahmed, et al.
0

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 T^in and its solution code C^in, we propose a novel methodology to automatically generate a set {( T^out, C^out)} of new tasks along with solution codes such that tasks T^in and 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 T^in to generate new tasks is futile. Our task synthesis algorithm operates by first mutating code C^in to obtain a set of codes { C^out}. Then, the algorithm performs symbolic execution over a code C^out to obtain a visual task 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 Hour of the Code: Classic Maze challenge by Code.org and the Intro to Programming with Karel course by CodeHS.com.

READ FULL TEXT
research
05/26/2023

Neural Task Synthesis for Visual Programming

Generative neural models hold great promise in enhancing programming edu...
research
05/27/2023

Synthesizing a Progression of Subtasks for Block-Based Visual Programming Tasks

Block-based visual programming environments play an increasingly importa...
research
08/26/2023

ORES: Open-vocabulary Responsible Visual Synthesis

Avoiding synthesizing specific visual concepts is an essential challenge...
research
03/28/2023

Adaptive Scaffolding in Block-Based Programming via Synthesizing New Tasks as Pop Quizzes

Block-based programming environments are increasingly used to introduce ...
research
05/03/2022

From Solution Synthesis to Student Attempt Synthesis for Block-Based Visual Programming Tasks

Block-based visual programming environments are increasingly used to int...
research
08/29/2020

ClipFlip : Multi-view Clipart Design

We present an assistive system for clipart design by providing visual sc...
research
04/02/2018

TipsC: Tips and Corrections for programming MOOCs

With the widespread adoption of MOOCs in academic institutions, it has b...

Please sign up or login with your details

Forgot password? Click here to reset