ضبط الدرجات وتعديلها

يقدّم هذا الدليل أمثلة على الرموز البرمجية المتعلقة بالتقييم في Classroom API. تركّز هذه الوثيقة على رحلة وضع الدرجات الأساسية في Classroom، أي إدارة حالات StudentSubmission والدرجات.

اطّلِع على دليل الدرجات للتعرّف على مفاهيم وضع الدرجات في Classroom.

إدارة حالات StudentSubmission

يمكن إلغاء إرسال 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()

جافا

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

جافا

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

جافا

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، ولكن يمكن قراءتها. اطّلِع على دليل نماذج التقييم والقيود لمزيد من المعلومات.