このガイドでは、Classroom API の採点関連のコード例を示します。このドキュメントでは、StudentSubmission
の状態と成績の管理という、Classroom の採点プロセスの中心となる部分に焦点を当てています。
成績ガイドを読んで、Classroom の採点に関するコンセプトを理解します。
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
課題の総合的な成績を保存する 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
、成績期間、さまざまな成績システムなどの重要な概念を理解してください。
Grade アドオンの添付ファイル
Classroom アドオンのデベロッパーは、個々のアドオン添付ファイルの成績を設定し、教師が生徒の課題を確認する際に成績を表示するように構成できます。詳しくは、アクティビティ タイプのアタッチメントと成績のパスバックのチュートリアルをご覧ください。
ルーブリックの成績
StudentSubmissions
には、Rubrics
に基づいて付与されたスコアを表すフィールドがあります。
draftRubricGrade
は、教師のみに表示されるCriterion
スコアの暫定的なセットです。assignedRubricGrade
は、生徒に報告されたCriterion
スコアのセットです。
Google Classroom API を使用してルーブリックのスコアを設定することはできませんが、読み取ることはできます。詳しくは、ルーブリック ガイドと制限事項をご覧ください。