Noten festlegen und aktualisieren

Dieser Leitfaden enthält Codebeispiele für die Benotung mit der Google Classroom API. Lesen Sie den Leitfaden zu Noten, um sich mit den Notenkonzepten in Classroom vertraut zu machen.

Noten für die Einreichungen von Schülern/Studenten festlegen

Die Ressource StudentSubmission hat zwei Felder zum Speichern von Noten: assignedGrade, die den Schülern gemeldete Note, und draftGrade, eine vorläufige Note, die nur für Lehrkräfte sichtbar ist. Diese Felder werden mit courses.courseWork.studentSubmissions.patch aktualisiert.

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/snippets/src/main/java/PatchStudentSubmission.java
StudentSubmission studentSubmission = null;
try {
  // Updating the draftGrade and assignedGrade fields for the specific student submission.
  StudentSubmission content =
      service
          .courses()
          .courseWork()
          .studentSubmissions()
          .get(courseId, courseWorkId, id)
          .execute();
  content.setAssignedGrade(90.00);
  content.setDraftGrade(80.00);

  // The updated studentSubmission object is returned with the new draftGrade and assignedGrade.
  studentSubmission =
      service
          .courses()
          .courseWork()
          .studentSubmissions()
          .patch(courseId, courseWorkId, id, content)
          .set("updateMask", "draftGrade,assignedGrade")
          .execute();

  /* Prints the updated student submission. */
  System.out.printf(
      "Updated student submission draft grade (%s) and assigned grade (%s).\n",
      studentSubmission.getDraftGrade(), studentSubmission.getAssignedGrade());
} catch (GoogleJsonResponseException e) {
  // TODO (developer) - handle error appropriately
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == 404) {
    System.out.printf(
        "The courseId (%s), courseWorkId (%s), or studentSubmissionId (%s) does "
            + "not exist.\n",
        courseId, courseWorkId, id);
  } else {
    throw e;
  }
} catch (Exception e) {
  throw e;
}
return studentSubmission;

Wenn Lehrkräfte die Benutzeroberfläche von Classroom verwenden, können sie erst dann eine Note zuweisen, wenn sie zuvor einen Notenentwurf gespeichert haben. Die zugewiesene Note kann dann an einen Schüler/Studenten zurückgegeben werden. Ihre Anwendung kann die Aufgabe eines Schülers oder Studenten auf zwei Arten benoten:

  • Weisen Sie nur die draftGrade zu. Dies ist z. B. nützlich, damit die Lehrkraft Noten manuell prüfen kann, bevor sie fertig wird. Schüler und Studenten können keine Notenentwürfe sehen.

  • Weisen Sie sowohl die draftGrade als auch die assignedGrade zu, um eine Aufgabe vollständig zu benoten.

Zugewiesene Noten lesen

Sie können alle Noten für ein bestimmtes Kurselement auflisten, indem Sie das Antwortobjekt der Methode courses.courseWork.studentSubmissions.list untersuchen:

Python

response = coursework.studentSubmissions().list(
    courseId=course_id,
    courseWorkId=coursework_id,
    pageSize=10 # optionally include `pageSize` to restrict the number of student submissions included in the response.
).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

classroom/snippets/src/main/java/ListStudentSubmissions.java
  ListStudentSubmissionsResponse response =
      service
          .courses()
          .courseWork()
          .studentSubmissions()
          .list(courseId, courseWorkId)
          .setPageToken(pageToken)
          .execute();

  /* Ensure that the response is not null before retrieving data from it to avoid errors. */
  if (response.getStudentSubmissions() != null) {
    studentSubmissions.addAll(response.getStudentSubmissions());
    pageToken = response.getNextPageToken();
  }
} while (pageToken != null);

if (studentSubmissions.isEmpty()) {
  System.out.println("No student submissions found.");
} else {
  for (StudentSubmission submission : studentSubmissions) {
    System.out.printf(
        "User ID %s, Assigned grade: %s\n",
        submission.getUserId(), submission.getAssignedGrade());
  }
}

Gesamtnoten für Kurse festlegen

Mit der Classroom API können Entwickler die Gesamtnote des Kurses nicht lesen oder schreiben. Sie können sie jedoch programmatisch berechnen. Im Hilfeartikel zur Einrichtung der Benotung finden Sie Tipps zu dieser Berechnung. Die Course-Ressource enthält das Feld gradebookSettings, mit dem Sie die Berechnungen durchführen können.

Wenn Sie die Gesamtnote berechnen möchten, lesen Sie sich diese Hinweise durch, um zu erfahren, wie Sie mit verspäteten, entschuldigten und fehlenden Kursleistungen umgehen.

Antwortstatus von Schülern/Studenten verwalten

Eine Antwort eines Schülers oder Studenten kann zurückgezogen, abgegeben oder zurückgegeben werden. Das Statusfeld in StudentSubmission gibt den aktuellen Status an. Rufen Sie eine der folgenden Methoden auf, um den Status zu ändern:

Alle diese Methoden akzeptieren einen leeren body-Parameter, z. B.:

Python

service.courses().courseWork().studentSubmission().turnIn(
    courseId=course_id,
    courseWorkId=coursework_id,
    id=studentsubmission_id,
    body={}).execute()

Java

classroom/snippets/src/main/java/ReturnStudentSubmission.java
try {
  service
      .courses()
      .courseWork()
      .studentSubmissions()
      .classroomReturn(courseId, courseWorkId, id, null)
      .execute();
} catch (GoogleJsonResponseException e) {
  // TODO (developer) - handle error appropriately
  GoogleJsonError error = e.getDetails();
  if (error.getCode() == 404) {
    System.out.printf(
        "The courseId (%s), courseWorkId (%s), or studentSubmissionId (%s) does "
            + "not exist.\n",
        courseId, courseWorkId, id);
  } else {
    throw e;
  }
} catch (Exception e) {
  throw e;
}

Anhänge für das Benotungs-Add-on

Wenn Sie ein Entwickler von Classroom-Add-ons sind, können Sie Noten für einzelne Add-on-Anhänge festlegen und die Noten so konfigurieren, dass sie für Lehrkräfte sichtbar sind, wenn sie die Arbeit der Schüler/Studenten überprüfen. Weitere Informationen finden Sie in den Anleitungen zu Anhängen vom Typ „Aktivität“ und Notenrückgabe.