はじめに

Classroom 内の課題は CourseWork アイテムと呼ばれ、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 を統合するメリットの 1 つは、ユーザーが課題の詳細の変更を手動で同期しなくても済むことです。共有ボタンにはプログラムで課題の更新や削除を行う機能がないため、必要な変更はすべてユーザーが Classroom の UI から行う必要があります。

CourseWork API では、アプリケーションが作成した課題の変更と削除に加え、ユーザーのコースに投稿された課題の詳細を取得できます。ただし、同じデベロッパー コンソールで作成されていない CourseWork アイテムは、そのデベロッパー コンソールで変更できないことに注意してください。この権限モデルは、課題のライフサイクルの残りの期間(生徒の提出物や成績の管理など)にまで拡大されます。これらの CourseWork アイテムにはアクセスできません。

課題を自動的に同期する

Pub/Sub プッシュ通知を使用すると、CourseWork アイテムとそれに関連付けられた生徒の提出物に変更があった場合にイベントをトリガーする通知に登録できます。これにより、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 からすべての生徒の提出物データを取得することをアプリに許可します
  • 下書きまたは最終成績で生徒の成績を割り当てる機能を公開
  • 生徒の成績を変更する機能が公開
  • 生徒に成績を返却する機能を公開