Установить & обновить оценки

В этом руководстве представлены примеры кода, связанного с оценкой, для API Google Classroom. Прочтите руководство по выставлению оценок , чтобы ознакомиться с концепциями выставления оценок в Классе.

Устанавливайте оценки для работ учащихся

Ресурс StudentSubmission имеет два поля для хранения оценок: assignedGrade — оценка, сообщаемая учащимся, и draftGrade — предварительная оценка, видимая только учителям. Эти поля обновляются с помощью courses.courseWork.studentSubmissions.patch .

Питон

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()

Ява

класс/фрагменты/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;

При работе с пользовательским интерфейсом Класса преподаватели не могут выставлять оценки, пока не сохранят черновик оценки. Присвоенную оценку затем можно вернуть учащемуся. Ваше приложение может оценить задание учащегося одним из двух способов:

  • Назначьте только draftGrade . Это полезно, например, чтобы позволить учителю вручную проверять оценки перед их окончательным утверждением. Учащиеся не могут видеть черновые оценки.

  • Назначьте и draftGrade , и assignedGrade чтобы полностью оценить задание.

Чтение выставленных оценок

Вы можете перечислить все оценки за определенный элемент курсовой работы, изучив объект ответа courses.courseWork.studentSubmissions.list :

Питон

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'))}")

Ява

класс/фрагменты/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());
  }
}

Определить общую оценку за курс

API Classroom не позволяет разработчикам читать или записывать общую оценку за курс, но вы можете рассчитать ее программно. В статье Справочного центра по настройке оценок приведены советы по этому расчету. Ресурс Course включает поле gradebookSettings , которое поможет вам выполнить расчеты.

Если вы хотите рассчитать общую оценку, прочитайте несколько советов, которые следует учитывать при управлении опозданиями, пропущенными или пропущенными учебными работами.

Управление состоянием ответов учащихся

Ответ учащегося может быть отменен, сдан или возвращен. Поле состояния в StudentSubmission указывает текущее состояние. Чтобы изменить состояние, вызовите один из следующих методов:

Все эти методы принимают пустой параметр body , например:

Питон

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

Ява

класс/фрагменты/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;
}

Дополнительные вложения для оценок

Если вы являетесь разработчиком надстроек для Класса, вы можете устанавливать оценки для отдельных вложений надстроек и настроить, чтобы эта оценка была видна учителям, когда они просматривают работы учащихся. Дополнительные сведения см. в прикрепленных файлах типа «Действие» и пошаговых руководствах по возврату оценок .

,

В этом руководстве представлены примеры кода, связанного с оценкой, для API Google Classroom. Прочтите руководство по выставлению оценок , чтобы ознакомиться с концепциями выставления оценок в Классе.

Устанавливайте оценки для работ учащихся

Ресурс StudentSubmission имеет два поля для хранения оценок: assignedGrade — оценка, сообщаемая учащимся, и draftGrade — предварительная оценка, видимая только учителям. Эти поля обновляются с помощью courses.courseWork.studentSubmissions.patch .

Питон

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()

Ява

класс/фрагменты/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;

При работе с пользовательским интерфейсом Класса преподаватели не могут выставлять оценки, пока не сохранят черновик оценки. Присвоенную оценку затем можно вернуть учащемуся. Ваше приложение может оценить задание учащегося одним из двух способов:

  • Назначьте только draftGrade . Это полезно, например, чтобы позволить учителю вручную проверять оценки перед их окончательным утверждением. Учащиеся не могут видеть черновые оценки.

  • Назначьте и draftGrade , и assignedGrade чтобы полностью оценить задание.

Чтение выставленных оценок

Вы можете перечислить все оценки за определенный элемент курсовой работы, изучив объект ответа courses.courseWork.studentSubmissions.list :

Питон

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'))}")

Ява

класс/фрагменты/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());
  }
}

Определить общую оценку за курс

API Classroom не позволяет разработчикам читать или записывать общую оценку за курс, но вы можете рассчитать ее программно. В статье Справочного центра по настройке оценок приведены советы по этому расчету. Ресурс Course включает поле gradebookSettings , которое поможет вам выполнить расчеты.

Если вы хотите рассчитать общую оценку, прочитайте несколько советов, которые следует учитывать при управлении опозданиями, пропущенными или пропущенными учебными работами.

Управление состоянием ответов учащихся

Ответ учащегося может быть отменен, сдан или возвращен. Поле состояния в StudentSubmission указывает текущее состояние. Чтобы изменить состояние, вызовите один из следующих методов:

Все эти методы принимают пустой параметр body , например:

Питон

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

Ява

класс/фрагменты/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;
}

Дополнительные вложения для оценок

Если вы являетесь разработчиком надстроек для Класса, вы можете устанавливать оценки для отдельных вложений надстроек и настроить, чтобы эта оценка была видна учителям, когда они просматривают работы учащихся. Дополнительные сведения см. в прикрепленных файлах типа «Действие» и пошаговых руководствах по возврату оценок .