Computational thinking and problem-solving skills are essential for everyone in the 21st century, both for students to excel in STEM+Computing fields and for adults to thrive in the digital economy. Consequently, educators are putting increasing emphasis on pedagogical tasks in open-ended learning domains such as programming, conceptual puzzles, and virtual reality environments. When learning to solve open-ended tasks by themselves, novice learners often struggle because such tasks are typically underspecified, conceptual, and require multi-step reasoning. These struggling learners can benefit from individualized assistance, for instance, by receiving personalized curriculum across tasks or feedback within a task. Unfortunately, human tutoring resources are scarce, and receiving individualized human assistance is rather a privilege. Technology empowered by artificial intelligence has the potential to tackle this scarcity challenge by providing scalable and automated machine assistance. However, the state-of-the-art technology is limited: it is designed for well-defined procedural learning but not for open-ended conceptual problem-solving.
The TOPS project is devoted to address this fundamental societal challenge of providing cost-effective and inclusive education that fosters computational thinking and problem-solving skills. The project aims to develop novel techniques for machine-assisted teaching in open-ended learning domains. Most prominently, these techniques can synthesize new tasks of desirable characteristics and recommend the next task to the learner for efficient learning. Moreover, these techniques can provide explicable grade points when the learner is solving a task and actionable hints if the learner reaches an impasse. The project also involves designing new computational learning models that can be used to simulate and compare the usefulness of different forms of assistance. Finally, the project aims to demonstrate the performance of developed techniques in various open-ended learning domains, including visual programming and Python programming.