跳转至

手动评分

有些问题可能需要手动评分,可以是完全评分(例如,自由形式的论文类型问题),也可以是部分评分(例如,编码风格或“展示您的作品”组件)。 ZJUI-Learn目前支持两种手动评分方式:

  • 课程工作人员可以下载包含学生答案的 CSV 文件,离线执行任何评分任务,以及上传包含问题分数和可选的每个问题反馈的 CSV 文件。
  • 在线网络界面可用于对个别实例问题进行评分。

手动评分的问题也可以使用 AI 评分 进行评分,它使用大型语言模型将您的评分标准应用于每次提交。

配置手动评分的问题

对于需要手动评分的题目,可以通过测评配置中的manualPoints将题目设置为手动评分,如下:

infoAssessment.json
{
  "questions": [
    { "id": "manualGradingOnly", "manualPoints": 2 },
    { "id": "combinedManualAndAutoGrading", "autoPoints": 2, "manualPoints": 6 }
  ]
}

设置为仅使用手动评分(即使用手动评分但没有自动评分)的问题允许学生“保存”答案,但没有“保存并评分”按钮。相反,学生只需根据需要多次保存答案,并且所有提交的答案都会被存储。

建议还将手动评分的问题标记为 "singleVariant": true,这样即使在家庭作业评估中,学生也只会获得一个随机变体。默认情况下,仅对最后一个变体的最后一次提交执行手动评分,因此使用单个变体可以简化评分过程和学生反馈。 singleVariant 设置可以在问题中的 info.json 文件 中更新,如下所示:

info.json
{
  "uuid": "cbf5cbf2-6458-4f13-a418-aa4d2b1093ff",
  "singleVariant": true
}

任何元素都可以在question.html中使用来编写手动评分的问题。所有学生输入将被保存并可用于手动评分,包括 pl-string-inputpl-file-editorpl-file-uploadpl-rich-text-editor 等。

使用文件上传进行手动评分

下载学生提交的答案

学生完成评估后,请转至评估页面,然后选择“下载”选项卡,然后选择 <assessment>_submissions_for_manual_grading.csv 文件来下载提交的答案。这看起来像:

uid,uin,qid,old_score_perc,old_feedback,old_auto_points,old_manual_points,submission_id,params,true_answer,submitted_answer,old_partial_scores,partial_scores,score_perc,feedback
student1@example.com,1,explainMax,0,,0,0,42983,{},{},{"ans": "returns the maximum value in the array"},,,,
student2@example.com,2,explainMax,0,,0,0,42984,{},{},{"ans": "gives the set of largest values in the object"},,,,
student2@example.com,2,describeFibonacci,100,,10,0,42987,{},{},{"ans": "calculates the n-th Fibonacci number"},,,,

对于组评估,uid 列替换为 group_nameuid_list 列,分别包含组名称和所有组成员的用户 ID 列表。

此 CSV 文件末尾有三个空白列,可用于显示百分比分数(0 到 100)以及可选的反馈和部分分数。 submission_id 是一个内部标识符,ZJUI-Learn 使用它来准确确定正在对哪个提交的答案进行评分。 paramstrue_answer 列显示问题数据。 old_score_perc 列显示学生当前的分数,而 old_auto_pointsold_manual_points 显示已提交的自动评分和手动评分分数。如果之前上传中已提供反馈,则 old_feedback 列将包含学生当前的反馈。

如果学生上传了文件,那么您也可以从“下载”选项卡下载 <assessment>_files_for_manual_grading.zip。 The scores and feedback should still be entered into the CSV file.

<assessment>_files_for_manual_grading.zip 文件包含学生上传用于评分的所有文件。对于工作区问题,请在问题的 info.json 文件"gradedFiles" 列表中列出要包含在此下载文件中的所有文件:

info.json
{
  "workspaceOptions": {
    "gradedFiles": ["starter_code.h", "starter_code.c"]
  }
}

上传分数和反馈

