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

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

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

ניהול מצבים של StudentSubmission

אפשר לבטל את ההגשה של 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, אבל אפשר לקרוא אותם. מידע נוסף זמין במדריך לקריטריונים להערכה ובמאמר בנושא מגבלות.