সেট & গ্রেড আপডেট করুন

এই নির্দেশিকাটি ক্লাসরুম এপিআই (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;
}

শিক্ষার্থীদের জমা দেওয়া কাজের জন্য গ্রেড নির্ধারণ করুন।

গ্রেডযুক্ত CourseWork সামগ্রিক গ্রেড সংরক্ষণের জন্য StudentSubmission রিসোর্সটিতে দুটি ফিল্ড রয়েছে:

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

ক্লাসরুম UI-তে কাজ করার সময়, শিক্ষকরা প্রথমে একটি draftGrade সংরক্ষণ না করা পর্যন্ত assignedGrade সেট করতে পারেন না। এরপর assignedGrade একজন শিক্ষার্থীকে ফেরত দেওয়া যেতে পারে। আপনার অ্যাপ্লিকেশনটি দুটি উপায়ের যেকোনো একটিতে একজন শিক্ষার্থীর অ্যাসাইনমেন্ট গ্রেড করতে পারে:

  • শুধুমাত্র draftGrade নির্ধারণ করুন। এটি, উদাহরণস্বরূপ, শিক্ষককে চূড়ান্ত করার আগে গ্রেডগুলো নিজে হাতে পর্যালোচনা করার সুযোগ দেওয়ার জন্য উপযোগী। শিক্ষার্থীরা খসড়া গ্রেড দেখতে পারে না।

  • কোনো অ্যাসাইনমেন্ট সম্পূর্ণভাবে মূল্যায়ন করতে draftGrade এবং assignedGrade উভয়ই নির্ধারণ করুন।

কোন ফিল্ডটি সেট করতে হবে তা নির্ধারণ করতে updateMask আর্গুমেন্টটি ব্যবহার করুন।

StudentSubmissions পরিবর্তন করার জন্য প্রয়োজনীয় পরিধি ও অনুমতিগুলো বুঝতে “Add attachments to a student response” দেখুন।

নির্ধারিত গ্রেডগুলো পড়ুন

আপনি courses.courseWork.studentSubmissions.list মেথডটি ব্যবহার করে সংশ্লিষ্ট সমস্ত StudentSubmissions পুনরুদ্ধার করতে এবং উপযুক্ত assignedGradedraftGrade ফিল্ডগুলো পরীক্ষা করে একটি নির্দিষ্ট 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 পড়ার জন্য প্রয়োজনীয় পরিধি ও অনুমতিগুলো বুঝতে Retrieve student responses দেখুন।

কোর্সের সামগ্রিক গ্রেড নির্ধারণ করুন

ক্লাসরুম এপিআই ডেভেলপারদের কোর্সের সামগ্রিক গ্রেড পড়া বা লেখার অনুমতি দেয় না, কিন্তু আপনি প্রোগ্রাম্যাটিকভাবে এটি গণনা করতে পারেন। আপনি যদি সামগ্রিক গ্রেড গণনা করতে চান, তাহলে অব্যাহতিপ্রাপ্ত CourseWork , গ্রেডিং পিরিয়ড এবং বিভিন্ন গ্রেডিং সিস্টেমের মতো গুরুত্বপূর্ণ ধারণাগুলো বোঝার জন্য গ্রেডস গাইডটি ভালোভাবে পড়ুন।

গ্রেড অতিরিক্ত সংযুক্তি

আপনি যদি একজন ক্লাসরুম অ্যাড-অন ডেভেলপার হন, তাহলে আপনি প্রতিটি অ্যাড-অন অ্যাটাচমেন্টের জন্য গ্রেড নির্ধারণ করতে পারেন এবং শিক্ষকদের কাছে শিক্ষার্থীদের কাজ পর্যালোচনার সময় গ্রেডটি দৃশ্যমান করার জন্য কনফিগার করতে পারেন। আরও তথ্যের জন্য অ্যাক্টিভিটি-টাইপ অ্যাটাচমেন্ট এবং গ্রেড পাসব্যাক ওয়াকথ্রুগুলো দেখুন।

রুব্রিক গ্রেড

StudentSubmissions এমন কিছু ফিল্ড রয়েছে যা Rubrics উপর ভিত্তি করে দেওয়া স্কোর উপস্থাপন করে:

  • draftRubricGrade হলো Criterion স্কোরের একটি পরীক্ষামূলক সেট যা শুধুমাত্র শিক্ষকদের কাছে দৃশ্যমান।
  • assignedRubricGrade হলো শিক্ষার্থীদেরকে জানানো Criterion স্কোরগুলোর সমষ্টি।

গুগল ক্লাসরুম এপিআই ব্যবহার করে রুব্রিক স্কোর নির্ধারণ করা যায় না, তবে তা পড়া যায়। আরও জানতে রুব্রিক নির্দেশিকা এবং সীমাবদ্ধতাগুলো দেখুন।