Impostare e aggiornare i voti

Questa guida fornisce esempi di codice relativi alla valutazione per l'API Classroom. Questo documento è incentrato sul percorso di valutazione di base di Classroom: la gestione degli stati e dei voti.StudentSubmission

Leggi la guida ai voti per familiarizzare con i concetti di valutazione in Classroom.

Gestire gli stati di StudentSubmission

StudentSubmission può essere non inviato, consegnato o restituito. Il campo state indica lo stato attuale. La valutazione viene in genere eseguita dopo che StudentSubmission è nello stato TURNED_IN.

Per modificare lo stato utilizzando l'API Classroom, chiama uno dei seguenti metodi:

Tutti questi metodi accettano un parametro body vuoto, come mostrato nell'esempio seguente:

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

Impostare i voti per i compiti degli studenti

La risorsa StudentSubmission ha due campi per memorizzare il voto complessivo per il lavoro valutato CourseWork:

  • draftGrade è un voto provvisorio visibile solo agli insegnanti.
  • assignedGrade è il voto comunicato agli studenti.

Questi campi vengono aggiornati utilizzando courses.courseWork.studentSubmissions.patch, come mostrato nel seguente esempio:

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 lavorano con l'interfaccia utente di Classroom, gli insegnanti non possono impostare un assignedGrade finché non hanno salvato un draftGrade. Il assignedGrade può quindi essere restituito a uno studente. La tua applicazione può valutare il compito di uno studente in due modi:

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

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

Utilizza l'argomento updateMask per configurare il campo da impostare.

Consulta Aggiungere allegati a una risposta dello studente per comprendere gli ambiti e le autorizzazioni necessari per modificare StudentSubmissions.

Leggere i voti assegnati

Puoi accedere a tutti i voti per un determinato CourseWork utilizzando il courses.courseWork.studentSubmissions.list metodo per recuperare tutti i corrispondenti StudentSubmissions e ispezionare i campi assignedGrade e draftGrade appropriati:

Python

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

Consulta Recuperare le risposte degli studenti per comprendere gli ambiti e le autorizzazioni necessari per leggere StudentSubmissions.

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 a livello di programmazione. Se vuoi calcolare il voto complessivo, leggi la guida ai voti per comprendere concetti importanti come CourseWork esonerato, periodi di valutazione e i diversi sistemi di valutazione.

Valutare gli allegati dei componenti aggiuntivi

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 il lavoro degli studenti. Per ulteriori informazioni, consulta le guide dettagliate Allegati di tipo attività e Trasferimento dei voti.

Voti delle griglie

StudentSubmissions hanno campi che rappresentano i punteggi assegnati in base a Rubrics:

  • draftRubricGrade è un insieme provvisorio di punteggi Criterion visibile solo agli insegnanti.
  • assignedRubricGrade è l'insieme di Criterion punteggi comunicati agli studenti.

I punteggi delle griglie non possono essere impostati utilizzando l'API Google Classroom, ma possono essere letti. Per saperne di più, consulta la guida delle griglie e le limitazioni.