Skip to main content

グループ課題の作成

コースに参加している学生のTeamのために、共同課題を作成できます。

Who can use this feature

Organization owners who are admins for a classroom can create and manage group assignments for a classroom. クラスルーム管理者の詳細については、「クラスルームの管理について」を参照してください。

グループ課題について

グループ課題は、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 のセットアップの基本」を参照してください。

既存の課題は、自分が管理者アクセス権を持つ他のクラスルーム (別の組織のクラスルームを含む) で再利用できます。 詳細については、「割り当ての再利用」を参照してください。

前提条件

課題を作成する前に、クラスルームを作成しなければなりません。 詳細については、「Classroom の管理」を参照してください。

課題を作成する

  1. GitHub Classroomにサインインしてください。
  2. クラスルームにアクセスしてください。
  3. [Assignments](課題) タブで課題を作成します。
    • これが初めての課題の場合は、 [Create an assignment](課題の作成) をクリックします。 最初の課題の作成
    • そうではない場合は、 [New assignment](新しい課題) をクリックします。 [New assignment](新しい課題) ボタン

課題の基本情報をセットアップする

課題に名前を付け、期限を設定するか、Teamを定義するかを決定し、課題リポジトリの可視性を選択します。

課題に名前を付ける

グループ課題では、GitHub ClassroomはリポジトリのプレフィックスとTeamの名前から、リポジトリに名前を付けます。 デフォルトでは、リポジトリのプレフィックスが課題のタイトルとなります。 たとえば、課題に "assignment-1" という名前を付けて、GitHub での Team の名前名が "student-team" である場合、Team のメンバーの課題リポジトリの名前は assignment-1-student-team になります。

課題のタイトルを入力してください。 あるいは、をクリックしてプレフィックスを編集してください。

Assignment title and prefix

課題に期限を設定する

あるいは、課題に期限を割り当てることができます。 "Deadline (optional)(期限(オプション))"の下で、テキストフィールドをクリックし、日付のピッカーを使って期限を割り当ててください。

Date picker for assignment deadline

課題のタイプを選択する

[個人またはグループの課題] でドロップダウン メニューを選択して、 [グループの課題] をクリックします。 課題の作成後は、課題タイプを変更できません。 個人の課題を作成する場合は、「個人課題の作成」を参照してください。

課題のTeamを定義する

すでにクラスルームに対してグループ課題を作成している場合は、新しい課題にTeamのセットを再利用できます。 学生が課題用に作成したTeamで新しいセットを作成するには、そのセットの名前を入力します。 必要に応じて、Teamメンバーと合計チーム数の上限を入力してください。

ヒント:

  • セットの名前には、Teamのセットについの情報を含めることをお勧めします。 たとえば、1つの課題用にTeamのセットを使う場合は、その課題にちなんだ名前を付けます。 学期またはコースを通じてセットを再利用する場合は、学期またはコースにちなんだ名前を付けます。

  • 特定のTeamに学生を割り当てる場合は、学生にTeamの名前を伝え、メンバーのリストを提供します。

グループ課題に参加するチームのパラメータ

課題リポジトリの可視性を選択する

課題のためのリポジトリは、パブリックにもプライベートにもできます。 プライベートリポジトリを使うと、学生あるいはTeamだけが提供されたフィードバックを見ることができます。

また、課題のためのリポジトリに対する管理権限を学生に与えるかを決定することもできます。 学生が課題のリポジトリに対して管理タスクを行えなければならないのであれば、管理権限を与えてください。 詳細については、「リポジトリについて」と「Organization のリポジトリ ロール」を参照してください。

"Repository visibility(リポジトリの可視性)"の下で、可視性を選択してください。 必要に応じて、 [リポジトリに対する管理者アクセスを学生に付与する] を選んでください。

Visibility options for assignment repositories

完了したら、 [続行] をクリックして、課題のためのスターター コードと開発環境を設定します。

'Continue' button

スターターコードを追加し、開発環境を構成する

空のリポジトリあるいはスターターコードを提供するかを決めて、学生のための開発環境を事前設定することもできます。

テンプレートリポジトリを作成する

デフォルトでは、新しい課題では学生が作成した各Teamに対し、空のリポジトリが作成されます。 課題のためのスターターコードとしてテンプレートリポジトリを選択することもできます。 テンプレート リポジトリについて詳しくは、「テンプレート リポジトリを作成する」をご覧ください。

注: テンプレート リポジトリは、Organization に属しているか、GitHub 上のパブリック リポジトリでなければなりません。

[Add a template repository to give students starter code](学生にスタート コードを与えるテンプレート リポジトリを追加する) の下にある [Select a repository](リポジトリの追加) ドロップダウンを選び、検索クエリを入力します。 結果のリストから、スターターコードのために利用したいテンプレートリポジトリをクリックしてください。

Using the 'Select a repository' drop-down menu to find a template repository to use as starter code for an assignment

統合開発環境 (IDE) を選択する

必要に応じて、統合開発環境 (IDE) を使うように課題を構成することもできます。 IDE を使うと、学生は Git や完全な開発ツールチェーンを自分のコンピューターにインストールすることなく、コードを書く、プログラムを実行する、共同作業することができます。 学生が課題に IDE を選んだ場合でも、必要なソフトウェアがインストールされたコンピューターのローカルにコードをチェックアウトして実行することができます。詳細については、「GitHub Classroom と IDE の統合」を参照してください。

