重新评估损坏的问题¶
尽管我们尽了最大努力,有时我们还是在考试中放置了一个不完整的问题。处理这种情况的建议程序是:
-
如果在只有少数学生参加考试时检测到错误,请更正问题、将其从考试中删除或用新问题替换。要么用最高分重新评分损坏的问题(见下文),要么手动调整受影响学生的分数,也许针对他们因遇到损坏的问题而面临的额外挑战添加一些修正系数。
-
If many students have taken the exam with the broken question then do not attempt to fix it but rather let the exam complete with all students experiencing the same issue.然后重新评分考试,所有学生都会因损坏的问题获得最高分,如下所述。
重新分级限制¶
ZJUI-Learn 目前不支持重新计算个人提交的分数。这意味着,如果问题与分数计算方式的更新有关,则没有自动过程来更新已完成评估的学生的分数。这包括但不限于:
- 正确答案计算的变化。
grade()或parse()功能的更改。- 外部评分者测试的变化。
- 各个元素权重的变化。
- 影响分级的元素属性的更改,例如
pl-checkbox的partial-credit或pl-order-blocks的grading-method。 - 问题、替代组或区域的分数发生变化。
- 评估分数或奖励分数的变化。
- 在考试类型的评估中添加、删除或替换问题。
但是,如果问题与损坏的问题有关,所有学生都应获得最高分,则系统会自动对评估进行重新评分,并为损坏的问题授予最高分。
通过为问题设置 forceMaxPoints 重新评分¶
要在重新评分期间为部分或所有学生的问题授予最高分,请编辑 infoAssessment.json 文件并为任何损坏的问题设置 "forceMaxPoints": true。例如:
{
"zones": [
{
"title": "Easy questions",
"questions": [
{ "id": "anEasyQ", "points": [10, 5, 3, 1, 0.5, 0.25], "forceMaxPoints": true },
{ "id": "aSlightlyHarderQ", "points": [10, 9, 7, 5] }
]
},
{
"title": "Hard questions",
"questions": [
{ "id": "hardQV1", "points": 10 },
{ "id": "reallyHardQ", "points": [10, 10, 10] },
{
"numberChoose": 1,
"points": 10,
"alternatives": [{ "id": "FirstAltQ" }, { "id": "SecondAltQ", "forceMaxPoints": true }]
}
]
}
]
}
在上面的示例中,问题 anEasyQ 和 SecondAltQ 将为任何提出这些问题并重新评分的学生授予最高分。
更新 infoAssessment.json 文件后,转到教师页面进行评估并打开“学生”选项卡。在未选择任何实例的情况下,选择 操作 → 重新评级 以重新评级每个评估实例。要仅对一名学生的单个评估实例重新评分,请先选择该学生的实例,然后选择 操作 → 重新评分。
forceMaxPoints 设置仅影响明确重新评分的评估实例。 稍后参加考试的学生在提交答案时不会受到 forceMaxPoints 的影响。此外,虽然在学生仍在学习时重新评分评估实例是可能的,但例如,如果学生在考试期间看到自己的分数突然发生变化,他们可能会感到困惑。因此,通常建议等到考试结束后再使用 forceMaxPoints 重新评分,以免学生感到困惑。
用替代方案处理问题¶
对于所有学生在评估中遇到的问题,上述系统都很简单。对于有替代方案的问题,鼓励教师考虑如何以公平的方式处理重新评分。例如,考虑上述评估中 SecondAltQ 被破坏的情况。在上面的例子中,我们只向那些获得SecondAltQ的学生授予最高分,而获得FirstAltQ的学生则不会获得自动最高分。然而,无论他们收到哪种选择,给所有学生最高分可能会更公平,如下所示:
{
"zones": [
{
"questions": [
{
"numberChoose": 1,
"points": 10,
"forceMaxPoints": true,
"alternatives": [{ "id": "FirstAltQ" }, { "id": "SecondAltQ" }]
}
]
}
]
}
使用分数上传重新评分问题¶
如果问题与评分过程中的更新有关,可以通过为每次提交上传新分数 来更新成绩。在这种情况下,典型的流程包括:
- 下载学生当前成绩及提交答案。
- 根据更新的评分流程计算新分数。根据具体情况,这可能涉及使用电子表格公式,或者在更复杂的情况下,编写脚本来计算新分数。
- 上传每次提交的新分数。
ZJUI-Learn GitHub 存储库 中提供了可用于更新分数的 Python 脚本的建议模板。此脚本提供了读取下载的 CSV 文件的起点,但您必须实现逻辑以根据更新的评分过程计算新分数。该脚本还包括用于根据现有信息(例如之前执行的测试、参数和正确答案)更新反馈和部分分数的占位符。必须实现的部分标有 TODO 注释,但根据重新分级所需的逻辑,您可能需要对脚本进行更广泛的更改。