Assignment

了解です。では セミナー用 assignment リポジトリ を使った場合の、講師と参加者の観点での 具体的な設定・ファイル取得・提出・採点の手順 をステップごとに整理します。GitHub Classroom を想定しています。


1. 講師側の準備

1-1. リポジトリ作成

  • GitHub 上で ml-basics-assignment のようなリポジトリを作成

  • ブランチ:

    • main:課題 (exercises/)、参考資料 (references/)、データ (data/)

    • solutions:解答例(非公開ブランチ)

1-2. ディレクトリ・ファイル構成

ml-basics-assignment/
├── README.md # 課題進行手順、提出方法を記載
├── exercises/
│ ├── 01-introduction/exercise.md
│ └── 02-advanced-topic/exercise.md
├── references/
│ ├── 01-introduction.md
│ └── 02-advanced-topic.md
├── solutions/ # 講師用、非公開
├── data/ # CSV, JSON, 画像など
└── notebooks/ # 演習サンプルNotebook

1-3. GitHub Classroom 設定(任意)

  • Classroom で「assignment」を作成

  • 参加者ごとに個人リポジトリを自動生成

  • main ブランチに課題と資料を配置


2. 参加者の作業手順

2-1. リポジトリの取得

# GitHub Classroom のリンクから clone
git clone https://github.com/username/ml-basics-assignment.git
cd ml-basics-assignment

2-2. 課題確認

cd exercises/01-introduction
cat exercise.md
  • 必要に応じて references/data/ を参照

2-3. 課題の解答作成

  • Markdown, Python, Jupyter Notebook などで解答を作成

  • Notebook の場合:

jupyter notebook ../../notebooks/example.ipynb

2-4. ファイルのステージングとコミット

git add .
git commit -m "01-introduction 解答"

2-5. 提出

git push origin main
  • GitHub Classroom では自動的に提出完了扱いになる

  • 手動の場合は push で講師が確認可能


3. 講師による採点

3-1. 個人リポジトリ確認

  • GitHub Classroom の画面、または個人リポジトリの main を確認

3-2. 採点方法

  • コードや解答のレビュー

  • コメント・プルリクエストでフィードバック

  • 自動採点ツール(pytest, nbgrader など)を使う場合は exercises/ にテストを追加

3-3. 模範解答の公開

# solutions ブランチを main にマージ or Releaseとして提供
git checkout main
git merge solutions
git push origin main

4. 注意ポイント

  1. 課題と解答は別ブランチで管理 → 先に見られないようにする

  2. 番号付きディレクトリ → 演習順序を明確化

  3. README.md に手順を詳細に書く → Git 初心者でも迷わない

  4. データやNotebookは課題と対応 → 演習がスムーズ


? こうすることで、講師は課題管理・採点・解答公開がスムーズにでき、参加者も ファイル取得・解答・提出がシンプル になります。

方法2:Organization と命名規則を使う

授業用に GitHub Organization を作り、学生をメンバーとして招待します。

手順:

  1. organization-name/assignment1-template を作成

  2. 学生がそのテンプレートから organization-name/assignment1-username のように自分の repo を作成

  3. 教員は organization 内で全学生の提出を一覧可能

✅ メリット:

  • すべての提出物が 1 つの organization にまとまる

  • アクセス権限を統一的に管理できる