GitHub Codespaces を使って割り当てを構成し、ワン クリックで設定できるブラウザーベースの Visual Studio Code 環境に学生がアクセスできるようにできます。 詳細については、「GitHub Codespaces を GitHub Classroom で使う」を参照してください。

課題の IDE を選択するには、[エディターの追加] ドロップダウン メニューを選択し、学生に使用させる IDE をクリックします。

Using the 'Select an online IDE' drop-down menu to click an online IDE for the assignment

完了したら、 [続行] をクリックして、プロジェクトの自動採点とフィードバックを構成します。

'Continue' button

フィードバックの提供

必要に応じて、課題を自動的に採点し、各提出物をTeamで議論するための場を作成できます。

課題を自動的にテストする

GitHub Classroom上で課題に対する学生の作業を自動的にチェックするために、自動評価を利用できます。 課題にテストを構成すると、学生が GitHub.com 上の課題リポジトリにプッシュするたびに、テストがすぐに実行されます。 学生は、テストの結果を見て、変更を行い、新しい結果を見るためにプッシュできます。詳しい情報については、「自動採点」を参照してください。

[自動採点テストの追加] で [テストの追加] ドロップダウン メニューを選択し、使用する採点方法をクリックします。詳しい情報については、「採点方法」を参照してください。

Using the 'Add test' drop-down menu to click a grading method

名前、コマンド、入力、出力、タイムアウト、ポイントなど、テストケースのパラメータを定義してください。 完了したら、 [テスト ケースを保存する] をクリックします。

'Save test case' button for an autograding test

[テストの追加] ドロップダウン メニューを使用すると、テストをさらに追加できます。 あるいは を使うと、既存のテストを編集または削除できます。

Pencil and trash icons to edit or delete an autograding test

フィードバックのためにプルリクエストを作成する

自動的にPull Requestを作成して、フィードバックを提供したり、課題に関する学生の質問に答えたりすることができます。 pull request での変更のレビューについて詳しくは、「pull request での変更をレビューする」を参照してください。

フィードバックのディスカッション用に pull request を作成するには、 [Enable feedback pull requests](フィードバック pull request を有効にする) を選びます。

Checkbox for 'Enable feedback pull requests'

割り当てを作成するには、 [割り当ての作成] をクリックします。

'Create assignment' button

学生を課題に招待する

デフォルトでは、GitHub Classroomは作成されたそれぞれの課題に対して招待URLを有効化します。 学生は、招待URLが有効になっている間に課題を受け付けて提出できます。 このURLはLMS、コースのホームページ、あるいはあなたが課題をポストできるところならどこででも、学生と共有できます。 学生は、クラスルームの課題をすでに受け付けているなら、GitHub Classroom上でその課題にアクセスすることもできます。

警告: 招待 URL を共有する場所には注意してください。 課題の招待 URL があれば、誰でも招待を受け入れて GitHub 上の個人アカウントを名簿の識別子に関連づけることができます。

課題の [チーム] タブで、課題を作業している、または提出済みのチームを確認できます。 学生による課題の承諾または提出を防ぐために、[課題の編集] ビューで [課題の状態] を変更できます。 課題がアクティブな場合、学生は招待リンクを使用して受け入れることができます。 非アクティブの場合、このリンクは無効になります。

Group assignment

学生の進捗状況を監視する

課題の概要ページには、課題の受け入れとチームの進捗状況に関する情報が表示されます。 課題の構成に基づいて、表示される概要情報が異なる場合があります。

  • [チームの合計数] : 作成されたチームの数。
  • [名簿に登録された学生] : Classroom の名簿に登録されている学生の数。
  • [チームに参加していない学生] : Classroom の名簿でチームにまだ参加していない学生の数。
  • [承認済みチーム] : この課題を受け入れたチームの数。
  • [課題の提出] : 課題を提出したチームの数。 提出は、課題の期限にトリガーされます。
  • [合格したチーム] : 現在、この課題の自動採点テストに合格しているチームの数。

次の手順

  • 課題を作成し、学生がTeamを編成した後、TeamメンバーはGitとGitHubの機能を使用して課題を開始できます。 学生はリポジトリのクローン、コミットのプッシュ、ブランチの管理、プルリクエストの作成およびレビュー、マージコンフリクトへの対処、およびIssueの変更に関するディスカッションが可能です。 あなたもTeamも、リポジトリのコミット履歴をレビューできます。 詳細については、「GitHub の概要」、「リポジトリ」、「Git を使用する」、「issue と pull request を使用したコラボレーション」、および GitHub Skills のマージの競合の解決に関する無料コースを参照してください。

  • 課題を完了したチームがある場合は、そのリポジトリにあるファイルをレビューできます。また、チームがどのように協力したかをより深く理解するため、リポジトリの履歴や視覚化されたデータを確認できます。 詳細については、グラフを使用したリポジトリ データの視覚化に関する記事を参照してください。

  • プルリクエストの内の個々のコミットや行にコメントすることで、課題にフィードバックを行うことができます。 詳細については、「pull request へコメントする」およびコードから issue を開く方法に関する記事を参照してください。 返信テンプレートを作成して一般的なエラーに関するフィードバックを提供する方法の詳細については、「返信テンプレートについて」を参照してください。

参考資料