Description
However, there is little research on how to make these systems learnable not only by seasoned programmers, but also by novices. To explore the possibility of using program synthesizers in educational contexts, we must understand what makes program synthesizers learnable for novices in the first place. Furthermore, we must also understand how synthesizers affect student learning outcomes.
Both chapters in this thesis focus on the application of program synthesizers in educational contexts. In Chapter 2, we present an in-depth analysis of the learnability of different publicly available program synthesizers by novice programmers with the goal of understanding how different design dimensions affect the learnability of such tools. In Chapter 3, we provide an overview of existing literature on the pedagogical impact of program synthesizers—or, rather, lack thereof. Also in Chapter 3, we contribute a user study done to evaluate the impact of our own custom program synthesizer on student learning outcomes and do not find any evidence of improved learning outcomes.
This project is joint work with Justin Lubin and Sarah Chasins, and each chapter lists my specific contributions at the start.