はじめに

Classroom の課題は CourseWork アイテムと呼ばれ、Classroom の任意のコースの [授業] ページで確認できます。Classwork アイテムには 4 つのタイプがありますが、このガイドでは「課題」タイプのみに焦点を当てます。他の課題タイプを管理する方法については、課題を管理するガイドをご覧ください。

Google Classroom には、課題ワークフローと統合する 2 つの方法があります。Classroom の共有ボタンClassroom API です。共有ボタンを使用すると、ユーザーは Classroom のポップアップ ダイアログを通じて、コンテンツを任意のストリーム アイテムとして共有できます。一方、Classroom API を使用すると、課題の作成、生徒の提出物の作成と管理、成績の返却など、課題のワークフローを最初から最後まで実行できます。

ここでは、この 2 つのデベロッパー向けサービスの主な違いについて説明します。具体的には、実装の違いと、課題のライフサイクルの各フェーズ(課題の作成、生徒の提出、採点/フィードバック)について説明します。

課題のライフサイクルについて

共有ボタンと CourseWork API の違いについて説明する前に、まず Classroom のコンテキストにおける課題のライフサイクルについて定義します。これにより、教師と生徒が Classroom 内で課題をどのように利用しているかを把握できます。

Classroom の課題と統合する際に留意すべき主な手順は 5 つあります。

  1. 割り当てが作成されます。
  2. 課題が生徒と共有されます。
  3. 生徒が課題を完了します。
  4. 生徒が教師に課題を提出します。
  5. 教師が課題を確認して採点します。

Classroom の課題との統合により、教師と生徒は Classroom とサードパーティ製アプリケーションの間でシームレスに作業できます。ユーザーは、課題の詳細や生徒の提出物を管理する代わりに、アプリにこれらの詳細の管理を任せることができます。

課題の 5 つのステップを示す図

実装

共有ボタンと CourseWork API の最初の違いは実装です。デベロッパーの視点から見ると、共有ボタンは必要な JavaScript リソースを含めて共有ボタンタグを追加するだけでコンテンツを Classroom に共有できるため、より簡単な方法です。最もシンプルな形式の 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 の一部です。この API を使用するには、Google Cloud コンソールで API キーを設定して有効にし、API との統合に関するベスト プラクティスに沿って操作する必要があります。プラットフォームですでに 名簿登録などの他の Classroom API 機能を利用している場合は、この問題はあまり重要ではありません。

課題の作成と共有

共有ボタンと CourseWork API のどちらも、課題ワークフローの最初の 2 つの手順(課題の作成と生徒との共有)を可能にしますが、ソリューションを選択する前に考慮すべき重要な違いがいくつかあります。

どちらのソリューションも、リンクやファイルを課題として Classroom に投稿する機能を備えています。これにより、教師は Classroom とサードパーティ アプリケーションの間でコピー&ペーストのワークフローを強制されることなく、強力なワークフローを利用できます。どちらのソリューションもコンテンツを課題として投稿する機能をサポートしていますが、このコンテンツを他の Classroom のタイプやお知らせとして投稿する柔軟性がアプリケーションに必要かどうかを検討する必要があります。

どちらのサービスも、テストの課題を除くすべての Classroom の投稿タイプを公開します。すべての投稿タイプの概要と、公開されているかどうかについては、以下をご覧ください。

投稿の種類 共有ボタン CourseWork API
割り当て X X
テスト付きの課題
質問: 記述式 X X
質問: 多肢選択式 X X
素材 X X
お知らせ X X

タイトルや説明の指定などの機能は、両方のソリューションでアプリケーションによってプログラムで指定することもできます。共有ボタンの統合では、ユーザーはポップアップ ダイアログ内で期日、トピック、個別モード、ポイント数などのフィールドを設定できますが、サードパーティ製アプリでプログラム的に設定することはできません。一方、API では、これらのフィールドはすべて読み取りと書き込みの両方のアクセス用に公開されています。

割り当てを変更する

課題の変更内容をユーザーが手動で同期する必要がなくなることは、Classroom API と統合するメリットの 1 つです。共有ボタンには、課題をプログラムで更新または削除する機能がないため、必要な変更はユーザーが Classroom の UI を通じて行う必要があります。

CourseWork API を使用すると、アプリで作成した課題の変更と削除、ユーザーのコースに投稿された課題の詳細の取得の両方が可能になります。ただし、同じデベロッパー コンソールで作成されていない CourseWork アイテムは、そのデベロッパー コンソールで変更できないことに注意してください。この権限モデルは、課題のライフサイクルの残りの部分にも適用されます。たとえば、生徒の提出物や成績の管理は、これらの CourseWork アイテムに対してアクセスできません。

課題を自動的に同期する

Pub/Sub のプッシュ通知を使用すると、課題アイテムとその関連する生徒の提出物に変更があったときにイベントをトリガーする通知をアプリでサブスクライブできます。これにより、Classroom でコンテンツが更新されたかどうかを継続的に確認する必要がなくなり、課題を簡単に同期できるようになります。

課題の完了と提出

各課題は N 個の生徒の提出物に関連付けられています。ここで、N は課題が割り当てられた生徒の数です。つまり、課題ごとに、生徒ごとに生徒の提出物が関連付けられており、一意の ID でアクセスできます。これらの生徒の提出物は自動的に作成され、生徒の提出物の GET エンドポイントと LIST エンドポイントを使用してアプリケーションで取得できます。

共有ボタンと CourseWork API の両方で、課題の生徒の提出物にリンクやファイルを追加できます。共有ボタンを使用すると、教師の課題作成ダイアログと同様のワークフローで、studentSubmissions.modifyAttachments エンドポイントを介して CourseWork API を使用して、この操作を行うことができます。ただし、前述の API 権限の制限により、この機能はアプリケーションが作成した CourseWork アイテムに限定されます。ただし、共有ボタンにはこの制限は適用されません。生徒は Classroom で選択した任意の課題に課題を追加できます。

学割プランのワークフローを終了する

CourseWork 権限の制限は、課題の作成をサポートしていないプラットフォームではユースケースとして機能しませんが、生徒が課題を提出する機能を共有ボタンのみに制限することで、生徒が誤った課題に提出したり、課題の提出を忘れたりすることを防ぐことができるというメリットがあります。

課題の確認と採点

課題のライフサイクルの最後の部分は教師に戻ります。生徒が課題を提出すると、教師は最も効率的な方法で課題を確認できます。ドライブに保存されているファイルの場合は、Classroom の採点ツールで直接確認できます。ただし、Classroom の採点ツールではサードパーティ製アプリケーションにアクセスできません。このため、教師は課題の確認と採点を行う際に複数のタブを切り替える必要があります。

共有ボタンでは、現在、課題の採点と返却を行うためのソリューションは提供されていません。生徒の提出物のコメントなどの機能は現在 API で公開されていませんが、studentSubmissions.patch エンドポイントと studentSubmissions.return エンドポイントを使用すると、採点と生徒への成績の返却の両方を行うことができます。成績は、CourseWork ストリーム アイテム(課題と質問のタイプ)に対してのみ指定できます。数値形式でのみ使用でき、下書きの成績または最終成績として割り当てることができます。

違いについて

前のセクションで説明した内容をまとめると、次の表は、実装、課題の作成と共有、課題の完了と提出、課題の確認と採点という上記の 4 つのカテゴリについて、共有ボタンと CourseWork API を比較したものです。

共有ボタン CourseWork API
実装 JavaScript のコードは数行のみで、実装が簡単かつ迅速 API キーの設定、管理コンソールでの API の有効化、詳細なモニタリングが必要です
課題の作成と共有
  • 教師を Classroom の共有ボタンの共有ダイアログにリダイレクトします。
  • ユーザーは 1 つのストリーム アイテム タイプを除くすべてを投稿できます
  • 指定できるフィールドが少ない
  • 1 つは課題の作成を可能にするが、課題データを取得または変更する機能はない
  • 共有ボタンのダイアログは不要
  • ほとんどの Classroom の課題フィールドを指定できます
  • アプリケーションで作成されたコースワークを変更する機能
  • アプリが Classroom からすべての課題データを取得できるようにします
課題の完了と提出
  • 生徒を Classroom の共有ボタンの共有ダイアログにリダイレクトします
  • 生徒が Classroom の課題に提出物を添付できるようにする
  • 1 つは送信添付ファイルを有効にするもので、送信データの取得や変更はできません。
  • 生徒が課題を提出できない
  • 共有ボタンのダイアログは不要
  • 生徒がアプリで作成された課題に提出物を添付することのみを許可します
  • アプリが作成した生徒の提出物をアプリで変更できるようにします
  • 生徒が課題を提出できるようにする
課題の確認と採点 成績の指定や返却はサポートされていません
  • 教師の代わりに Classroom からすべての生徒の提出データを取得することをアプリに許可します
  • 生徒の成績を仮成績または最終成績として割り当てる機能を公開
  • 生徒の成績を変更する機能が公開される
  • 生徒に成績を返却する機能が公開されました