本指南提供 Classroom API 的評分相關程式碼範例。本文著重於 Classroom 評分的核心流程:管理 StudentSubmission
狀態和成績。
請參閱成績指南,熟悉 Classroom 的評分概念。
管理 StudentSubmission 狀態
StudentSubmission
可能會取消繳交、繳交或發還。state
欄位會指出目前的狀態。評分通常會在 StudentSubmission
處於 TURNED_IN
狀態後進行。
如要使用 Classroom API 變更狀態,請呼叫下列其中一種方法:
courses.courseWork.studentSubmissions.turnIn
:只有擁有StudentSubmission
的學生可以繳交作業。courses.courseWork.studentSubmissions.reclaim
:只有擁有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
使用 Classroom 使用者介面時,老師必須先儲存 draftGrade
,才能設定 assignedGrade
。然後將 assignedGrade
發還給學生。應用程式可以透過下列任一方式評估學生的作業:
只指派
draftGrade
。舉例來說,老師可以先手動檢查成績,再最終確認。學生無法查看草稿成績。同時指派
draftGrade
和assignedGrade
,即可為作業評分。
使用 updateMask
引數設定要設定的欄位。
如要瞭解修改 StudentSubmissions
所需的範圍和權限,請參閱「在學生回覆中新增附件」。
讀取指派的成績
如要存取特定 CourseWork
的所有成績,請使用 courses.courseWork.studentSubmissions.list
方法擷取所有相應的 StudentSubmissions
,並檢查適當的 assignedGrade
和 draftGrade
欄位:
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
、評分週期和不同的評分制度。
為外掛程式附件評分
如果您是 Classroom 外掛程式開發人員,可以為個別外掛程式附件設定成績,並設定老師在查看學生作業時是否能看到成績。詳情請參閱「活動類型附件」和「成績回傳」逐步說明。
評分量表成績
StudentSubmissions
具有代表根據 Rubrics
給予分數的欄位:
您無法使用 Google Classroom API 設定評量表分數,但可以讀取。詳情請參閱「評量表指南」和「限制」。