Impostare e aggiornare i voti

Questa guida fornisce esempi di codice relativi alla valutazione per l'API Google Classroom. Leggi la guida ai voti per acquisire familiarità con i concetti di valutazione in Classroom.

Impostare i voti per i contenuti inviati dagli studenti

La risorsa StudentSubmission ha due campi per memorizzare i voti:assignedGrade, che è il voto riportato agli studenti, e draftGrade, che è un voto provvisorio visibile solo agli insegnanti. Questi campi vengono aggiornati utilizzando 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;

Quando utilizzano l'interfaccia utente di Classroom, gli insegnanti non possono assegnare un voto prima di aver salvato una bozza di voto. Il voto assegnato può quindi essere restituito a uno studente. La tua applicazione può valutare il compito di uno studente in due modi:

  • Assegna solo draftGrade. È utile, ad esempio, per consentire all'insegnante di esaminare manualmente i voti prima di finalizzarli. Gli studenti non possono visualizzare i voti provvisori.

  • Assegna sia draftGrade che assignedGrade per valutare completamente un compito.

Leggere i voti assegnati

Puoi elencare tutti i voti per un determinato compito esaminando l'oggetto di risposta del metodo 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());
  }
}

Determinare i voti complessivi del corso

L'API Classroom non consente agli sviluppatori di leggere o scrivere il voto complessivo del corso, ma puoi calcolarlo in modo programmatico. L'articolo del Centro assistenza sulla configurazione della valutazione fornisce suggerimenti su questo calcolo. La risorsa Course include il campo gradebookSettings che può aiutarti a eseguire i calcoli.

Se vuoi calcolare il voto complessivo, consulta alcuni suggerimenti da tenere presente quando gestisci i compiti in ritardo, giustificati e mancanti.

Gestire lo stato delle risposte degli studenti

La risposta di uno studente può essere annullata, consegnata o restituita. Il campo stato in StudentSubmission indica lo stato corrente. Per modificare lo stato, chiama uno dei seguenti metodi:

Tutti questi metodi accettano un parametro body vuoto, ad esempio:

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

Allegati dei componenti aggiuntivi di valutazione

Se sei uno sviluppatore di componenti aggiuntivi di Classroom, puoi impostare i voti per i singoli allegati dei componenti aggiuntivi e configurare il voto in modo che sia visibile agli insegnanti quando esaminano i lavori degli studenti. Per ulteriori informazioni, consulta le procedure dettagliate relative agli allegati del tipo di attività e al trasferimento dei voti.