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

يوفّر هذا الدليل أمثلة على الرموز البرمجية ذات الصلة بالتقييم لواجهة برمجة التطبيقات Classroom API. يركز هذا المستند على العملية الأساسية لتقييم الأداء في "الفصول الدراسية": إدارة حالات StudentSubmission والدرجات.

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

إدارة حالات "إرسال الطلاب"

قد تم إلغاء إرسال StudentSubmission أو تسليمه أو إرجاعه. يشير الحقل state إلى الحالة الحالية. يتم عادةً وضع الدرجات بعد أن يصبح StudentSubmission في الحالة TURNED_IN.

لتغيير الحالة باستخدام Classroom API، يمكنك استدعاء إحدى ال methods التالية:

تقبل كل هذه الطرق مَعلمة 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 للمطوّرين بقراءة أو كتابة الدرجة الإجمالية للدورة التدريبية، ولكن يمكنك احتسابها آليًا. إذا أردت احتساب الدرجة الإجمالية، اطّلِع على دليل الدرجات لفهم المفاهيم المهمة، مثل CourseWork غير المُعتمَدة وفترات التقييم وأنظمة التقييم المختلفة.

مرفقات إضافية للعلامات

إذا كنت مطوّر إضافات Classroom، يمكنك ضبط الدرجات لملفّات مرفقة فردية في الإضافة وضبط الدرجة لتكون مرئية للمعلّمين عندهم مراجعة عمل الطلاب. اطّلِع على الخطوات التفصيلية حول مرفقات أنواع الأنشطة وإعادة إرسال الدرجات لمزيد من المعلومات.

درجات قواعد التقييم

تحتوي StudentSubmissions على حقول تمثّل النتائج المقدَّمة استنادًا إلى Rubrics:

  • draftRubricGrade هي مجموعة مؤقتة من نتائج Criterion تظهر للمعلّمين فقط.
  • assignedRubricGrade هي مجموعة نتائج Criterion التي يتم إبلاغ الطلاب بها.

لا يمكن ضبط نتائج بطاقات التقييم باستخدام Google Classroom API، ولكن يمكن قراءتها. اطّلِع على دليل العناوين والقيود لمعرفة المزيد من المعلومات.