编辑每个提交答案的百分比分数和/或反馈后,转到评估页面,然后转到“学生”选项卡,然后从“上传”菜单中选择“上传问题分数”,上传 CSV 文件。如果您将任何学生的 score_percfeedback(或两者)留空,则相应的条目将不会更新。

与 CSV 文件中的每一行关联的提交通过以下方法之一进行标识(按优先顺序):

  1. 如果该行包含不留空的 submission_id 列,则该列用于标识要更新的提交。 In this case, the uid, group_name and qid columns, if they are provided, are used for verification only, and any mismatches are listed in the upload output as errors.
  2. 如果 submission_id 列留空或不存在,则通过匹配 uid(或用于小组评估的 group_name)、instanceqid 列来识别提交。在这种情况下,必须提供所有这些列。

鼓励分级人员保留 submission_id 列用于识别,以及 uid(或 group_name)和 qid 列用于验证,以避免任何歧义。其他不涉及提交识别的列,例如 paramsold_score_percsubmitted_answer,如果存在,将被忽略。

每个问题的分数和/或反馈都会更新,并且总评估分数将重新计算。所有更新均以 100% 的 credit 完成,因此学生可以准确获得上传的分数。

如果您更喜欢使用分数而不是百分比分数,请将 CSV 文件中的 score_perc 列重命名为 points。请注意,这些选项中的任何一个都会更新问题的分数,以便问题的总分反映该列的值。对于具有单独自动点和手动点的问题,您可以将此列替换为名为 manual_score_percauto_score_percmanual_points 和/或 auto_points 的列。

如果提供了 feedback 列,则默认情况下会向提交面板上方的学生显示该列,如下图所示。反馈可以使用Markdown格式。

学生面板上方显示的反馈

您还可以选择设置部分分数。这些可以基于问题的各个元素(通常基于元素的 answers-name 属性),或您希望使用的任何其他设置。部分分数必须使用 JSON 对象表示,其中键对应于各个元素。每个元素键都应映射到一个对象,并且理想情况下应包含 score(值在 0 到 1 之间)和 weight(如果不存在,则默认为 1)的值。例如,要为包含元素 answer1answer2 的问题分配成绩,请使用:

{
  "answer1": { "score": 0.7, "weight": 2, "feedback": "Almost there!" },
  "answer2": { "score": 1, "weight": 1, "feedback": "Great job!" }
}

如果 partial_scores 列包含有效值,并且 auto_score_percauto_points 中没有值,则自动评分分数将根据部分分数的加权平均值计算。例如,上面的分数将计算为 80%(权重 2 的 70% 和权重 1 的 100% 之间的加权平均值)。

警告:请注意,某些元素(例如绘图或矩阵元素)可能依赖于具有特定结构和对象的详细部分得分值。更新部分分数时,请确保遵循与原始部分分数相同的结构,以避免出现任何问题。更改这些值可能会导致在呈现这些元素的问题页面时出现错误。您可以在 old_partial_scores 列中找到原始的部分分数结构。

使用 Web 用户界面手动评分

手动评分的用户界面旨在鼓励一种工作流程,其中每个单独问题的所有提交都会一起评分,而不是一次对一个完整的评估实例进行评分。这使得评分者可以一次专注于与一个问题相关的具体问题,并在所有评估中提供更一致的评分。如果分配了手动分数,则个别学生提交的内容将被标记为手动评分,或者可以由课程工作人员手动标记。一旦对提交进行评分,界面就会前进到同一问题的下一个提交。

学生完成评估后,打开“手动评分”选项卡。此页面将列出本次评估中的所有问题,以及需要评分的提交数量。对于至少有一个提交标记为评分的问题,将显示“对下一个提交进行评分”按钮,该按钮将直接跳转到需要评分的提交之一。或者,单击问题标题将打开该问题的所有学生答案的列表。

!!! info 「学生提交的顺序」

学生提交的问题的列出顺序故意不基于有关学生或提交数据的任何确定性信息。相反,提交内容以稳定的伪随机顺序列出(即,如果重新加载页面,则使用相同的顺序)。同样,当评分者提交成绩或跳过提交时,下一个要评分的提交将基于相同的顺序。同一评估的不同问题将以不同的顺序列出同一组学生。

