グループ課題について
グループ課題は、GitHub Classroom上の学生のグループのための共同のコースワークです。学生は、プロフェッショナルな開発者チームと同じように、共有リポジトリでグループ課題に協力して取り組むことができます。
グループ課題を受け入れた学生は、新しいTeamを作成するか、既存のTeamに参加できます。 GitHub Classroomは、課題のためのTeamをセットとして保存します。 課題を作成する際、特定の課題に対するTeamのセットに名前を付けることができます。また、後の課題でTeamのセットを再利用できます。
それぞれのグループ課題に対して、GitHub Classroomは自動的にTeamがアクセスするための1つの共有リポジトリを作成します。 このリポジトリは空にすることも、スターターコード、ドキュメンテーション、テスト、その他のリソースを持つテンプレートリポジトリから作成することもできます。 リポジトリはGitHub上のあなたのOrganizationアカウントに属し、GitHub Classroomは課題を受け入れたときに学生が作成もしくは参加するTeamにアクセス権を付与します。
それぞれの課題にはタイトルとオプションの期限があります。 GitHub Classroomが作成するリポジトリの可視性を選択し、アクセス権限を選択できます。 自動的に課題を評価し、課題について学生と議論するための専用のスペースを作成することもできます。
1つの課題に取り組むチームの数と、各Teamのメンバーの数を決めることができます。 学生が課題ために作成する各グループは、GitHubのOrganization内のTeamです。 Teamの可視性はシークレットとなります。 GitHub上で作成したTeamは、GitHub Classroomでは表示されません。 詳しくは、「Team について」をご覧ください。
既存の課題は、自分が管理者アクセス権を持つ他のクラスルーム (別の組織のクラスルームを含む) で再利用できます。 詳しくは、「課題を再利用する」を参照してください。
前提条件
課題を作成する前に、クラスルームを作成しなければなりません。 詳しくは、「クラスルームの管理」を参照してください。
課題を作成する
- GitHub Classroomにサインインしてください。
- クラスルームにアクセスしてください。
- [課題] タブで、割り当てを作成します。
- これが初めての課題の場合は、 Create an assignment をクリックします。
- それ以外の場合は、右側にある [新しい課題] をクリックします。
課題の基本情報をセットアップする
課題に名前を付け、期限を設定するか、Teamを定義するかを決定し、課題リポジトリの可視性を選択します。
課題に名前を付ける
グループ課題では、GitHub ClassroomはリポジトリのプレフィックスとTeamの名前から、リポジトリに名前を付けます。 デフォルトでは、リポジトリのプレフィックスが課題のタイトルとなります。 たとえば、課題に "assignment-1" という名前を付けて、GitHub での Team の名前名が "student-team" である場合、Team のメンバーの課題リポジトリの名前は assignment-1-student-team
になります。
[課題のタイトル] に、課題のタイトルを入力します。 あるいは、をクリックしてプレフィックスを編集してください。
課題に期限を設定する
あるいは、課題に期限を割り当てることができます。 "Deadline (optional)(期限(オプション))"の下で、テキストフィールドをクリックし、日付のピッカーを使って期限を割り当ててください。
必要に応じて、期限を締切日にするには、 [これは締切日です] を選びます。 締切日を使う場合、締切日を過ぎると、締切の延期を受けていない限り、受講生は自分の課題リポジトリへの書き込みアクセス権を失います。 課題の期限の延期について詳しくは、「個人またはグループの割り当ての期限の延長」をご覧ください。
課題のタイプを選択する
[個人またはグループの課題] でドロップダウン メニューを選択して、 [グループの課題] をクリックします。 課題の作成後は、課題タイプを変更できません。 個人の課題を作成する場合は、「個人課題の作成」を参照してください。
課題のTeamを定義する
すでにクラスルームに対してグループ課題を作成している場合は、新しい課題にTeamのセットを再利用できます。 学生が課題用に作成したTeamで新しいセットを作成するには、そのセットの名前を入力します。 必要に応じて、Teamメンバーと合計チーム数の上限を入力してください。
Note
- セットの名前には、Teamのセットについの情報を含めることをお勧めします。 たとえば、1つの課題用にTeamのセットを使う場合は、その課題にちなんだ名前を付けます。 学期またはコースを通じてセットを再利用する場合は、学期またはコースにちなんだ名前を付けます。
- 特定のTeamに学生を割り当てる場合は、学生にTeamの名前を伝え、メンバーのリストを提供します。
課題リポジトリの可視性を選択する
課題のためのリポジトリは、パブリックにもプライベートにもできます。 プライベートリポジトリを使うと、学生あるいはTeamだけが提供されたフィードバックを見ることができます。
また、課題のためのリポジトリに対する管理権限を学生に与えるかを決定することもできます。 学生が課題のリポジトリに対して管理タスクを行えなければならないのであれば、管理権限を与えてください。 詳細については、「リポジトリについて」および「Organizationのリポジトリロール」を参照してください。
"Repository visibility(リポジトリの可視性)"の下で、可視性を選択してください。 必要に応じて、 [リポジトリに対する管理者アクセスを学生に付与する] を選んでください。
完了したら、 [続行] をクリックして、課題のためのスターター コードと開発環境を設定します。
スターターコードを追加し、開発環境を構成する
空のリポジトリあるいはスターターコードを提供するかを決めて、学生のための開発環境を事前設定することもできます。
テンプレートリポジトリを作成する
デフォルトでは、新しい課題では学生が作成した各Teamに対し、空のリポジトリが作成されます。 課題のためのスターターコードとしてテンプレートリポジトリを選択することもできます。 詳しくは、「テンプレートリポジトリからの課題の作成」を参照してください。
Note
テンプレートリポジトリは、Organizationに属しているか、GitHub上のパブリックリポジトリでなければなりません。
[Add a template repository to give students starter code](学生にスタート コードを与えるテンプレート リポジトリを追加する) の下にある [Select a repository](リポジトリの追加) ドロップダウンを選び、検索クエリを入力します。 結果のリストから、スターターコードのために利用したいテンプレートリポジトリをクリックしてください。
統合開発環境 (IDE) を選択する
必要に応じて、統合開発環境 (IDE) を使うように課題を構成することもできます。 IDE を使うと、学生は Git や完全な開発ツールチェーンを自分のコンピューターにインストールすることなく、コードを書く、プログラムを実行する、共同作業することができます。 学生が課題に IDE を選んだ場合でも、必要なソフトウェアがインストールされたコンピューターのローカルにコードをチェックアウトして実行することができます。詳細については、「GitHub ClassroomとIDEの統合」を参照してください。
GitHub Codespaces を使って割り当てを構成し、ワン クリックで設定できるブラウザーベースの Visual Studio Code 環境に学生がアクセスできるようにできます。 詳しくは、「GitHub Classroom で GitHub codespace を使用する」を参照してください。
課題の IDE を選択するには、[エディターの追加] ドロップダウン メニューを選択し、学生に使用させる IDE をクリックします。
完了したら、 [続行] をクリックして、プロジェクトの自動採点とフィードバックを構成します。
フィードバックの提供
必要に応じて、課題を自動的に採点し、各提出物をTeamで議論するための場を作成できます。
課題を自動的にテストする
GitHub Classroom上で課題に対する学生の作業を自動的にチェックするために、自動評価を利用できます。 課題にテストを構成すると、学生が GitHub.com 上の課題リポジトリにプッシュするたびに、テストがすぐに実行されます。 学生は、テストの結果を見て、変更を行い、新しい結果を見るためにプッシュできます。詳細については、「自動採点」を参照してください。
[自動採点テストの追加] で [テストの追加] ドロップダウン メニューを選択し、使用する採点方法をクリックします。 詳細については、「自動採点」を参照してください。
名前、コマンド、入力、出力、タイムアウト、ポイントなど、テストケースのパラメータを定義してください。 完了したら、 [テスト ケースを保存する] をクリックします。
[テストの追加] ドロップダウン メニューを使用すると、テストをさらに追加できます。 あるいは を使うと、既存のテストを編集または削除できます。
保護されたファイル パスの指定
課題に採点プロセスで使用されるファイルまたはディレクトリがある場合、または学生が編集してはならない場合は、それらを保護されたファイル パスとして指定できます。 学生が保護されたファイルを編集すると、課題の概要ページの提出にラベルが適用され、調査が行われます。 詳しくは、「課題の概要ページで学生の進捗状況を監視する」を参照してください。
保護されたパスのパターンは、シェル ファイル名 glob と同様の規則に従います。 これには、次のメタ文字が含まれる場合があります。
*
: 任意のファイルと一致します。 たとえば、*
はすべての通常のファイルと一致し、foo*
はfoo
から始まるすべてのファイルと一致し、*foo
は末尾がfoo
のすべてのファイルと一致し、*foo*
は名前にfoo
が含まれる (先頭または末尾を含む) すべてのファイルと一致します**
: ディレクトリと再帰的に一致するか、ファイルと広範に一致します。 たとえば、.github/**/*
は.github
内のすべてのファイルとそのサブディレクトリと一致します?
: 任意の 1 文字と一致します[set]
: (a-z
のようなセットを含む)set
内の任意の 1 文字と一致します\
: 次のメタ文字をエスケープします
フィードバックのためにプルリクエストを作成する
自動的にPull Requestを作成して、フィードバックを提供したり、課題に関する学生の質問に答えたりすることができます。 pull request での変更のレビューの詳細については、「pull request での変更をレビューする」を参照してください。pull request にフィードバックを残す方法の詳細については、「プルリクエストでフィードバックをする」を参照してください。
フィードバックのディスカッション用に pull request を作成するには、 [Enable feedback pull requests](フィードバック pull request を有効にする) を選びます。
割り当てを作成するには、 [割り当ての作成] をクリックします。
学生を課題に招待する
デフォルトでは、GitHub Classroomは作成されたそれぞれの課題に対して招待URLを有効化します。 学生は、招待URLが有効になっている間に課題を受け付けて提出できます。 このURLはLMS、コースのホームページ、あるいはあなたが課題をポストできるところならどこででも、学生と共有できます。 学生は、クラスルームの課題をすでに受け付けているなら、GitHub Classroom上でその課題にアクセスすることもできます。
Warning
招待 URL を共有する場所には注意してください。 課題の招待 URL があれば、誰でも招待を受け入れて GitHub 上の個人アカウントを名簿の識別子に関連づけることができます。
課題の [チーム] タブで、課題を作業している、または提出済みのチームを確認できます。 学生による課題の承諾または提出を防ぐために、[課題の編集] ビューで [課題の状態] を変更できます。 課題がアクティブな場合、学生は招待リンクを使用して受け入れることができます。 非アクティブの場合、このリンクは無効になります。
学生の進捗状況を監視する
課題の概要ページには、課題の受け入れと学生の進捗状況の概要が表示されます。 割り当ての概要ページの表示と使用の詳細については、「課題の概要ページで学生の進捗状況を監視する」を参照してください。
次の手順
-
課題を作成し、学生がTeamを編成した後、TeamメンバーはGitとGitHubの機能を使用して課題を開始できます。 学生はリポジトリのクローン、コミットのプッシュ、ブランチの管理、プルリクエストの作成およびレビュー、マージコンフリクトへの対処、およびIssueの変更に関するディスカッションが可能です。 あなたもTeamも、リポジトリのコミット履歴をレビューできます。 詳細については、「GitHub の概要に関するドキュメント」、「リポジトリに関するドキュメント」、「Git の使用」、「pull request を使った共同作業」、GitHub Skills のマージ競合の解決に関する無料コースを参照してください。
-
課題を完了したチームがある場合は、そのリポジトリにあるファイルをレビューできます。また、チームがどのように協力したかをより深く理解するため、リポジトリの履歴や視覚化されたデータを確認できます。 詳しくは、「リポジトリのアクティビティとデータを表示する」をご覧ください。
-
プルリクエストの内の個々のコミットや行にコメントすることで、課題にフィードバックを行うことができます。 詳細については、「プルリクエストへのコメント」および「Issue の作成」を参照してください。 返信テンプレートを作成して一般的なエラーに関するフィードバックを提供する方法の詳細については、「返信テンプレートについて」を参照してください。