PyBryt: auto-assessment and auto-grading for computational thinking
This addresses the problem of scalable education in computational thinking for students and teachers, representing an incremental improvement in auto-assessment tools.
The paper tackles the challenge of teaching computational thinking at scale by introducing PyBryt, a Python library that provides formative feedback on programming assignments through dynamic evaluation of intermediate results against reference implementations.
We continuously interact with computerized systems to achieve goals and perform tasks in our personal and professional lives. Therefore, the ability to program such systems is a skill needed by everyone. Consequently, computational thinking skills are essential for everyone, which creates a challenge for the educational system to teach these skills at scale and allow students to practice these skills. To address this challenge, we present a novel approach to providing formative feedback to students on programming assignments. Our approach uses dynamic evaluation to trace intermediate results generated by student's code and compares them to the reference implementation provided by their teachers. We have implemented this method as a Python library and demonstrate its use to give students relevant feedback on their work while allowing teachers to challenge their students' computational thinking skills.