`

Timezone: »

Poster
Umair Ahmed · Maria Christakis · Aleksandr Efremov · Nigel Fernandez · Ahana Ghosh · Abhik Roychoudhury · Adish Singla

Wed Dec 09 09:00 AM -- 11:00 AM (PST) @ Poster Session 3 #960
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 $\task^{in}$ and its solution code $\code^{in}$, we propose a novel methodology to automatically generate a set $\{(\task^{out}, \code^{out})\}$ of new tasks along with solution codes such that tasks $\task^{in}$ and $\task^{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 $\task^{in}$ to generate new tasks is futile. Our task synthesis algorithm operates by first mutating code $\code^{in}$ to obtain a set of codes $\{\code^{out}\}$. Then, the algorithm performs symbolic execution over a code $\code^{out}$ to obtain a visual task $\task^{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 Code: Classic Maze challenge by Code.org and the Intro to Programming with Karel course by CodeHS.com.

Author Information

Nigel Fernandez (Max Planck Institute for Software Systems (MPI-SWS))

I'm a research fellow in the Machine Teaching Group at the Max Planck Institute for Software Systems (MPI-SWS), Germany. I've a predilection to solve hard problems with a heady mix of theory and code. I'm passionate about research in NLP, ML for Education, Program Synthesis, Computer Vision and RL. I aim to pursue a career in research and entrepreneurship.

Abhik Roychoudhury (National University of Singapore)

Abhik Roychoudhury is a Professor (Provost's Chair) of Computer Science at the National University of Singapore. He has led various initiatives including the National Satellite of Excellence in Trustworthy Software Systems , as well as the Singapore Cyber-security Consortium, which is a consortium of over 30 companies in the cyber-security space engaging with academia for research and collaboration. His research in software systems, focuses on software testing and analysis, software security and trust-worthy software. His research on automatically repairing programs at a large scale contributes to the vision of self-healing software. Many of his recent research works have led to usage such as the research on program repair has been used for teaching of introductory programming via the Prutor system in India, and his research on fuzz testing in the form of the AFLFast tool has been integrated into the American Fuzzy Lop (AFL) fuzzer which is used by corporations for finding software vulnerabilities. He has served as an Associate Editor of IEEE Transactions on Software Engineering (TSE) during 2014-18, and is currently serving as an Associate Editor of IEEE Transactions on Dependable and Secure Computing (TDSC), ACM Transactions on Software Engineering and Methodology (TOSEM). His former doctoral students have been placed at universities all over the world as academics (Peking University, University College London, University of Melbourne, Monash, Shandong, SUSTech, SUTD) and have received various awards for their doctoral research including an ACM SIGSOFT Outstanding Doctoral Dissertation Award. Abhik received his own Ph.D. in Computer Science from the State University of New York at Stony Brook in 2000.