NOPS 考试的自动评分:字符串问题的实施和扩展?

Autograding of NOPS exams: Implementation & extension to string questions?

我们正在使用 R/exams 在 Canvas 和 TestVision 中创建测试。

我们有其他表格和其他软件来进行笔试。

我知道 R/exams 有一个很棒的 NOPS 功能并且想知道:

  1. 用什么软件对 NOPS 表格进行自动评分?
  2. 那个软件也可以评估字符串问题吗?

现在看来,NOPS 格式并不能让软件轻松读取零件。理想情况下,该软件将进行调整,以便调整后的 NOPS 表格(蓝色的变化)可以更容易地阅读学生姓名和字符串问题:

NOPS 格式

NOPS 表格不是我们设计的,但它们遵循我们大学一直使用的格式。我们只是模仿他们的格式,因为我们最初只是自己生成 PDF 文件,但使用了我们大学的商业扫描软件。

正在扫描

然而,多年来我们在 exams::nops_scan() 中用 R 编写了自己的扫描器实现。基本方法是将 PDF 页面转换为 PNG 图像,将它们读入 R,将它们转换为黑白像素矩阵,在角落找到扫描仪标记,然后仅提取与这些标记相关的框。这些框要么包含以固定字体打印的数字,简单的决策树可以为其产生可靠的分类 - 或者这些框是 empty/filled 与选中的,也可以合理可靠地分类。结果以简单的文本格式存储,同样不是我们开发的,但与我们大学使用的商业系统完全兼容。

评分

根据扫描结果,函数 exams::nops_eval() 计算分数和等级。可以插入各种评估策略,从版本 2.4-0(撰写本文时的当前开发版本)开始,可以自定义函数生成的报告。

OCR 扩展

目前没有使用 OCR(光学字符识别),除了识别固定字体打印数字的简单任务。但是没有 hand-written 个字符或数字会被自动评估。我使用 tesseract 对此进行了一些尝试,但结果对于我们的目的来说不够可靠。

当前支持的字符串问题适用于 open-ended 个问题。因此,学生可以获得合理数量的 space 来写下一些东西。然后,教师可以手动对答案 sheet 进行评分,再次仅通过勾选框,可以相当可靠地阅读。完整 sheet 的扫描图像包含在学生的报告中,这样他们也可以看到答案表中包含的任何 hand-written feedback/corrections。

教程

有关使用 NOPS 方法的 hands-on 指南可在以下位置找到:http://www.R-exams.org/tutorials/exams2nops/

其他

不幸的是,该系统不是以非常模块化的方式实现的。这样做的原因是 two-fold:(1) 我们非常严格地遵循我们大学一直使用的给定格式。 (2) 大部分实现是在很多时间压力下编写的(见下面的轶事)。因此,虽然您建议的功能很不错,但它们不太可能适合当前的设置。如果您想尝试一下,我建议您编写一个模块化的新实现,只需使用现有代码中足够有用的点点滴滴。

轶事:由于打印 sheets 的复印店失误,大学系统扫描了大约 400-500 次考试 sheets。那是 mid-July,包括我在内的每个人都已经放假了。所以我在我的 parents 门廊上坐了两天来编写扫描仪工具并评估学生们等待的考试。