2011/10/6 Group Meeting
今日やること
第1回プログラミングコンテスト
ええっっっ!?w(゚ロ゚)w
社内最強のプログラマを
  決定します!
形式:
提示された仕様を充たすプログラムを
     書いてください。
問題は1問。制限時間は30分。
たとえばこんな感じ。
Hello World問題(制限時間30分)
• 仕様
 – 引数で与えられた人名に対してあいさつをする
 – 引数がなければ、”Hello, World!”とあいさつする
• 引数
 – [0]=人名(省略可)
• 実行例
 – [0]=John
   →Hello, John!
 – [0]=(省略)
   →Hello, World!
実行例とサンプルコード(C#)
言語はC#またはPerl。
どちらも苦手という人は挙手!
回答が終わったら手を挙げる。
それ以降、コードの変更はできない。
ググって良し。
ただし、メインロジックは自分で考える。
評価方法
みんなの前で動作確認&ロジックの
 解説をする。制限時間は5分。
各自で自分が良いと思ったプログラマ
   3人を選ぶ。理由付きで。
自分で自分に投票してもいいよ!
1位:3点、2位:2点、3位:1点。
合計得点が多い人が優勝!
ちなみにマネージャーも
  投票します!!
私は出題者なので評価対象外。
でもプログラミング&投票はします♪
なお、速く回答できた上位3名には
ボーナスとして3点をプレゼント!
ところで優勝すると何かくれるんですか、
      マネージャー?
ちょっと遅くなりましたが、この
コンテストの目的を説明します。
プログラミングコンテストの目的
• 自分のスキルを相対的に評価する。
 – 課題が同じなので相対的な評価が可能。
 – 実務では同じ課題に同時に取り組むことはない。

• 他人のロジックから新しい発見を得る。
 – 良いコード、悪いコード(?)に関する知識を深める。

• 良い意味でメンバー内の競争心をあおる。
 – チームワークがいい = みんな同じスキル、ではない。
 – 負けたくない、一番になりたいという気持ちも大事!
ここまで何か質問ある?
では全員戦闘態勢に付けっ!
よういドン!
でコードが書ける状態にせよ
では始めますよ。
よおおおおお~~~~~い・・・
ドン!
Fizz Buzz問題(制限時間30分)
• 仕様
 –   1から順番に数を表示する
 –   その数が3で割り切れるなら"Fizz“
 –   5で割り切れるなら"Buzz“
 –   両方で割り切れるなら"FizzBuzz"と表示する
• 引数
 – [0]=終端の値
• 実行例
 – [0]=16
   →1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16
 – 実際にはスペースではなく、改行して区切る
はい、それまで!!
動作確認&説明タイム
説明する人
• 動作確認
 – こちらが提示する引数を与えて実行してください。
• プログラムの説明
 – どんなロジックで書いたのか説明してください。
 – 何かアピールポイントがあればそれも説明してください。
• 制限時間は5分です。
 – オーバーしたら打ち切ります。

• 私は最後に説明します。
評価する人
• 良いと思ったプログラマ3人を選んでください。
   – 投票用紙を配ります。
• 3人に順位を付けてください。
• どういう点が良いと思ったのか理由を付けてください。
• 自分=最強、それもアリです。
• 時間があまりないので質問は原則無しとします。

• 私は評価対象外です。
評価ポイント
• バグが無いか?
• 読みやすいか?
 – インデント、変数名、関数名、コメント、etc
• 保守しやすいか?
 – コードの重複が無い、変更に強い、etc
• 実行効率が良いか?
 – 実行速度が速い、メモリの使用量が少ない、etc
• 異常系入力を考慮しているか?
 – 変な落ち方をしないか?
• その他、あなたの感性で。
あ、解説中に自分のコード
書きなおしちゃダメですよ!
では最初の方、どうぞ~~。
テストパターン
• 正常系
 – 1, 3, 5, 15, 100
• 異常系
 – 引数の数なし、引数2個
 – 0, -1 (ゼロまたはマイナス)
 – フォーマット異常
    • 10.5, 0x12 (実数、16進数)
    • 全角の10
    • abc, #%$
投票タイム
評価する人(再)
• 良いと思ったプログラマ3人を選んでください。
   – 投票用紙を配ります。
• 3人に順位を付けてください。
• どういう点が良いと思ったのか理由を付けてください。
• 自分=最強、それもアリです。
• 時間があまりないので質問は原則無しとします。

• 私は評価対象外です。
では開票しましょう。
優勝したxxxさん、おめでとう~!!
       \(^O^)/
お楽しみいただけましたか?
それでは第2回プログラミングコンテスト
    でお会いしましょう~!
完

The FizzBuzz Programing Contest