Automatic Scaffolding for Procedural Learning
MetadataShow full item record
A key challenge in education is how provide support that is tailored to the learner's individual needs. Effective teachers and curricula typically provide such support, often referred to as instructional scaffolding, through the development of progressions of practice problems, step-by-step demonstrations, and strategies for diagnosing misconceptions. This process is often tedious and time-consuming. Furthermore, it typically requires a large amount of design by experts and little can be reused across educational domains. As a result, creating adaptive educational content often remains prohibitively difficult. This thesis presents a general framework for constructing instructional scaffolding for procedural learning, a key domain of learning in which the goal is to learn a step-by-step procedure. In contrast to previous approaches that require a large amount of domain-specific authoring, this framework takes as input only the procedure to be learned and produces scaffolding automatically. Directly encoding procedural knowledge in this way allows us to leverage techniques from the software engineering community. The framework uses test input generation tools to synthesize systematic progressions of practice problems that start easy, grow more difficult, adapt to the learner, and ultimately cover all of the important pathways through the procedure. When provided with a mapping from programming language elements to visual objects in a user interface, the framework can also automatically generate step-by-step demonstrations for any practice problem associated with a given procedure. Finally, the framework can synthesize many K-12 mathematical algorithms by demonstration, enabling it to learn ``buggy'' algorithms from student data. More generally, this thesis explores how the natural hierarchies that exist within cognitive models of target concepts can suggest pragmatic and automatic ways to teach them.