Definir e atualizar notas

Este guia apresenta exemplos de código relacionados à avaliação para a API Google Classroom. Leia o guia de notas para se familiarizar com os conceitos de avaliação na Sala de Aula.

Definir notas para trabalhos enviados pelos estudantes

O recurso StudentSubmission tem dois campos para armazenar notas: assignedGrade, que é a nota informada aos estudantes, e draftGrade, que é uma nota provisória visível apenas para professores. Esses campos são atualizados usando 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()
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;

Ao trabalhar com a interface do Google Sala de Aula, os professores não podem atribuir uma nota até salvar uma nota temporária. A nota atribuída pode ser devolvida a um estudante. Seu app pode avaliar a atividade de um estudante de duas maneiras:

  • Atribua apenas o draftGrade. Isso é útil, por exemplo, para permitir que o professor revise manualmente as notas antes de finalizá-las. Os estudantes não podem ver as notas de rascunho.

  • Atribua draftGrade e assignedGrade para avaliar uma atividade.

Ler as notas atribuídas

É possível listar todas as notas de um item de curso específico explorando o objeto de resposta do método 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'))}")
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());
 
}
}

Determinar as notas gerais do curso

A API Classroom não permite que os desenvolvedores leiam ou gravem a nota geral do curso, mas é possível calcular isso de maneira programática. O artigo da Central de Ajuda sobre como configurar a avaliação tem dicas sobre esse cálculo. O recurso Course inclui o campo gradebookSettings, que pode ajudar você a realizar os cálculos.

Se você quiser calcular a nota geral, leia algumas dicas para saber como lidar com trabalhos atrasados, dispensados e ausentes.

Gerenciar o estado da resposta dos estudantes

A resposta de um estudante pode ser cancelada, entregue ou devolvida. O campo de estado em StudentSubmission indica o estado atual. Para mudar o estado, chame um dos seguintes métodos:

Todos esses métodos aceitam um parâmetro body vazio, por exemplo:

service.courses().courseWork().studentSubmission().turnIn(
    courseId
=course_id,
    courseWorkId
=coursework_id,
    id
=studentsubmission_id,
    body
={}).execute()
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;
}

Grader anexos de complementos

Se você é um desenvolvedor de complementos do Google Sala de Aula, pode definir notas para anexos de complementos individuais e configurar a nota para ficar visível para os professores quando eles revisarem o trabalho dos estudantes. Consulte as instruções de Anexos de tipo de atividade e Retorno de nota para mais informações.