הגדרה ועדכון של ציונים

במדריך הזה מופיעות דוגמאות קוד שקשורות למתן ציונים ב-Classroom API. המאמר הזה מתמקד בתהליך המרכזי של מתן ציונים ב-Classroom: ניהול מצבים של StudentSubmission וציונים.

כדאי לקרוא את מדריך הציונים כדי להכיר את מושגי הציונים ב-Classroom.

ניהול סטטוסים של עבודות סטודנטים

אפשר לבטל את ההגשה של StudentSubmission, להגיש אותה או להחזיר אותה. בשדה state מצוין המצב הנוכחי. בדרך כלל מתן הציונים מתבצע אחרי שStudentSubmission נמצא במצב TURNED_IN.

כדי לשנות את הסטטוס באמצעות Classroom API, מפעילים אחת מהשיטות הבאות:

כל ה-methods האלה מקבלות פרמטר body ריק, כמו בדוגמה הבאה:

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

הגדרת ציונים לעבודות שהתלמידים הגישו

למשאב StudentSubmission יש שני שדות לאחסון הציון הכולל של עבודות CourseWork שניתן להן ציון:

  • draftGrade הוא ציון זמני שגלוי רק למורים.
  • assignedGrade הוא הציון שמוצג לתלמידים.

השדות האלה מתעדכנים באמצעות 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;

כשעובדים עם ממשק המשתמש של Classroom, מורים לא יכולים להגדיר assignedGrade עד שהם שומרים draftGrade. assignedGrade אפשר להחזיר את העבודה לתלמיד/ה. האפליקציה יכולה לתת ציון למטלה של תלמיד באחת משתי דרכים:

  • מקצים רק את draftGrade. לדוגמה, זה שימושי אם רוצים לאפשר למורה לבדוק את הציונים באופן ידני לפני שסוגרים אותם. התלמידים לא יכולים לראות את הציונים בטיוטה.

  • כדי לתת ציון מלא למטלה, צריך להקצות גם את draftGrade וגם את assignedGrade.

משתמשים בארגומנט updateMask כדי להגדיר את השדה שרוצים להגדיר.

במאמר הוספת קבצים מצורפים לתשובה של תלמיד/ה מוסבר על ההיקפים וההרשאות שנדרשים לשינוי StudentSubmissions.

קריאת הציונים שהוקצו

כדי לגשת לכל הציונים של CourseWork מסוים, משתמשים בשיטה courses.courseWork.studentSubmissions.list כדי לאחזר את כל StudentSubmissions המתאים, ובודקים את השדות המתאימים assignedGrade ו-draftGrade:

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

במאמר אחזור תשובות של תלמידים מוסבר על ההיקפים וההרשאות שנדרשים כדי לקרוא את StudentSubmissions.

קביעת הציונים הכוללים בקורס

מפתחים לא יכולים לקרוא או לכתוב את הציון הכולל בקורס באמצעות Classroom API, אבל אפשר לחשב אותו באופן פרוגרמטי. אם רוצים לחשב את הציון הכולל, כדאי לקרוא את המדריך לציונים כדי להבין מושגים חשובים כמו CourseWork פטור, תקופות מתן ציונים ומערכות שונות למתן ציונים.

מתן ציונים לקבצים מצורפים של תוספים

אם אתם מפתחים של תוספים ל-Classroom, אתם יכולים להגדיר ציונים לקבצים מצורפים של תוספים ולהגדיר שהציון יהיה גלוי למורים כשהם בודקים את העבודות של התלמידים. מידע נוסף זמין במאמרים קבצים מצורפים מסוג פעילות והעברת ציונים חזרה.

ציונים לפי קריטריונים להערכה

StudentSubmissions יש שדות שמייצגים ציונים שניתנים על סמך Rubrics:

  • draftRubricGrade הוא קבוצה ראשונית של ציונים Criterion שגלויים רק למורים.
  • assignedRubricGrade היא קבוצת הציונים Criterion שדווחו לתלמידים.

אי אפשר להגדיר ציונים של קריטריונים באמצעות Google Classroom API, אבל אפשר לקרוא אותם. מידע נוסף זמין במדריך לקריטריונים להערכה ובמאמר בנושא מגבלות.