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

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

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

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

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

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

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