簡介

Classroom 中的作業稱為「課程作業」項目,可在任何 Classroom 課程的「課堂作業」頁面中找到。雖然有四種課業項目類型,但本指南只著重於「作業」類型。如要瞭解如何管理其他課堂作業類型,請參閱管理課堂作業指南

Google Classroom 有兩種方式可與作業工作流程整合:Classroom 分享按鈕Classroom API。分享按鈕可讓使用者透過 Classroom 彈出式視窗對話方塊,將內容分享為任何串流項目,而 Classroom API 則可啟用從頭到尾的作業工作流程,包括建立作業、建立及管理學生提交內容,以及傳回成績。

我們將在這裡介紹這兩項開發人員產品的主要差異。具體來說,我們將說明實作方式的差異,以及作業生命週期的各個階段:作業建立、學生提交作業,以及評分/提供意見回饋。

瞭解作業生命週期

在討論分享按鈕和 CourseWork API 的差異之前,我們先來定義 Classroom 中作業的生命週期。這有助於您瞭解老師和學生如何在 Classroom 中互動作業。

整合 Classroom 作業時,請留意個主要步驟:

  1. 已建立指派作業。
  2. 作業會與學生共用。
  3. 學生完成作業。
  4. 學生向老師提交作業。
  5. 老師查看及評分作業。

整合 Classroom 作業後,老師和學生就能在 Classroom 和第三方應用程式之間順暢地進行作業。使用者不必自行管理作業或學生提交內容的詳細資料,而是可以讓應用程式為他們管理這些詳細資料。

圖表:顯示作業的五個步驟

實作

分享按鈕和 CourseWork API 的第一個不同之處是實作。從開發人員的角度來看,分享按鈕是將內容分享至 Classroom 的簡單方法,因為只需要加入必要的 JavaScript 資源,並新增分享按鈕代碼即可。在最簡單的形式中,Classroom 分享按鈕整合功能可能會像以下程式碼片段:

<script src="https://apis.google.com/js/platform.js" async defer></script>
<g:sharetoclassroom url="http://url-to-share" size="32"></g:sharetoclassroom>

另一方面,CourseWork API 是 Google Classroom API REST API 的一部分,因此您必須透過 Google Cloud 主控台設定及啟用 API 金鑰,並遵循與 API 整合的最佳做法。如果您的平台已運用其他 Classroom API 功能 (例如學生名單),則不必太擔心這個問題。

建立及分享作業

雖然分享按鈕和 CourseWork API 都能啟用作業工作流程的前兩個步驟 (建立作業並與學生分享),但在選擇解決方案前,您仍應考量一些重要差異。

這兩種解決方案的核心功能,都是讓您能夠將連結或檔案做為作業發布至 Classroom。這項功能可為老師提供強大的作業流程,否則他們必須在 Classroom 和第三方應用程式之間進行複製貼上作業流程。雖然這兩種解決方案都支援將內容發布為作業的功能,但您仍應考量應用程式是否需要以其他課業類型或甚至是公告的形式發布這類內容。

這兩種服務都會顯示所有 Classroom 貼文類型,除了測驗作業。以下是所有貼文類型和是否公開的摘要。

貼文類型 分享按鈕 CourseWork API
指派項目 X X
測驗作業
問題:簡答 X X
問題:多項選擇題 X X
材質 X X
公告 X X

對於這兩種解決方案,應用程式也可以透過程式輔助方式指定功能,例如指定標題和說明。雖然分享按鈕整合功能可讓使用者在彈出式對話方塊中設定欄位 (例如截止日期、主題、個別化模式和分數數量),但第三方應用程式無法透過程式設計設定這些欄位。另一方面,API 則會公開所有這些欄位,供讀取和寫入存取。

修改指派作業

整合 Classroom API 後,使用者就無需手動同步變更作業的詳細資料,這也是這項整合的其中一個好處。分享按鈕缺乏以程式設計方式更新或刪除作業的功能,因此使用者必須透過 Classroom UI 進行任何必要的修改。

