Papers › Synthesizing Tasks for Block-based Programming

Synthesizing Tasks for Block-based Programming

17 Jun 2020NeurIPS 2020 12arXiv:2006.16913archive 2025-07-28

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 Tⁱⁿ and its solution code Cⁱⁿ, we propose a novel methodology to automatically generate a set {(Tᵒᵘᵗ, Cᵒᵘᵗ)} of new tasks along with solution codes such that tasks Tⁱⁿ and Tᵒᵘᵗ 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ⁱⁿ to generate new tasks is futile. Our task synthesis algorithm operates by first mutating code Cⁱⁿ to obtain a set of codes {Cᵒᵘᵗ}. Then, the algorithm performs symbolic execution over a code Cᵒᵘᵗ to obtain a visual task Tᵒᵘᵗ; 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}.

PaperPDFConference PDFCode

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

Code

adishs/neurips2020_synthesizing-tasks_code officialmentioned in papermentioned on GitHub report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

Not run by Syntology. Nothing on this page verifies that the listed code works.

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections