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

يقدِّم هذا الدليل أمثلة على الرموز المتعلّقة بوضع الدرجات لـ Google Classroom API. يمكنك الاطّلاع على دليل الدرجات للتعرّف على مفاهيم وضع الدرجات في Classroom.

ضبط درجات المهام المرسَلة من الطلاب

يحتوي المورد StudentSubmission على حقلَين لتخزين الدرجات: assignedGrade، وهي الدرجة التي يتم إبلاغ الطلاب بها، وdraftGrade، وهي درجة مؤقتة لا تظهر إلا للمعلّمين. يتم تعديل هذه الحقول باستخدام 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، لا يمكن للمعلمين تعيين درجة حتى يحفظوا أولاً درجة أولية. ويمكن بعد ذلك إرجاع الدرجة إلى الطالب. يمكن لتطبيقك تقييم مهمة الطالب بإحدى الطريقتَين التاليتَين:

  • حدِّد draftGrade فقط. ويكون هذا مفيدًا، على سبيل المثال، للسماح للمعلم بمراجعة الدرجات يدويًا قبل الانتهاء منها. لا يمكن للطلاب الاطّلاع على مسودات العلامات.

  • حدِّد كلاً من draftGrade وassignedGrade لتقييم مهمة بالكامل.

قراءة الدرجات المخصّصة

يمكنك إدراج جميع الدرجات لعنصر عمل أكاديمي معيّن من خلال استكشاف عنصر الاستجابة لطريقة courses.courseWork.studentSubmissions.list:

Python

response = coursework.studentSubmissions().list(
    courseId=course_id,
    courseWorkId=coursework_id,
    pageSize=10 # optionally include `pageSize` to restrict the number of student submissions included in the response.
).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());
  }
}

تحديد الدرجات الإجمالية للدورة التدريبية

لا تسمح Classroom API للمطورين بقراءة أو كتابة الدرجة الإجمالية للدورة التدريبية، ولكن يمكنك حسابها آليًا. تقدّم مقالة مركز المساعدة حول إعداد نظام التقييم نصائح حول عملية احتساب الدرجات. يتضمّن المرجع Course حقل gradebookSettings الذي يمكن أن يساعدك في إجراء العمليات الحسابية.

إذا أردت احتساب الدرجة الإجمالية، اطّلِع على بعض الإرشادات التي يجب مراعاتها عند إدارة الأعمال الدراسية المتأخرة أو المُعذر عنها أو غير المكتملة.

إدارة حالة ردّ الطالب

قد يكون قد تم إلغاء إرسال إجابة الطالب أو تسليمها أو إرجاعها. يشير حقل الحالة في StudentSubmission إلى الحالة الحالية. لتغيير الحالة، يمكنك استخدام إحدى الطريقتَين التاليتَين:

تقبل جميع هذه الطرق مَعلمة 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;
}

مرفقات الإضافة المخصّصة لوضع الدرجات

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