CourseWork API 可讓您修改和刪除應用程式建立的作業,以及擷取任何發布至使用者課程的作業詳細資料。不過,請注意,如果課程作業項目並非由同一個開發人員控制台建立,則該開發人員控制台無法修改該項目。這項權限模式會延伸至作業的其他生命週期,例如無法存取這些 CourseWork 項目的學生提交內容和成績。

自動同步處理作業

透過 Pub/Sub 推播通知,應用程式就能訂閱通知,在 CourseWork 項目和相關學生提交內容發生變更時觸發事件。這樣一來,應用程式就無需不斷檢查 Classroom 中的內容是否已更新,因此可以輕鬆同步指派作業。

完成及提交作業

每份作業都與 N 位學生的繳交作業相關聯,其中 N 是作業指派給學生的人數。換句話說,每項作業都有一個與學生提交作業相關聯的專屬 ID,可透過該 ID 存取。這些學生提交內容會自動建立,應用程式可透過學生提交內容 GET 和 LIST 端點擷取這些內容。

分享按鈕和 CourseWork API 都支援在學生提交的作業中加入連結或檔案。透過分享按鈕,您可以透過與老師作業建立對話方塊類似的工作流程,以及 CourseWork API 透過 studentSubmissions.modifyAttachments 端點,完成這項操作。不過,由於 API 權限有限制 (如前文所述),因此這項功能僅適用於應用程式建立的 CourseWork 項目。不過,學生可以透過分享按鈕將作業加入任何從 Classroom 選取的作業,因此不受此限制。

結束學生工作流程

雖然 CourseWork 權限限制不適用於不支援建立作業的平台,但第三方平台可以避免學生提交錯誤的作業,以及忘記繳交作業,因為只有分享按鈕會受到限制,學生仍可提交作業。

查看及評分作業

作業生命週期的最後一個階段會將作業發還給老師。學生繳交作業後,老師就可以以最適當的方式審查作業。如果是儲存在雲端硬碟中的檔案,他們可以直接在 Classroom 評分工具中查看。不過,您無法在 Classroom 評分工具中存取第三方應用程式。這項體驗的影響是,老師在查看及評分作業時,必須瀏覽多個分頁。

分享按鈕目前無法提供評分和退回作業的解決方案。雖然學生提交作業的註解等功能目前無法透過 API 公開,但您可以透過 studentSubmissions.patchstudentSubmissions.return 端點,為學生評分並傳回這些成績。您只能為課程作業流程項目 (作業和問題類型) 指定成績。只能以數字格式提供,並可指派為草稿或最終成績。

差異摘要

為便於瞭解前幾節所述的所有內容,下表將分享按鈕和 CourseWork API 的四個類別並排比較,這些類別分別是:導入、建立及分享作業、完成及提交作業,以及審查及評分作業。

分享按鈕 CourseWork API
實作 只需幾行 JavaScript 程式碼,即可輕鬆快速地實作 需要設定 API 金鑰、在管理控制台中啟用 API,並進行密切監控
建立及分享作業
  • 將老師重新導向至 Classroom 分享按鈕的分享對話方塊
  • 使用者可以發布所有串流項目類型,
  • 可指定較少欄位
  • 一個可建立作業,但無法擷取或修改作業資料
  • 不需要分享按鈕對話方塊
  • 可指定大部分 Classroom 作業欄位
  • 能夠修改應用程式建立的課程
  • 允許應用程式從 Classroom 提取所有作業資料
完成並提交作業
  • 將學生重新導向至 Classroom 分享按鈕的分享對話方塊
  • 允許學生將提交內容附加到任何 Classroom 作業
  • 一個可用來提交附件的,無法擷取或修改提交資料
  • 不允許學生繳交作業
  • 不需要分享按鈕對話方塊
  • 只允許學生將提交內容附加至應用程式建立的作業
  • 允許應用程式修改學生提交的內容
  • 允許學生繳交作業
查看及評分作業 不支援指定或傳回成績
  • 允許應用程式代表老師從 Classroom 提取所有學生提交的資料
  • 提供指派學生成績的功能,可為草稿或最終成績
  • 提供修改學生成績的功能
  • 提供將成績發還給學生的功能