本指南提供了与 Classroom API 相关的评分代码示例。本文档重点介绍核心的 Classroom 评分流程:管理 StudentSubmission
状态和成绩。
请阅读成绩指南,熟悉 Google 课堂中的评分概念。
管理 StudentSubmission 状态
StudentSubmission
可能处于未提交、已提交或已发回状态。state
字段表示当前状态。分级通常在 StudentSubmission
处于 TURNED_IN
状态后进行。
如需使用 Classroom API 更改状态,请调用以下方法之一:
courses.courseWork.studentSubmissions.turnIn
:只有拥有StudentSubmission
的学生可以提交。courses.courseWork.studentSubmissions.reclaim
:只有StudentSubmission
的所有者学生可以回收该StudentSubmission
。只有在提交作业后,才能重新获取提交内容。courses.courseWork.studentSubmissions.return
:只有课程中的教师可以返回StudentSubmission
。只有在学生已提交作业的情况下,教师才能发回作业。
所有这些方法都接受空的 body
参数,如以下示例所示:
Python
service.courses().courseWork().studentSubmission().turnIn(
courseId=course_id,
courseWorkId=coursework_id,
id=studentsubmission_id,
body={}).execute()
Java
为学生提交的作业设置成绩
StudentSubmission
资源有两个字段,用于存储已评分的 CourseWork
作业的总体成绩:
draftGrade
是仅教师可见的临时成绩。assignedGrade
是向学生报告的成绩。
这些字段使用 courses.courseWork.studentSubmissions.patch
进行更新,如以下示例所示:
Python
studentSubmission = {
'assignedGrade': 99,
'draftGrade': 80
}
service.courses().courseWork().studentSubmissions().patch(
courseId=course_id,
courseWorkId=coursework_id,
id=studentsubmission_id,
updateMask='assignedGrade,draftGrade',
body=studentSubmission).execute()
Java
使用 Google 课堂界面时,教师必须先保存 draftGrade
,然后才能设置 assignedGrade
。然后,您可以将 assignedGrade
发回给学生。您的应用可以通过以下两种方式之一为学生的作业评分:
仅分配
draftGrade
。例如,这有助于教师在最终确定成绩之前手动检查成绩。学生无法查看草稿成绩。同时分配
draftGrade
和assignedGrade
,以便为作业评出完整的分数。
使用 updateMask
实参可配置要设置的字段。
如需了解修改 StudentSubmissions
所需的范围和权限,请参阅向学生回答添加附件。
读取分配的成绩
您可以使用 courses.courseWork.studentSubmissions.list
方法检索所有相应的 StudentSubmissions
,并检查相应的 assignedGrade
和 draftGrade
字段,从而访问特定 CourseWork
的所有成绩:
Python
response = coursework.studentSubmissions().list(
courseId=course_id,
courseWorkId=coursework_id,
# optionally include `pageSize` to restrict the number of student
# submissions included in the response.
pageSize=10
).execute()
submissions.extend(response.get('studentSubmissions', []))
if not submissions:
print('No student submissions found.')
print('Student Submissions:')
for submission in submissions:
print(f"Submitted at:"
f"{(submission.get('userId'), submission.get('assignedGrade'))}")
Java
请参阅检索学生回答,了解读取 StudentSubmissions
所需的范围和权限。
确定课程总成绩
Classroom API 不允许开发者读取或写入课程总成绩,但您可以通过编程方式计算该成绩。如果您想计算总成绩,请阅读成绩指南,了解缺席CourseWork
、评分周期和不同的评分系统等重要概念。
为插件附件评分
如果您是 Google 课堂插件开发者,可以为各个插件附件设置成绩,并配置该成绩在教师查看学生作业时显示。如需了解详情,请参阅活动类型附件和成绩回传演练。
评分准则成绩
StudentSubmissions
具有表示根据 Rubrics
给出的得分的字段:
无法使用 Google Classroom API 设置评分标准得分,但可以读取。如需了解详情,请参阅评分标准指南和限制。