Errors and Debugging of Blocks-Based Programming in App Inventor - a SuperUROP Project

Dec 29, 2014 benji's Blog


Hi App Inventor World! Im Benji, a Super UROP on the MIT App Inventor team. Although I do have superpowers (shhh), Super UROP is an MIT program for advanced undergraduates at the Institute to do long-term, intensive research. My research interests lie at the intersection of data science and education. I am currently creating systems to collect data that will help myself and the team better understand how users program with App Inventors blocks-based visual programming language, Blockly!

While Blockly is used by millions of users in dozens of projects worldwide, little is known about how people use the blocks. I have created a logging system known as Blocks-Level Analytics (BLA). It logs every step a user takes in her or his app creation process. The basis of my research is that by seeing the entire process (as opposed to just the finished app) programmers go through while creating their programs, in this case apps, we can better understand the thought process of these people as they program.

I am currently looking at how errors occur while people program and how these people then resolve the errors (or, in other words, how they debug). BLA enables us to analyze and understand errors in context. The eventual goal of this understanding is to further develop App Inventor and its teaching resources to prevent similar frustrations in the future!

You can learn a little more about this research by looking at this poster that I presented in early December at the SuperUROP research fair, highlighted in the video above.

This research is supervised by Hal Abelson and funded by the MIT EECS - Google Research and Innovation Scholarship.

----------

About Benji:
Benjamin Benji Xie is a senior (4th year) at MIT studying computer science and education. He has been working with the App Inventor team since January 2014 and has previous experience in data analytics and software development. Away from the laptop, Benji is a captain of the MIT Cross Country Team and the technical lead for EECScon, a conference showcasing undergraduate research at MIT. He plans on pursuing a masters in engineering (MEng) at MIT next year.