Students often get stuck when programming independently, and need help to progress. We explore ways to help students by offering them example-based support.
- Worked Examples. Worked examples present a demonstration of how to solve a similar problem, before a student works on their current problem. Research in a variety of domains has shown that viewing worked examples (WEs) can be a more efficient way to learn than solving equivalent problems. We investigate the effect of Worked Examples on novices’ learning in block-based programming environments. (SIGCSE'19).
- Example-Based Feedback. Worked Examples does not support students when they are stuck in the middle of programming. We designed example-based, step-by-step support to help students in the middle of programming. (ITiCSE'20).
Peer Code Helper
In this work, we designed a Peer Code Helper system to display worked examples, along with scaffolded self-explanation prompts. We found that WEs saved students time on initial tasks compared to writing code, but some of the time saved was lost in subsequent programming tasks. Overall, students with WEs completed more tasks within a fixed time period, but not significantly more.
Step Tutor helps struggling students during programming by presenting them with relevant, step-by-step examples. The goal of Step Tutor is to help students progress, and engage them in comparison, reflection, and learning. When a student requests help, Step Tutor adaptively selects an example to demonstrate the next meaningful step in the solution. It engages the student in comparing before and after code snapshots, and their corresponding visual output, and guides them to reflect on the changes. We published this work in ITiCSE 2021.
Generating Example-Based Feedback
We also developed algorithms to automatically generate data-driven example-based feedback. (EDM'19)