授業や卒業研究や研究室のプロジェクトで, GitHub などの collaboration platform を使うというのは自然なアイデア.
- 授業で, 教員が Git repository としてサンプルプログラムなどの資料を用意し, 学生が clone する
- 授業で, 学生が GitHub の repository を公開することで課題提出する
- 卒業研究が共同研究である場合, もちろん github のようなところで social coding しうるわけだけど, 学生に公開レポジトリを持ってもらえば, 次のような利点が
- 参加する学生に DVCS を学んでもらえる
- 参加する学生にバージョン管理とバックアップを強制できる
- 教員や他の共同研究者が任意の時点で参加する学生の成果物を code review できる
- 参加者が開発した code を卒業後も研究室で継承できる
- 参加者が開発した code を卒業後も参加者が移行コストなしに保持できる
ここでお金の問題. すべて public repository でよければ, GitHub の free plan でいいわけだけど, 学生さんの開発途上の code を公開したくない, 学生さんに他人の目を気にしない大胆な実験や練習の場をあげたい場合, 月700円くらいの micro plan にしなければいけない. そのくらい, 実験実習費で大学が出してあげろって?
ここでいいニュース. GitHub が学生/教員が個人で申請することにより micro plan を無料にしてくれるようになった.
以前から, `学校で使う場合には安くするのでご相談ください' みたいなことが片隅に書いてあったのだが, メールで申請する心理的障壁を越えられなくて試していなかった. 今回は, サービス内容が公に宣言されてるし, 応募のためのフォームもあるので申請した. 学校のメールアドレスを使えば学校関係だとわかってもらえるらしい. 1週間くらいかかると書いてあったけど, 数分でやってくれた. まあ1クラスの学生が一斉に申請したらそうはいかないでしょう.
しかし, 卒業後には困るな~5個以内の private repository はぜんぶpublicにするか削除するかしなきゃいけない(または卒業生が月700円払わなきゃいけない).
この点, bitbucket はfreeで何個でも private repository を持てる(共有人数には上限があるけど)ので, 上の授業使用の目的にはあっている. まあ, いちばん major な GitHub を使わせてあげたいという気持ちはあるけど.
自分で GitLab を運用する気力のあるひとは, もちろんぜんぶ好きなようにコントロールできる.
追記: Organization account について
上で書いたことは間違いじゃないけど, education 目的の free な organization account のことを考慮してなかった.
github の organization account は, https://github.com/organization_name というURLを持ち, organizationに属するユーザのaccountをteamという小単位に分け, repository に適切な権限を設定できる. 会社だったら, 会社全体に対応する organization account を作り, private repository は organization に持たせて支払いは一括で行い, 社員を assign するような形になるのだろう.
今回の github の offer は, 学校のクラスやコースに対応して, 無料でいくつでも organization account を, (授業計画で合理的に説明できるならどのプランでも?)作ってくれる, という太っ腹なものらしい. 個人の Micro plan 無料化よりこっちのほうがメインか?
たぶんこういう使い分け?
- 授業の organization account は, 授業の方針で学生に強制的に repository を1個(or課題の個数)ずつ持たせるような使い方
- 学生/教員の Micro plan は
- 学生が(githubでやれと教員に強制されたわけではない)レポート課題でプログラムを書くときとか, 授業と無関係なプログラミングをするとき
- 教員が特定の授業とは無関係なサンプルプログラムやテストの模範解答を作るとき
なお, organization の education account の申請のページでは Research group とか Student group (=学生の有志団体?)とかの分類も出てくる. Dreamspark では「これは教育用であって研究に使ってはいけない」と書いてあったりするけど, github のほうは, (教育と研究は不可分な場合もあるということの表明と言うより)条件を真剣に詰めていないのかな, と感じた.
実際, 申請すると1日で作ってくれた. また, 申請ページには授業の(シラバスなどの)ページのURLを入力する場所があるけど, 日本語のページでもわかってもらえたみたい.