はじめに

Classroom の課題はコースワーク アイテムと呼ばれ、特定の Classroom コースの [授業] ページで確認できます。クラスワークのアイテム タイプは 4 つありますが、このガイドでは「課題」タイプについてのみ説明します。他の種類の課題を管理する方法については、課題を管理するガイドをご覧ください。

Google Classroom では、課題ワークフローと統合する方法として、Classroom の共有ボタンClassroom API の 2 つがあります。共有ボタンを使用すると、ユーザーは 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 の一部であり、Google Cloud コンソールで API キーを設定して有効にし、API との統合に関するベスト プラクティスに従う必要があります。プラットフォームですでに名簿作成などの他の Classroom API 機能を利用している場合は、この点は懸念されません。

課題の作成と共有

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

どちらのソリューションも、リンクやファイルを課題として Classroom に投稿できます。これは、Classroom とサードパーティ製アプリの間でコピー&ペースト ワークフローを実行しなければならない教師にとって、強力なワークフローとなります。どちらのソリューションも、コンテンツを課題として投稿できますが、このコンテンツを他のクラスワーク タイプやお知らせとして柔軟に投稿する必要があるかどうかを検討する必要があります。

どちらのサービスでも、クイズ課題を除くすべての Classroom 投稿タイプが公開されます。すべての投稿タイプと公開されるかどうかの概要は次のとおりです。

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

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

課題の変更

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

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

課題を自動的に同期する

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

課題の完了と提出

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

共有ボタンと CourseWork API はどちらも、生徒が課題として提出するファイルにリンクやファイルを追加できます。共有ボタンを使用すると、教師の課題作成ダイアログと同様のワークフローで、CourseWork API の studentSubmissions.modifyAttachments エンドポイントを介してこの操作を行うことができます。ただし、前述の 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 から生徒の提出データをすべて取得できるようにします。
  • 生徒の成績を下書きまたは最終的な成績として割り当てる機能を公開
  • 生徒の成績を変更する機能を公開する
  • 生徒に成績を返却する機能を公開する