2014/05/31に金沢工業大学でCoderetreatを開催しました。


![みんなで](https://lh6.googleusercontent.com/-4BBVI-SiQDU/U43-DTZDXwI/AAAAAAAABng/08qdNo3GEpg/w723-h540-no/2014-05-31+17.24.17-1.jpg)

今回は大学ということもあり、学生さんが多いと見込み、いつものCoderetreatとは異なる形で開催しました。
テーマは「楽しくプログラミング！」

想定していた以上に1,2年生の学生さんが多く、大丈夫か？？と思ってたんですが、みなさん優秀でした。プログラミングの本を持ち込んでる子も多く、言語を学び、学んだことを生かしつつ次に行けたんじゃないでしょうか。学生さん、社会人の別け隔てなくプログラミング。みなさんほんとうに楽しそうに過ごせてよかったです。

### 当日の導入資料

<iframe src="http://www.slideshare.net/slideshow/embed_code/35441402" width="476" height="400" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

## 工夫したこと

### ライフゲーム以外の課題を用意した

ライフゲームって相当奥深い課題なので、あれはとてもいい課題なのだけど、取っ掛かりが相当大変で、プログラミングと言うのは難しいものだ、と思われてしまうと悲しい。ということで、初心者でも45分で解ける課題としてうるう年の判定を準備しました。また、ライフゲームだと、ルール自体は単純ですが、UIを作る部分が大変に思われがちです。ということで、実際はライフゲームよりも難しいボーリングスコア計算をチャレンジ課題として用意しました。

1年生同士がペアを組んだ時、どうにも解けなさそうであれば、自分が後ろに入り、デモをしてみたりアドバイスをしてみたりしていました。

### ペアプログラミングのやり方を軽く解説

プログラミングに不慣れなペアで課題に取り組めばなんとかなるもの、という感じてほしい。ということで、いつもであれば「良いコードとはどんなコードか？」に重点を置いて始めるところを、「ペアプログラミングとはどんな感じでやるものか？」を簡単に紹介し、最初のセッションはペアプロになれるために「うるう年判定」をすべてのペアにやってもらいました。

ペアプロは3人でもできますよ、と言ったところ、3人で2ペア作り、将棋の二人指しみたいな強者もいましたが、最初のセッションがあったお陰でスムーズにプログラミングをやり始められたように思えました。

### 6セッションのところを5セッションにし、クロージングを最後に書いたコードをふりかえるセッションに。

一日中ペアプログラミングでコードを書き続けるのはなかなかハード。と言うことで、4セッション目以降、だらだらし始めたので、休憩を長めにとったり、6セッション目を諦めて、5セッション目を60分にして、クロージングにみんなにどういうコードを書いたのか、共有する時間にしてみました。

たぶん大学1年生の方たちは、人前で発表する経験はそんなになかったんじゃないかな。そういうことも含め、いい経験になったのではないでしょうか。

#### 発表の様子

![クロージングセッションの発表](https://lh6.googleusercontent.com/-bFiSKC1n4zg/U4395ZMFItI/AAAAAAAABkk/v9bSLHff-28/w723-h540-no/2014-05-31+16.12.01.jpg)

#### セッションごとに書いてもらった付箋もこんなに

![セッション毎に書いてもらった付箋](https://lh4.googleusercontent.com/-YTkIjLROKqw/U43-CVHhsAI/AAAAAAAABnI/4bqxOmGBbzs/w723-h540-no/2014-05-31+17.15.37.jpg)

## 開催してみて感じたことをKPT

### Keep

- 大学でのCoderetreat
- あまり捗っていないペアの間に入り、ファシリテーション。
- 軽く「オブジェクト指向とは、コードを分かりやすくするため、仕事を役割ごとに分離したり、概念を表現できるようにしたもの」と説明してみる。
- 「犬」や「猫」に「鳴く()」なんてメソッドを定義したり、共通の親に「動物」って定義したりするなんていうオブジェクト指向をいずれ訳の分からない役立たずにしてしまう考え方は一切説明しない。
- TDDやユニットテストを知らないペアのところでおもむろにやり始める。(ドヤァ)
- ただドヤァはしたくてしてるわけではない。なんかわけのわからんことをデモされてるぞ？と、若人の好奇心をくすぐることが目的。目を輝かせていた方もいたようで、これはうまく行ったと思う。
- ただし、「TDD」や「ユニットテスト」という単語は使わずに。昼食や終了後、参加者間での情報交換で話に出てきてくれるといいな。
- 先生方を巻き込んだこと。講義(今は授業としか言わんのかな…。)にくる学生に声をかけてもらうことで、通常時にはなかなか足を運んでくれなさそうな、プログラミングには興味はあるけど次の一歩を踏み出せない方の背中を押せたと思います。
- 最後に「俺とCoderetreat in KIT」というタイトルでLTをしてくださった加藤さん。加藤さん、マジ「俺と○○」というタイトルが似合いますね。
- 大学の先生には面白い方が多いようで。私は大学には行っていないのでわかりませんでしたが、多種多様な経歴の方が集まるのが大学。今回も面白い先生が集まりました。
 - 1人でライフゲームを組みきって「ドヤァ」してくださった、中野先生ありがとうございました。
 - うるう年の判定なんて、「100で割り切れたらうるう年じゃない」とか「400で割り切れたらうるう年」とかは、そういうの組み込み機器に組み込んでも、組み込み機器の製品寿命はせいぜい10数年なので、バグになる可能性があるからいれない、と言い切ってくださった、西川先生ありがとうございました。
- 河並先生のご尽力があってこそのCoderetreat in K.I.T. でした。本当にありがとうございました。

### Problem

- 申し込みの波が読めない。社会人を主なターゲットにしたCoderetreatを福井で開催した時は、2ヶ月前に募集を始めてやっと集まったくらいだった。今回もGWが明けた段階で12,3人の申し込みだったため、追い込みの意味で学内での募集を強化していただいたところ、それだけで20人集まってしまって、急遽増員することに。
- 会場ではお菓子が食べられず、少し移動したところなら飲食OKという会場だったため、お菓子があまり気味に。おみやげができたのはいいけれど、この辺りの調整はほんとうに難しい。
- 昼食中、スポンサーのスライドを連結して流していたけど、繰り返し流す方法がわからず手動で巻き戻す事に。こういう準備はほんと大事。
- ホワイトボードに書いたハッシュタグがバグってた模様。
- タスクの分担をうまくできてなかった。というか、タスクを見えるようにしてなかったので、周りに迷惑をかけてしまった。
- 8:00受付8:30開始は参加者にもスタッフにも負担をかけてしまった模様。でもこればっかりは会場の都合もあるのでしょうがない。

### Try

- 社会人と学生と別々に申し込みを受け付けるようにする。
- 会場の制約を考え、昼食とお菓子の量を考える。
- スライドの流し方は前もって準備する
- Trelloなどでタスク管理

## ブログやスライドを書いてくださった方

- [ふぁらお加藤さんのスライド](http://www.slideshare.net/pharaohkj/codereatreat-in-kit)
- [tknhsさん](http://tknhs.github.io/blog/2014/06/coderetreat-in-kit/)
- [りりぃさん](http://loli-pro.sblo.jp/article/98817016.html)

## Coderetreatの開催に興味がある方は、Qiitaにまとめてますので、参照してみてください。

http://qiita.com/search?utf8=%E2%9C%93&sort=&q=coderetreat

## 今回のスポンサー

スポンサーの皆様にはこんな感じでランチタイム終了後に会社説明をしていただきました。

![永和システムマネジメント様発表](https://lh4.googleusercontent.com/-8JgI1VPgetA/U4390z63HaI/AAAAAAAABjQ/pZTba1YKKf8/w723-h540-no/2014-05-31+12.55.18.jpg)

![株式会社KCC様発表](https://lh3.googleusercontent.com/-sUzJOhmhF6c/U439zo1TFPI/AAAAAAAABjA/KBv1JXGwjlQ/w723-h540-no/2014-05-31+12.43.10.jpg)

痛恨のミスなのですが、金沢総合研究所の荒田様が発表されている様子を撮り忘れてしまいました。

#### スポンサー資料

<iframe src="http://www.slideshare.net/slideshow/embed_code/35441229" width="476" height="400" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

### 株式会社永和システムマネジメント

![永和システムマネジメント](http://www.esm.co.jp/assets/images/logo.jpg)

### 株式会社金沢総合研究所

![金沢総合研究所](http://www.kri.co.jp/wordpress/wp-content/themes/KRI/images/sitetitle.png)

### 株式会社KCC

![永和システムマネジメント](http://www.kcc-net.co.jp/img/common/logo.gif)

### 金沢工業大学

![金沢工業大学](http://www.kanazawa-it.ac.jp/h1s/images/common/header/site_id.gif)

### 株式会社チェンジビジョン

![株式会社チェンジビジョン](http://www.change-vision.com/img/logo.gif)