UI Classroom mendukung lima jenis Tugas Kelas: Tugas,
Tugas Kuis, Pertanyaan jawaban singkat, Pertanyaan pilihan ganda, dan
Materi. Classroom API saat ini mendukung tiga jenis ini, yang
dikenal sebagai CourseWorkType
untuk API: Tugas, Jawaban singkat
pertanyaan, dan Pertanyaan pilihan ganda.
Untuk mengakses fungsi ini, Anda dapat menggunakan Referensi CourseWork, yang mewakili Tugas atau Pertanyaan yang telah diberikan kepada siswa dalam materi tertentu, termasuk materi dan detail tambahan apa pun, seperti tanggal atau skor maks.
Selain materi CourseWork, Anda dapat mengelola tugas yang telah selesai
dengan resource StudentSubmission
. Bagian berikut menjelaskan hal ini
secara lebih detail.
Membuat tugas
Tugas hanya dapat dibuat atas nama pengajar kursus dan
mencoba membuat tugas di mata pelajaran atas nama siswa akan menghasilkan
dalam error PERMISSION_DENIED
403. Demikian juga, admin domain
juga tidak dapat membuat
tugas untuk mata pelajaran yang tidak mereka ajarkan dan berusaha melakukannya melalui API
juga akan menghasilkan error PERMISSION_DENIED
403.
Saat membuat tugas menggunakan metode courses.courseWork.create
, Anda
dapat melampirkan link sebagai materials
, yang ditampilkan pada kode contoh di bawah:
Java
Python
Hasilnya mencakup ID yang ditetapkan server yang dapat digunakan untuk mereferensikan penetapan dalam permintaan API lainnya.
Untuk menyertakan materi yang ditautkan dalam tugas yang dibuat melalui Classroom API, gunakan Link resource, yang menentukan URL target. Classroom akan mengambil judul dan gambar thumbnail secara otomatis. Classroom API juga mendukung materi Google Drive dan YouTube secara native, yang dapat disertakan dengan resource DriveFile atau Referensi YouTubeVideo dengan cara serupa sebelumnya.
Untuk menentukan batas waktu, tetapkan kolom dueDate
dan dueTime
ke
waktu UTC yang sesuai. Batas waktu harus berada di masa mendatang.
Mengambil tugas dan pertanyaan
Anda dapat mengambil tugas dan pertanyaan untuk siswa dan pengajar terkait atau oleh administrator domain. Untuk mengambil tugas atau pertanyaan, gunakan course.courseWork.get. Untuk mengambil semua tugas atau pertanyaan (cocok dengan beberapa kriteria), gunakan courses.courseWork.list.
Cakupan yang diperlukan bergantung pada peran yang dimiliki pengguna yang meminta dalam materi sebelumnya. Jika pengguna adalah siswa, gunakan salah satu cakupan berikut:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Jika pengguna adalah pengajar atau administrator domain, gunakan salah satu opsi berikut cakupan:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Memiliki izin untuk mengambil tugas atau pertanyaan tidak berarti izin akses untuk mengakses material atau metadata material. Dalam praktiknya, ini berarti administrator mungkin tidak melihat judul file Drive yang dilampirkan jika bukan anggota pelatihan. Jika Anda ingin mengizinkan administrator mengakses pengguna lihat direktori seluruh domain delegasi kami.
Mengelola jawaban siswa
StudentSubmission
sumber daya mewakili pekerjaan yang dilakukan dan nilai siswa untuk tugas atau
pertanyaan tersebut. StudentSubmission
secara implisit dibuat untuk setiap siswa ketika ada pertanyaan baru atau
tugas dibuat.
Bagian berikut menjelaskan tindakan umum yang mengelola respons siswa.
Mengambil jawaban siswa
Siswa dapat mengambil kiriman mereka sendiri, pengajar dapat mengambil kiriman
untuk semua siswa dalam mata pelajaran mereka, dan
administrator domain dapat mengambil semua
kiriman untuk semua siswa di domain mereka. Setiap kiriman siswa
diberi ID; jika Anda tahu pengidentifikasinya, gunakan
courses.courseWork.studentSubmissions.get
untuk mengambilnya.
Gunakan metode courses.courseWork.studentSubmissions.list
untuk mendapatkan
Resource StudentSubmission
yang cocok dengan beberapa kriteria, seperti yang ditampilkan dalam
contoh berikut:
Java
Python
Mengambil materi StudentSubmission
milik siswa tertentu dengan
yang menentukan parameter userId
, seperti yang ditunjukkan dalam contoh berikut:
Java
Python
Siswa diidentifikasi berdasarkan ID unik atau alamat email pengguna, sebagai
yang ditampilkan oleh Google Admin SDK. Pengguna saat ini juga dapat merujuk ke
ID menggunakan singkatan "me"
.
Anda juga dapat memperoleh pengumpulan tugas dari siswa dalam
materi sebelumnya. Untuk melakukannya, gunakan "-"
literal sebagai courseWorkId
, seperti yang ditunjukkan dalam
contoh berikut:
Java
service.courses().courseWork().studentSubmissions()
.list(courseId, "-")
.set("userId", userId)
.execute();
Python
service.courses().courseWork().studentSubmissions().list(
courseId=<course ID or alias>,
courseWorkId='-',
userId=<user ID>).execute()
Cakupan yang diperlukan bergantung pada peran yang dimiliki pengguna yang meminta dalam materi sebelumnya. Gunakan cakupan berikut jika pengguna adalah pengajar atau domain administrator:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Gunakan cakupan berikut jika pengguna adalah siswa:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Memiliki izin untuk mengambil tugas yang dikirimkan siswa tidak berarti izin untuk mengakses lampiran atau metadata lampiran. Dalam praktiknya, berarti bahwa administrator mungkin tidak melihat judul dari file Drive yang dilampirkan jika mereka bukan anggota pelatihan. Jika Anda ingin mengizinkan akses administrator ke file pengguna, lihat panduan delegasi tingkat domain.
Menambahkan lampiran ke respons siswa
Anda dapat melampirkan link ke kiriman siswa dengan melampirkan Link
,
DriveFile
, atau YouTubeVideo
. Hal ini dilakukan dengan
courses.courseWork.studentSubmissions.modifyAttachments
, seperti yang ditunjukkan dalam
contoh berikut:
Java
Python
Lampiran link ditentukan oleh URL target; Classroom akan otomatis mengambil judul dan gambar thumbnail. Anda dapat mempelajari tentang materi lainnya di halaman referensi masing-masing.
StudentSubmission
hanya dapat diubah oleh pengajar kursus atau oleh
siswa yang memilikinya. Anda hanya dapat melampirkan Materials
jika
CourseWorkType
tugas yang dikirimkan siswa adalah ASSIGNMENT
.
Cakupan yang diperlukan bergantung pada peran yang dimiliki pengguna yang meminta dalam materi sebelumnya. Gunakan cakupan berikut jika pengguna adalah pengajar:
https://www.googleapis.com/auth/classroom.coursework.students
Gunakan cakupan berikut jika pengguna adalah siswa:
https://www.googleapis.com/auth/classroom.coursework.me
Mengelola status respons siswa
Jawaban siswa mungkin dibatalkan pengirimannya, diserahkan, atau dikembalikan. Kolom negara bagian
di StudentSubmission
menunjukkan status saat ini. Untuk mengubah status, panggil
salah satu metode berikut:
courses.courseWork.studentSubmissions.turnIn
courses.courseWork.studentSubmissions.return
courses.courseWork.studentSubmissions.reclaim
Semua metode ini menggunakan isi kosong. Contoh:
Java
Python
service.courses().courseWork().studentSubmission().turnIn(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
body={}).execute()
Hanya siswa yang memiliki StudentSubmission
yang dapat menyerahkan atau mengklaimnya kembali.
Hanya kiriman yang telah diserahkan yang dapat diklaim kembali. Pengajar kursus hanya dapat mengembalikan
StudentSubmission
yang berada dalam status diserahkan.
Menilai respons siswa
Resource StudentSubmission
memiliki dua kolom untuk menyimpan nilai:
assignedGrade
, yang merupakan nilai yang dilaporkan kepada siswa, dan draftGrade
,
yaitu kelas sementara yang hanya dapat dilihat oleh pengajar. Kolom ini diperbarui
menggunakan courses.courseWork.studentSubmissions.patch
dengan mask kolom
berisi bidang yang sesuai, seperti yang ditunjukkan dalam contoh berikut.
Java
Python
studentSubmission = {
'assignedGrade': 99,
'draftGrade': 80
}
service.courses().courseWork().studentSubmissions().patch(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
updateMask='assignedGrade,draftGrade',
body=studentSubmission).execute()
Saat menggunakan UI Classroom, pengajar tidak dapat memberikan nilai sampai mereka menyimpan draf nilai terlebih dahulu. Nilai yang diberikan kemudian dapat dikembalikan ke seorang siswa. Aplikasi harus mengemulasikan perilaku ini. Permohonan Anda dapat menilai tugas siswa dengan salah satu dari dua cara berikut:
Tetapkan
draftGrade
saja. Hal ini berguna, misalnya, untuk memungkinkan pengajar meninjau nilai secara manual sebelum menyelesaikannya. Siswa tidak dapat melihat draf nilai.Tetapkan
draftGrade
danassignedGrade
untuk menilai tugas sepenuhnya.
Mencantumkan nilai yang diberikan
Anda dapat mencantumkan semua nilai untuk item tugas mata pelajaran tertentu dengan menjelajahi
Objek respons metode courses.courseWork.studentSubmissions.list
:
Java
Python
response = coursework.studentSubmissions().list(
courseId=course_id,
courseWorkId=coursework_id,
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'))}")