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

این راهنما نمونه‌های کد مربوط به نمره‌دهی را برای Classroom API ارائه می‌دهد. تمرکز این سند بر روی هسته اصلی فرآیند نمره‌دهی Classroom است: مدیریت وضعیت‌ها و نمرات StudentSubmission .

برای آشنایی با مفاهیم نمره‌دهی در کلاس درس ، راهنمای نمرات را مطالعه کنید.

مدیریت وضعیت‌های ارسال دانشجو

StudentSubmission می‌تواند ارسال نشده، تحویل داده شده یا برگشت داده شده باشد. فیلد state وضعیت فعلی را نشان می‌دهد. نمره‌دهی معمولاً پس از قرار گرفتن StudentSubmission در وضعیت TURNED_IN انجام می‌شود.

برای تغییر وضعیت با استفاده از Classroom API، یکی از روش‌های زیر را فراخوانی کنید:

  • courses.courseWork.studentSubmissions.turnIn : فقط دانشجویی که صاحب StudentSubmission است می‌تواند آن را تحویل دهد.
  • courses.courseWork.studentSubmissions.reclaim : فقط دانشجویی که صاحب StudentSubmission است می‌تواند آن را پس بگیرد. این ارسال فقط در صورتی قابل پس گرفتن است که قبلاً تحویل داده شده باشد.
  • courses.courseWork.studentSubmissions.return : فقط اساتید دوره می‌توانند یک StudentSubmission برگردانند. این ارسال فقط در صورتی قابل برگشت است که قبلاً توسط دانشجو تحویل داده شده باشد.

همه این متدها یک پارامتر body خالی می‌پذیرند، که در مثال زیر نشان داده شده است:

پایتون

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

جاوا

class/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 به‌روزرسانی می‌شوند، همانطور که در مثال زیر نشان داده شده است:

پایتون

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

جاوا

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

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

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

از آرگومان updateMask برای پیکربندی فیلدی که باید تنظیم شود، استفاده کنید.

برای درک حوزه‌ها و مجوزهای مورد نیاز برای تغییر StudentSubmissions به بخش «افزودن پیوست به پاسخ دانشجو» مراجعه کنید.

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

شما می‌توانید با استفاده از متد courses.courseWork.studentSubmissions.list برای بازیابی تمام StudentSubmissions مربوطه و بررسی فیلدهای assignedGrade و draftGrade مربوطه، به تمام نمرات یک CourseWork خاص دسترسی پیدا کنید:

پایتون

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

جاوا

class/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 به Retrieve student responses مراجعه کنید.

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

رابط برنامه‌نویسی کاربردی کلاس درس به توسعه‌دهندگان اجازه نمی‌دهد نمره کلی دوره را بخوانند یا بنویسند، اما می‌توانید آن را به صورت برنامه‌نویسی محاسبه کنید. اگر می‌خواهید نمره کلی را محاسبه کنید، راهنمای نمرات را مطالعه کنید تا مفاهیم مهمی مانند CourseWork معاف، دوره‌های نمره‌دهی و سیستم‌های مختلف نمره‌دهی را درک کنید.

پیوست‌های الحاقی درجه

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

نمرات روبریک

فرم‌های StudentSubmissions فیلدهایی دارند که نمرات داده شده بر اساس Rubrics را نشان می‌دهند:

  • draftRubricGrade مجموعه‌ای آزمایشی از نمرات Criterion است که فقط برای معلمان قابل مشاهده است.
  • assignedRubricGrade مجموعه‌ای از نمرات Criterion است که به دانش‌آموزان گزارش می‌شود.

نمرات روبریک را نمی‌توان با استفاده از رابط برنامه‌نویسی کاربردی (API) کلاس درس گوگل تنظیم کرد، اما می‌توان آنها را خواند. برای کسب اطلاعات بیشتر به راهنمای روبریک و محدودیت‌های آن مراجعه کنید.