Notları ayarlama ve güncelleme

Bu kılavuzda, Google Classroom API için notlandırmayla ilgili kod örnekleri verilmiştir. Classroom'daki notlandırma kavramlarıyla ilgili bilgi edinmek için Notlar kılavuzunu okuyun.

Öğrenci gönderimleri için not belirleme

StudentSubmission kaynağında notları saklamak için iki alan bulunur: Öğrencilere bildirilen not olan assignedGrade ve yalnızca öğretmenler tarafından görülebilen geçici not olan draftGrade. Bu alanlar courses.courseWork.studentSubmissions.patch kullanılarak güncellenir.

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 kullanıcı arayüzüyle çalışırken öğretmenler, ilk kez geçici bir not kaydedene kadar bir not atayamaz. Böylece verilen not öğrenciye geri verilebilir. Uygulamanız, bir öğrencinin ödevine iki şekilde not verebilir:

  • Yalnızca draftGrade değerini atayın. Bu özellik, örneğin, öğretmenin notları kesinleştirmeden önce manuel olarak incelemesine olanak tanır. Öğrenciler geçici notları göremez.

  • Bir ödeve tam not vermek için hem draftGrade hem de assignedGrade'ü atayın.

Atanan notları okuma

courses.courseWork.studentSubmissions.list yönteminin yanıt nesnesini inceleyerek belirli bir sınıf çalışması öğesine ilişkin tüm notları listeleyebilirsiniz:

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

Kursun genel notlarını belirleme

Classroom API, geliştiricilerin genel kurs notlarını okumalarına veya yazmalarına izin vermez. Ancak bu notları programlı bir şekilde hesaplayabilirsiniz. Notlandırmayı ayarlama yardım merkezi makalesinde bu hesaplama hakkında ipuçları verilmektedir. Course kaynağı, hesaplamaları yapmanıza yardımcı olabilecek gradebookSettings alanını içerir.

Genel notu hesaplamak istiyorsanız geç, mazeretli ve eksik olan dersleri yönetirken dikkat etmeniz gereken ipuçlarını okuyun.

Öğrenci yanıt durumunu yönetme

Öğrenci yanıtları gönderilmeyebilir, teslim edilebilir veya geri verilebilir. StudentSubmission öğesindeki durum alanı, mevcut durumu gösterir. Durumu değiştirmek için aşağıdaki yöntemlerden birini çağırın:

Bu yöntemlerin tümü boş bir body parametresi kabul eder. Örneğin:

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

Not eklentisi ekleri

Classroom eklentisi geliştiriciyseniz eklenti ekleri için ayrı ayrı notlar belirleyebilir ve notu, öğretmenler öğrenci çalışmalarını incelerken görebilecekleri şekilde yapılandırabilirsiniz. Daha fazla bilgi için Etkinlik türü ekler ve Not geri verme adımlarına bakın.