Đặt và cập nhật điểm

Hướng dẫn này cung cấp các ví dụ về mã liên quan đến việc chấm điểm cho API Google Lớp học. Hãy đọc Hướng dẫn về điểm số để làm quen với các khái niệm về điểm số trong Lớp học.

Đặt điểm cho bài nộp của học viên

Tài nguyên StudentSubmission có hai trường để lưu trữ điểm: assignedGrade là điểm được báo cáo cho học viên và draftGrade là điểm dự kiến chỉ giáo viên mới thấy được. Các trường này được cập nhật bằng 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;

Khi làm việc với giao diện người dùng của Lớp học, giáo viên không thể chỉ định điểm cho bài tập cho đến khi lưu điểm nháp. Sau đó, bạn có thể trả lại điểm đã chỉ định cho học viên. Ứng dụng của bạn có thể chấm điểm bài tập của học viên theo một trong hai cách:

  • Chỉ gán draftGrade. Ví dụ: tính năng này hữu ích khi cho phép giáo viên xem lại điểm theo cách thủ công trước khi hoàn tất. Học viên không thể xem điểm không chính thức.

  • Chỉ định cả draftGradeassignedGrade để chấm điểm đầy đủ cho một bài tập.

Đọc điểm đã giao

Bạn có thể liệt kê tất cả điểm cho một mục bài tập cụ thể bằng cách khám phá đối tượng phản hồi của phương thức 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());
  }
}

Xác định điểm tổng thể của khoá học

API Lớp học không cho phép nhà phát triển đọc hoặc ghi điểm tổng thể của khoá học, nhưng bạn có thể tính điểm tổng thể theo phương thức lập trình. Bài viết Thiết lập tính năng chấm điểm trong Trung tâm trợ giúp cung cấp các mẹo về cách tính điểm này. Tài nguyên Course bao gồm trường gradebookSettings có thể giúp bạn thực hiện các phép tính.

Nếu bạn muốn tính điểm tổng thể, hãy đọc một số lưu ý để biết cách quản lý bài tập bị nộp muộn, bài tập có lý do và bài tập bị thiếu.

Quản lý trạng thái phản hồi của học viên

Câu trả lời của học viên có thể được huỷ gửi, nộp hoặc trả lại. Trường trạng thái trong StudentSubmission cho biết trạng thái hiện tại. Để thay đổi trạng thái, hãy gọi một trong các phương thức sau:

Tất cả các phương thức này đều chấp nhận tham số body trống, ví dụ:

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

Tệp đính kèm của tiện ích bổ sung Điểm

Nếu là nhà phát triển tiện ích bổ sung cho Lớp học, bạn có thể đặt điểm cho từng tệp đính kèm của tiện ích bổ sung và định cấu hình điểm để giáo viên có thể xem khi họ xem xét bài tập của học viên. Hãy xem hướng dẫn về Tệp đính kèm thuộc loại Hoạt độngChuyển điểm để biết thêm thông tin.