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

يقدّم هذا الدليل أمثلة على الرموز البرمجية المتعلقة بالتقييم في 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()

Java

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

Java

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

Java

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