Department or Program
Primary Wellesley Thesis Advisor
MIT App Inventor is a programming environment in which users build Android applications by connecting blocks together. Because its main audience is beginner programmers, it is important that users are given the proper guidance and instruction to successfully become creators. In order to offer this help, App Inventor provides text-based tutorials that describe the workflow of example programs to users. However, studies have shown that out-of-context help such as tutorials has little to no effect on learning, and when given the choice, users prefer in-context hints and suggestions. In order for users to overcome some of the barriers with self-training, we need to provide them with relevant information and in-context suggestions. Therefore, I am introducing Suggested Blocks, a data-driven model that leverages machine learning to provide users with relevant suggestions of which blocks to include in their programs.
In this project, I focused on developing the neural networks to power a suggested blocks system. Using original apps from real App Inventor users, I developed a set of experiments to discover plausible vector representations of the data, including tree traversals, n-grams, tree structures, as well as different network architectures to generate the best possible block suggestions for the users. The objective is not only to be accurate, but to provide suggestions that are sensible, relevant, and most importantly, educational. When simulating the best model on reconstructing an original project from a novice user, suggesting only 10 blocks at a time, the user would be able to drag-and-drop 60% of her blocks straight form the Suggested Blocks drawer. Overall, the results show promise for a future implementation of a Suggested Blocks system.