Skip to main content

個人課題の作成

コースにおいて、個人で修了するための課題を学生のために作成できます。

この機能を使用できるユーザーについて

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

注: 2024 年 1 月、GitHub Classroom は、スターター コード リポジトリから学生リポジトリを作成する方法を変更します。 現在、このプロセスではスターター コード リポジトリをテンプレートにする必要があり、GitHub Classroom はそのテンプレートに基づいて学生ごとに新しいリポジトリを作成します。 今後の変更により、スターター コード リポジトリをフォークすることで学生リポジトリを作成します。

この変更は、教師から頻繁に要求される機能 (学生が課題を受け入れた後にスターター コードを変更する機能) に対処しています。

この変更についての詳細は、GitHub ブログを参照してください。

この機能は公開用ベータ版であり、変更される可能性があります。

個人課題について

個々の課題は、GitHub Classroomのコースに参加しているそれぞれの学生のためのコースワークです。 学生には、他の学生からの援助を受けずに個々の課題を完了することが求められます。

学生が課題を受け付けると、GitHub Classroomは自動的にその学生のために新しいリポジトリを作成します。 このリポジトリは空にすることも、スターターコード、ドキュメンテーション、テスト、その他のリソースを持つテンプレートリポジトリから作成することもできます。 それぞれの課題のリポジトリは、GitHub上のあなたのOrganizationアカウントに属します。

それぞれの課題にはタイトルとオプションの期限があります。 GitHub Classroomが作成するリポジトリの可視性を選択し、アクセス権限を選択できます。 自動的に課題を評価し、課題について学生と議論するための専用のスペースを作成することもできます。

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

前提条件

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

課題を作成する

  1. GitHub Classroomにサインインしてください。
  2. クラスルームにアクセスしてください。
  3. [課題] タブで、割り当てを作成します。
    • これが初めての課題の場合は、 Create an assignment をクリックします。
    • それ以外の場合は、右側にある [新しい課題] をクリックします。

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

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

課題に名前を付ける

個人課題では、GitHub Classroomはリポジトリのプレフィックスと学生のGitHubユーザ名から、リポジトリに名前を付けます。 デフォルトでは、リポジトリのプレフィックスが課題のタイトルとなります。 たとえば、課題に "assignment-1" という名前を付け、GitHub での学生のユーザー名が @octocat である場合、@octocat の課題リポジトリの名前は assignment-1-octocat になります。

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

課題に期限を設定する

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

必要に応じて、期限を締切日にするには、 [これは締切日です] を選びます。 締切日を使う場合、締切日を過ぎると、締切の延期を受けていない限り、受講生は自分の課題リポジトリへの書き込みアクセス権を失います。 課題の期限の延期について詳しくは、「個人またはグループの割り当ての期限の延長」をご覧ください。

課題のタイプを選択する

Individual or group assignment の下のドロップダウン メニューを選んで、 Individual assignment をクリックします。 課題の作成後は、課題タイプを変更できません。 グループ課題を作成する場合は、「グループ課題の作成」をご覧ください。

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

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

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

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

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

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

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

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

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

注: テンプレート リポジトリは、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 をクリックします。

課題にフィードバックを行う

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

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

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上でその課題にアクセスすることもできます。

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

課題の [クラスルームの名簿] タブで、学生がクラスルームに参加して課題を受け取ったか、または提出したかを確認できます。 このタブでは、学生の GitHub エイリアスを関連する名簿識別子にリンクしたり、その逆にリンクしたりすることもできます。学生による課題の承諾または提出を防ぐために、[課題の編集] ビューで [課題の状態] を変更できます。 課題がアクティブな場合、学生は招待リンクを使用して受け入れることができます。 非アクティブの場合、このリンクは無効になります。

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

課題の概要ページには、課題の受け入れと学生の進捗状況の概要が表示されます。 割り当ての概要ページの表示と使用の詳細については、「課題の概要ページで学生の進捗状況を監視する」を参照してください。

次の手順

  • 課題を作成した後、学生はGitおよびGitHubの機能を使用して課題を開始できます。 学生はリポジトリのクローン、コミットのプッシュ、ブランチの管理、プルリクエストの作成およびレビュー、マージコンフリクトへの対処、およびIssueの変更に関するディスカッションが可能です。 あなたも学生も、リポジトリのコミット履歴をレビューできます。 詳しくは、「GitHub の概要に関するドキュメント」、「リポジトリに関するドキュメント」、「pull request を使った共同作業」をご覧ください。

  • 課題を完了した学生がいる場合には、その学生のリポジトリにあるファイルをレビューできます。また、学生の作業についてをより深く理解するため、リポジトリの履歴や視覚化されたデータを確認できます。 詳しくは、「リポジトリのアクティビティとデータを表示する」を参照してください。

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

参考資料