这种排序的主要原因是为了确保与提交的评分顺序相关的任何顺序偏差或差异不会影响任何特定的学生或群体。研究表明,评分者倾向于对后期提交的作品进行更严格的评分或给予较低质量的反馈。评分者还可能无意中将提交的内容与最近看到的答案进行比较,而不是与标题或样本答案进行比较。更多详情:

- 王志涵 (Helen) 和裴家新和李军,[*3000 万张画布评分记录揭示了广泛的顺序偏差和系统引起的姓氏初始差异*](https://ssrn.com/abstract=4603146) (2023)。
- Goldbach, C.、Sickmann, J. 和 Pitz, T. [*顺序决策偏差 – 来自评分考试的证据*](https://doi.org/10.1080/00036846.2021.1976390)。应用经济学(2021),54(32),3727–3739。

学生提交的问题列表使课程工作人员能够将个别学生的答案(或问题的所有答案)标记给特定的评分者。这可以通过选择要标记的提交,然后选择“评分标签”按钮并选择负责这些提交的评分者来完成。仅列出具有课程实例编辑权限 的员工进行标记。

在个人提交的评分页面中,评分者可以为问题分配一组特定的手动分数,并根据需要提供反馈(允许 Markdown 格式)。对于带有自动评分的问题,还可以覆盖分配给该问题的自动评分分数。评分者还可以选择使用百分比分数而不是分数。设置这些值后,评分者可以选择“提交”,这将更新分数并打开下一个要评分的问题。

在某些情况下,评分者可能没有信心对特定提交进行评分。在这种情况下,评分者可以跳过问题,或使用同一按钮的下拉菜单将此问题分配给其他评分者(例如,讲师或首席助教)审阅。

默认情况下,评分页面将显示问题、正确答案和提交内容,内容与学生看到的内容相同。但是,对于描述较长的问题,可以使用 pl-hide-in-manual-grading 元素 隐藏部分信息。这使得评分者能够专注于问题或答案的重要部分。还可以使用 pl-manual-grading-only 元素 向问题添加信息,例如仅限员工的解决方案或评分评论。此元素中的任何信息都将显示给评分者,但不会显示给学生。

创建手动评分细则

教师可以设置结构化的评分标准,以使手动评分过程更快、更一致和更公平。该评分标准允许评分者从一组具有关联点和反馈的预定项目中进行选择,而不是手动设置点和反馈消息。

评分细则由一组评分细项组成。每个项目都分配有一个分值,可以是正值 (credit)、负值(罚分或扣除)或零(不影响分数的反馈)。然后,评分者可以从评分标准项目列表中选择适用于特定提交的评分评分项目。然后,提交的分数基于为提交选择的所有项目的所有分数的总和。

要创建标题,请打开一个单独的问题实例。在评分面板上,单击“Rubric”按钮以打开Rubric设置。

评分面板上的红字按钮

标题设置对话框

在仅进行手动评分的问题中,评分标准会为整个问题分配分数。在自动评分问题以及手动评分和自动评分相结合的问题中,评分标准可以设置为仅应用于手动分数或总分。此设置导致评分计算如下:

  • 如果选择“将评分标准应用于手动分数”,则评分标准评分获得的分数将添加到自动评分器的分数中,得出最终分数。这种类型的评分通常用于手动评分补充自动评分的问题,例如编程问题中的代码风格,或者特定计算的解释和原理。
  • 如果选择“将评分标准应用于总分”,则自动评分器组件将被忽略,并且评分评分标准将覆盖整个问题的最终分数。当自动评分方法无法捕获所有可能的正确答案时,使用此设置,并使用手动评分来审查未正确评分的案例。

教师可以将评分标准设置为使用正向或负向评分。在积极评分中,提交从零开始,各个评分项目对应于学生“获得”的分数,这些分数加起来就是最终分数。在负评分中,提交从最高分数开始,各个评分项目对应于从分数中减去的处罚或扣分。这两个选项都允许创建具有 0 分值的项目,这提供的反馈不会影响其分数。即使在正或负评分标准中,各个评分标准项目也可能具有正或负分值的组合,以为评分者提供额外的灵活性。

默认情况下,评分标准产生的分数上限为与问题相关的最高分,并且处罚不会导致分数低于零。或者,可以通过为该评分分配最低评分(通常允许负分)和最大额外学分(允许高于最高分)来扩展此限制。

每个评分标准项目至少包含一个分值和一个描述。此描述会向评分者显示并反馈给学生。还可以添加对标题项目的更详细的解释,以便学生获得更多反馈。评分者注释可以设置为对评分者可见,但对学生不可见,并且可用于提供有关何时/如何使用(或不)评分细则项目的场景的说明。

默认情况下,所有评分细则项目都设置为在所有情况下都向学生显示,并通过视觉指示器显示哪些评分细则项目适用于单个学生。这些设置还允许评分者仅显示应用的评分项目。如果特定处罚或学分/奖励分仅适用于一小部分学生,则此选项可能很有用,这可能会让没有选择该评分细则项目的学生感到困惑。

评分标准项目的描述、解释和评分者注释以及评分标准的评分者指南可能包括将在评分界面中替换的胡须图案以及具有适当值的学生反馈。这些模式基于为学生的变体或学生提交的答案设置的参数和正确答案。标题设置对话框的底部显示了可用于特定问题的模式列表,以供参考。例如,如果变体将 generate 中的值设置为 data["params"]["starting_index"],则标题项可能在描述、解释或评分者注释中包括模式 {{params.starting_index}}。该模式将替换为学生特定变体的相应参数值,如下面的屏幕截图所示。

设置中的标题项目

然后,评分者将在评分面板中看到更新后的评分细则项目描述或解释,以反映学生变体的适当参数值。

评分面板中的评分项目

当学生看到他们的反馈时,每个学生的标题项目都会相应更新,以便学生可以看到与其变体相匹配的定制反馈。

学生反馈中的标题

更新标题

随着评分的进展,评分者可能会发现需要更改评分标准的新场景,例如新类型的惩罚或积分或更专业的反馈。即使评分已经开始,评分细则也可以根据需要进行更改。评分细则中的更改将在任何仍需要评分的提交内容中呈现给所有评分者。

如果在对某些提交进行手动评分后评分细则发生更改,则更改可能会影响之前评分的提交,如下所示:

  • 添加新的评分标准项目不会影响现有提交的分数;
  • 更改分配给评分标准项目的分值将触发使用更新的分值重新计算应用该评分标准项目的所有提交的分数;
  • 更改评分标准项目的描述或解释将更新向学生显示的反馈,但不会触发分数重新计算;
  • 删除评分标准项目将触发重新计算分数,而不会删除应用该评分评分项目的所有提交的评分评分项目;
  • 更改最低分数或最大额外学分将导致重新计算所有现有的评分标准。

更新评分标准设置时,设置对话框底部的标志使评分者可以选择标记所有提交的内容以进行手动评分。如果更改足够重要,需要对所有先前评分的问题进行审查或“抽查”,以确保它们考虑到新的评分标准,则可以使用此选项。

使用评分标准对提交内容进行评分

要使用评分标准对提交内容进行手动评分,评分者必须选择适用于特定提交内容的项目,然后按“提交”。此外,每个评分细则项目(或长评分细则中的前 10 个项目中的每一个)都分配有与数字相对应的键盘快捷键;按键盘上的该数字会导致该项目被选择(或清除,如果已选择)。

评分者可以灵活地在评分细则项目的顶部应用评分调整(正或负)。当教师需要对不适用于特定评分标准项目的非常规提交做出判断时,可以使用此方法。如果在多次提交中发现问题,则不鼓励使用此选项,因为附加的评分标准项目在提供反馈和调整成绩方面提供了更大的灵活性。