このガイドでは、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 の総合成績を保存するための 2 つのフィールドがあります。
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 UI を使用する場合、教師は最初に 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 に基づいて付けられたスコアを表すフィールドがあります。
draftRubricGradeは、教師のみが確認できる仮のCriterionスコアのセットです。assignedRubricGradeは、生徒に通知されるCriterionスコアのセットです。
ルーブリックのスコアは Google Classroom API を使用して設定することはできませんが、読み取ることはできます。詳細については、 ルーブリックのガイドと制限事項をご覧ください。