Cómo establecer y actualizar las calificaciones

En esta guía, se proporcionan ejemplos de código relacionados con la calificación para la API de Google Classroom. Lee la Guía de calificaciones para familiarizarte con los conceptos de calificación en Classroom.

Establece calificaciones para las entregas de los estudiantes

El recurso StudentSubmission tiene dos campos para almacenar las calificaciones: assignedGrade, que es la calificación que se informa a los estudiantes, y draftGrade, que es una calificación tentativa que solo pueden ver los profesores. Estos campos se actualizan con 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/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;

Cuando trabajan con la IU de Classroom, los profesores no pueden asignar una calificación hasta que guarden un borrador. Luego, se puede devolver la calificación asignada a un estudiante. Tu aplicación puede calificar la tarea de un estudiante de una de estas dos maneras:

  • Asigna solo el draftGrade. Es útil, por ejemplo, que el profesor revise las calificaciones antes de finalizarlas. Los estudiantes no pueden ver las calificaciones de borrador.

  • Asigna draftGrade y assignedGrade para calificar una tarea por completo.

Cómo leer las calificaciones asignadas

Para enumerar todas las calificaciones de un elemento de trabajo específico, explora el objeto de respuesta del método courses.courseWork.studentSubmissions.list:

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

Determina las calificaciones generales del curso

La API de Classroom no permite que los desarrolladores lean o escriban la calificación general del curso, pero puedes calcularla de manera programática. En el artículo del Centro de ayuda sobre cómo configurar las calificaciones, se proporcionan sugerencias sobre este cálculo. El recurso Course incluye el campo gradebookSettings que puede ayudarte a realizar los cálculos.

Si deseas calcular la calificación general, lee algunos indicadores para tener en cuenta cuando administres tareas atrasadas, con justificación y faltantes.

Cómo administrar el estado de las respuestas de los alumnos

Una respuesta de un estudiante puede estar sin enviar, entregada o devuelta. El campo de estado en StudentSubmission indica el estado actual. Para cambiar el estado, llama a uno de los siguientes métodos:

Todos estos métodos aceptan un parámetro body vacío, por ejemplo:

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;
}

Califica los archivos adjuntos de complementos

Si eres desarrollador de complementos de Classroom, puedes establecer calificaciones para archivos adjuntos de complementos individuales y configurar la calificación para que los profesores la vean cuando revisen el trabajo de los estudiantes. Para obtener más información, consulta las explicaciones sobre Archivos adjuntos de tipo de actividad y Devoluciones de calificaciones.