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, Pertanyaan jawaban
singkat, dan Pertanyaan Pilihan ganda.
Untuk mengakses fungsi ini, Anda dapat menggunakan referensi Coursera, yang mewakili Tugas atau Pertanyaan yang telah diberikan kepada siswa dalam kursus tertentu, termasuk materi dan detail tambahan, seperti batas waktu atau skor maksimal.
Selain referensi CourseWork, Anda dapat mengelola tugas yang sudah selesai dengan resource StudentSubmission
. Bagian berikut menjelaskan hal ini
secara lebih detail.
Membuat tugas
Tugas hanya dapat dibuat atas nama pengajar mata pelajaran dan
upaya untuk membuat tugas dalam mata pelajaran atas nama siswa akan menghasilkan
error 403 PERMISSION_DENIED
. Demikian pula, admin domain juga tidak dapat membuat
tugas untuk kursus yang tidak mereka ajar dan mencoba melakukannya melalui API
juga akan menghasilkan error 403 PERMISSION_DENIED
.
Saat membuat tugas menggunakan metode courses.courseWork.create
, Anda
dapat melampirkan link sebagai materials
, yang ditunjukkan 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 tertaut dalam tugas yang dibuat melalui Classroom API, gunakan Resource link, yang menentukan URL target. Classroom akan otomatis mengambil judul dan gambar thumbnail. Classroom API juga secara native mendukung materi YouTube dan Google Drive, yang dapat disertakan dengan referensi DriveFile atau referensi YouTubeVideo dengan cara yang serupa.
Untuk menentukan batas waktu, tetapkan kolom dueDate
dan dueTime
ke waktu UTC yang sesuai. Batas waktu harus pada masa mendatang.
Mengambil tugas dan pertanyaan
Anda dapat mengambil tugas dan pertanyaan untuk siswa dan pengajar mata pelajaran yang sesuai atau oleh administrator domain. Untuk mengambil tugas atau pertanyaan tertentu, gunakan course.courseWork.get. Untuk mengambil semua tugas atau pertanyaan (secara opsional cocok dengan beberapa kriteria), gunakan courses.courseWork.list.
Cakupan yang diperlukan bergantung pada peran yang dimiliki pengguna yang meminta dalam kursus. 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 cakupan berikut:
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 untuk mengakses materi atau metadata materi. Dalam praktiknya, hal ini berarti administrator mungkin tidak melihat judul file Drive yang dilampirkan jika mereka bukan anggota kursus. Jika Anda ingin mengizinkan administrator mengakses file pengguna, lihat panduan delegasi seluruh domain.
Mengelola respons siswa
Referensi StudentSubmission
mewakili tugas yang telah selesai dan nilai siswa untuk tugas atau
pertanyaan. Resource StudentSubmission
dibuat secara implisit untuk setiap siswa saat pertanyaan atau
tugas baru dibuat.
Bagian berikut menjelaskan tindakan umum untuk mengelola respons siswa.
Mengambil respons siswa
Siswa dapat mengambil kiriman mereka sendiri, pengajar dapat mengambil kiriman
untuk semua siswa di kursus mereka, dan administrator domain dapat mengambil semua
tugas kiriman untuk semua siswa di domain mereka. Setiap kiriman siswa
diberikan ID. Jika Anda mengetahui ID-nya, gunakan
courses.courseWork.studentSubmissions.get
untuk mengambilnya.
Gunakan metode courses.courseWork.studentSubmissions.list
untuk mendapatkan
resource StudentSubmission
yang cocok dengan beberapa kriteria, seperti yang ditunjukkan dalam
contoh berikut:
Java
Python
Ambil resource StudentSubmission
yang merupakan milik siswa tertentu dengan
menentukan parameter userId
, seperti yang ditunjukkan dalam contoh berikut:
Java
Python
Siswa diidentifikasi berdasarkan ID unik atau alamat email pengguna, seperti yang ditampilkan oleh Google Admin SDK. Pengguna saat ini juga dapat merujuk ke ID mereka sendiri menggunakan singkatan "me"
.
Anda juga dapat memperoleh kiriman siswa untuk semua tugas dalam
suatu kursus. 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 kursus. Gunakan cakupan berikut jika pengguna adalah pengajar atau administrator domain:
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 kiriman siswa tidak berarti izin untuk mengakses lampiran atau metadata lampiran. Dalam praktiknya, hal ini berarti administrator mungkin tidak melihat judul file Drive yang dilampirkan jika mereka bukan anggota kursus. Jika Anda ingin mengizinkan administrator mengakses file pengguna, lihat panduan delegasi seluruh domain.
Menambahkan lampiran ke jawaban siswa
Anda dapat melampirkan link ke kiriman siswa dengan melampirkan referensi Link
,
DriveFile
, atau YouTubeVideo
. Hal ini dilakukan dengan
courses.courseWork.studentSubmissions.modifyAttachments
, seperti yang ditunjukkan pada
contoh berikut:
Java
Python
Lampiran Link ditentukan oleh URL target; Classroom akan otomatis mengambil judul dan gambar thumbnail. Anda dapat mempelajari materi lain di halaman referensi masing-masing.
StudentSubmission
hanya dapat diubah oleh pengajar kursus atau
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 kursus. 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
Respons siswa dapat dibatalkan pengirimannya, diserahkan, atau dikembalikan. Kolom status
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 memerlukan 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 menampilkan
StudentSubmission
dalam status diserahkan.
Menilai respons siswa
Referensi StudentSubmission
memiliki dua kolom untuk menyimpan nilai:
assignedGrade
, yang merupakan nilai yang dilaporkan kepada siswa, dan draftGrade
,
yang merupakan nilai tentatif hanya dapat dilihat oleh pengajar. Kolom ini diperbarui
menggunakan courses.courseWork.studentSubmissions.patch
dengan mask kolom
yang berisi kolom yang sesuai, seperti 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 menetapkan nilai sebelum menyimpan draf nilai terlebih dahulu. Nilai yang diberikan kemudian dapat dikembalikan kepada siswa. Aplikasi harus mengemulasi perilaku ini. Aplikasi 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'))}")