تنظیم & به روز رسانی نمرات

این راهنما نمونه‌های کد مرتبط با درجه‌بندی را برای Google Classroom API ارائه می‌کند. راهنمای نمرات را بخوانید تا با مفاهیم درجه بندی در کلاس درس آشنا شوید.

نمرات ارسالی دانش آموزان را تعیین کنید

منبع StudentSubmission دارای دو فیلد برای ذخیره نمرات است: assignedGrade که نمره گزارش شده به دانش آموزان است و draftGrade که یک نمره آزمایشی است که فقط برای معلمان قابل مشاهده است. این فیلدها با استفاده از courses.courseWork.studentSubmissions.patch به روز می شوند.

پایتون

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

جاوا

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 UI، معلمان تا زمانی که ابتدا یک نمره پیش‌نویس را ذخیره نکرده باشند، نمی‌توانند نمره تعیین کنند. سپس نمره تعیین شده را می توان به دانش آموز برگرداند. درخواست شما می تواند تکلیف دانش آموز را به یکی از دو روش درجه بندی کند:

  • فقط draftGrade را اختصاص دهید. برای مثال، به معلم اجازه می دهد نمرات را قبل از نهایی کردن آنها به صورت دستی بررسی کند، مفید است. دانش آموزان نمی توانند نمرات پیش نویس را ببینند.

  • هم draftGrade و هم assignedGrade را برای درجه بندی کامل یک تکلیف اختصاص دهید.

نمرات تعیین شده را بخوانید

می‌توانید با کاوش در شی پاسخ متد courses.courseWork.studentSubmissions.list همه نمرات را برای یک آیتم درسی خاص فهرست کنید:

پایتون

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'))}")

جاوا

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

نمرات کلی دروس را تعیین کنید

Classroom API به برنامه نویسان اجازه نمی دهد نمره کلی درس را بخوانند یا بنویسند، اما شما می توانید آن را به صورت برنامه نویسی محاسبه کنید. در مقاله مرکز راهنمایی درجه‌بندی راه‌اندازی نکاتی در مورد این محاسبه ارائه شده است. منبع Course شامل فیلد gradebookSettings است که می تواند به شما در انجام محاسبات کمک کند.

اگر می‌خواهید نمره کلی را محاسبه کنید، برخی از نکات را بخوانید تا در هنگام مدیریت دروس با تأخیر، معذوریت و از دست دادن دروس آگاه شوید.

مدیریت وضعیت پاسخ دانش آموز

پاسخ دانش آموز ممکن است ارسال نشود، تحویل داده شود یا برگردانده شود. فیلد State در StudentSubmission وضعیت فعلی را نشان می دهد. برای تغییر وضعیت، یکی از روش های زیر را فراخوانی کنید:

همه این روش ها یک پارامتر body خالی را می پذیرند، به عنوان مثال:

پایتون

service.courses().courseWork().studentSubmission().turnIn(
    courseId=course_id,
    courseWorkId=coursework_id,
    id=studentsubmission_id,
    body={}).execute()

جاوا

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

پیوست های افزودنی درجه

اگر توسعه‌دهنده افزونه‌های Classroom هستید، می‌توانید نمرات را برای پیوست‌های برافزای جداگانه تنظیم کنید و نمره را طوری پیکربندی کنید که معلمان هنگام بررسی کار دانش‌آموزان قابل مشاهده باشند. برای اطلاعات بیشتر به پیوست‌های نوع فعالیت و مراحل بازپس‌گیری نمره مراجعه کنید.