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

این راهنما نمونه‌های کد مرتبط با درجه‌بندی را برای Classroom API ارائه می‌کند. تمرکز این سند بر مسیر اصلی درجه بندی کلاس درس است: مدیریت وضعیت ها و نمرات 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()

جاوا

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

پایتون

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 ذخیره نکرده باشند، یک 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'))}")

جاوا

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 تنظیم کرد، اما قابل خواندن است. برای اطلاعات بیشتر به راهنمای Rubrics و محدودیت ها مراجعه کنید.