Design Patterns and Automated Support for Block-Based Programming Activities in Non-Computing Classes
Nicholas Lytle · 2019
To provide K-12 computing education for all, programming cannot be regulated to only computer science classes. Instead, computing education must be infused into all other required courses reaching all students through curriculum-integrated computing activities. This will pose challenges as students in these settings have an increasingly wide range of programming backgrounds. Additionally, teachers must feel comfortable not only teaching programming, but doing so in a meaningful context that integrates coding into their course topics. To truly meet the scale of this challenge, teachers will need to be able to develop meaningful integrated programming lessons, and have the supports necessary to implement them in a wide-variety of classes with students of vastly different skill-levels. This research will investigate two major means of aiding the rapid development and deployment of integrated block-based programming lessons in K-12 courses. The first will be through exploring design patterns for these integrated lessons, specifically focusing on how different activity types, scaffolding, and progressions affect classroom and student programming outcomes. The second will be in the research and development of generalized data-driven algorithms that will support novice teachers and students during programming in a wide-variety of block-based activities.