Proof Blocks is a software tool that allows students to practice writing mathematical proofs by dragging and dropping lines instead of writing proofs from scratch. Proof Blocks offers the capability of assigning partial credit and providing solution quality feedback to students. This is done by computing the edit distance from a student's submission to some predefined set of solutions. In this work, we propose an algorithm for the edit distance problem that significantly outperforms the baseline procedure of exhaustively enumerating over the entire search space. Our algorithm relies on a reduction to the minimum vertex cover problem. We benchmark our algorithm on thousands of student submissions from multiple courses, showing that the baseline algorithm is intractable, and that our proposed algorithm is critical to enable classroom deployment. Our new algorithm has also been used for problems in many other domains where the solution space can be modeled as a DAG, including but not limited to Parsons Problems for writing code, helping students understand packet ordering in networking protocols, and helping students sketch solution steps for physics problems. Integrated into multiple learning management systems, the algorithm serves thousands of students each year.
翻译:证明块是一种软件工具,允许学生通过拖放代码行而非从头编写证明来练习编写数学证明。该工具支持部分评分功能,并为学生提供解决方案质量反馈,其实现方式是通过计算学生提交内容与预定义解决方案集之间的编辑距离。本研究提出了一种编辑距离问题的算法,该算法显著优于对整个搜索空间进行穷举枚举的基线方法。我们的算法通过归约到最小顶点覆盖问题实现。我们在多门课程中收集的数千份学生提交数据上对算法进行了基准测试,结果表明基线算法不可行,而所提算法对课堂部署至关重要。该新算法还适用于解空间可建模为有向无环图的其他领域问题,包括但不限于用于代码编写的帕森斯问题、帮助学生理解网络协议中数据包排序问题,以及辅助学生勾勒物理问题解决步骤。该算法已集成到多个学习管理系统,每年服务数千名学生。