coderetreat in kit 導入資料
DESCRIPTION
Coderetreat in KITでの導入資料です。TRANSCRIPT
CODERETREATIN KIT
2014.05.31 08:30-17:00 金沢工業大学 扇が丘キャンパス
Coderetreatとは?
• プログラミングを学ぶ練習の場です。 • ペアプロで課題に挑戦します。 • ワイワイ相談しながら楽しく良いコードを書いていきましょう。
ペアプロとは?• ペアプログラミングの略 • 二人で一台のマシンを使ってプログラミングする
• ドライバーがキー入力を行う • ナビゲータが設計/問題がないか観察
ペアプロのやり方• 最初の目標を決める • パートナーを頼りにし、支える • 何をしようとしてるか極力しゃべる • お互い何をしているか把握する • できたら喜ぶ • 5分程度で交代する
引用元: http://t.co/rRKYdZqvZq (著:結城浩)
ペアプロを楽しくするコツ
• 経験の少ない人はドライバーを率先 • 誤りを見かけたら丁寧に指摘する • パートナーに敬意を
• ナビゲーターは口を出すだけでなく、時々手も出してドライバーになる
スケジュール08:30 - 09:00 会場、趣旨説明、準備 09:00 - 09:45 ペアプロ セッション#1 09:45 - 10:00 ふりかえり#1 休憩 10:00 - 10:45 ペアプロ セッション#2 10:45 - 11:00 ふりかえり#2 休憩 11:00 - 11:45 ペアプロ セッション#3 11:45 - 12:00 ふりかえり#3 休憩 12:00 - 13:30 昼食 13:30 - 14:15 ペアプロ セッション#4 14:15 - 14:30 ふりかえり#4 (おやつのじかん) 14:30 - 15:15 ペアプロ セッション#5 15:15 - 15:45 ふりかえり#5 休憩 15:45 - 16:30 ペアプロ セッション#6 16:30 - 17:00 全体ふりかえり
大事なこと !
大事なこと セッション毎に コードを消す
セッション中の注意
• プログラミング言語はなんでもOK
• 未経験言語はパートナーから教わろう • ただし、開発環境は皆さんが用意されたもので。(セッション中で準備は☓)
より良いコードを 実装しましょう。
課題
• 入門:うるう年の計算
• ふつう:コンウェイのライフゲーム
• チャレンジ:ボーリングスコア計算
入門:うるう年の計算• 指定した年がうるう年かどうか判定してください。
• 4で割り切れる年はうるう年
• でも100で割り切れる年はうるう年ではありません。
• でもでも400で割り切れる年はうるう年
ふつう:ライフゲーム bit.ly/YGb5SV
チャレンジ:
ボーリングスコア計算 http://bit.ly/1k1rYGr http://bit.ly/1hxqOye
チャレンジ課題• トライするかは自由 • If文禁止 • ループ禁止 • メソッド禁止 • 配列禁止 • ペア入れ替え等々
ふりかえり• ホワイトボードに書こう • 気づいたこと • うまくいったこと • うまくいかなかったこと
• ハッシュタグ #coderetreat_kit
諸注意• ゴミはゴミ袋に
• 午後の入退館について
• 飲み物はご自由に
• 食べ物はロビーで
• トイレ/喫煙場所
• 電子ホワイトボードのためペンは使えません
• 写真NGの方?
• 売店/自販機は隣の棟
• 困った事があればいつでも挙手を
設計の観点
Primitive Obsession
• どんなクラスでセル、格子を表現しましたか?
• その表現はわかりやすいですか? • 言語提供のプリミティブ型を直接使わない
メソッドを短く!• 5行?3行?1行?
!
• ちなみに APL だと
• life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}
McCabe CyclomaticComplexity
• 条件による経路の数を数える • 経路の数が増えると…。
• 小さくするにはIf文を減らそう
Try
• Ping-Pong
• テスト書く人と実装する人 • 配列いります? • TDDやってみません?
Closing Circle
• 今日学んだことは (もしあれば) なんですか?
• 今日驚いたことは(もしあれば)なんですか?
• これからやってみたい事はなんですか?
ぜひ参加レポートを 書いてください!