the fizzbuzz programing contest
DESCRIPTION
http://d.hatena.ne.jp/JunichiIto/20111007/1317976730TRANSCRIPT
![Page 1: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/1.jpg)
2011/10/6 Group Meeting
![Page 2: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/2.jpg)
今日やること
![Page 3: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/3.jpg)
第1回プログラミングコンテスト
![Page 4: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/4.jpg)
ええっっっ!?w(゚ロ゚)w
![Page 5: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/5.jpg)
社内最強のプログラマを決定します!
![Page 6: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/6.jpg)
形式:提示された仕様を充たすプログラムを
書いてください。
![Page 7: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/7.jpg)
問題は1問。制限時間は30分。
![Page 8: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/8.jpg)
たとえばこんな感じ。
![Page 9: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/9.jpg)
Hello World問題(制限時間30分)
• 仕様– 引数で与えられた人名に対してあいさつをする
– 引数がなければ、”Hello, World!”とあいさつする
• 引数– [0]=人名(省略可)
• 実行例– [0]=John
→Hello, John!
– [0]=(省略)→Hello, World!
![Page 10: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/10.jpg)
実行例とサンプルコード(C#)
![Page 11: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/11.jpg)
言語はC#またはPerl。どちらも苦手という人は挙手!
![Page 12: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/12.jpg)
回答が終わったら手を挙げる。それ以降、コードの変更はできない。
![Page 13: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/13.jpg)
ググって良し。ただし、メインロジックは自分で考える。
![Page 14: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/14.jpg)
評価方法
![Page 15: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/15.jpg)
みんなの前で動作確認&ロジックの解説をする。制限時間は5分。
![Page 16: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/16.jpg)
各自で自分が良いと思ったプログラマ3人を選ぶ。理由付きで。
![Page 17: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/17.jpg)
自分で自分に投票してもいいよ!
![Page 18: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/18.jpg)
1位:3点、2位:2点、3位:1点。合計得点が多い人が優勝!
![Page 19: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/19.jpg)
ちなみにマネージャーも投票します!!
![Page 20: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/20.jpg)
私は出題者なので評価対象外。でもプログラミング&投票はします♪
![Page 21: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/21.jpg)
なお、速く回答できた上位3名にはボーナスとして3点をプレゼント!
![Page 22: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/22.jpg)
ところで優勝すると何かくれるんですか、マネージャー?
![Page 23: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/23.jpg)
ちょっと遅くなりましたが、このコンテストの目的を説明します。
![Page 24: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/24.jpg)
プログラミングコンテストの目的
• 自分のスキルを相対的に評価する。– 課題が同じなので相対的な評価が可能。– 実務では同じ課題に同時に取り組むことはない。
• 他人のロジックから新しい発見を得る。– 良いコード、悪いコード(?)に関する知識を深める。
• 良い意味でメンバー内の競争心をあおる。– チームワークがいい = みんな同じスキル、ではない。– 負けたくない、一番になりたいという気持ちも大事!
![Page 25: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/25.jpg)
ここまで何か質問ある?
![Page 26: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/26.jpg)
では全員戦闘態勢に付けっ!
![Page 27: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/27.jpg)
よういドン!でコードが書ける状態にせよ
![Page 28: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/28.jpg)
では始めますよ。
![Page 29: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/29.jpg)
よおおおおお~~~~~い・・・
![Page 30: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/30.jpg)
ドン!
![Page 31: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/31.jpg)
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
– 実際にはスペースではなく、改行して区切る
![Page 32: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/32.jpg)
はい、それまで!!
![Page 33: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/33.jpg)
動作確認&説明タイム
![Page 34: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/34.jpg)
説明する人
• 動作確認– こちらが提示する引数を与えて実行してください。
• プログラムの説明– どんなロジックで書いたのか説明してください。
– 何かアピールポイントがあればそれも説明してください。
• 制限時間は5分です。– オーバーしたら打ち切ります。
• 私は最後に説明します。
![Page 35: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/35.jpg)
評価する人
• 良いと思ったプログラマ3人を選んでください。
–投票用紙を配ります。
• 3人に順位を付けてください。
• どういう点が良いと思ったのか理由を付けてください。
• 自分=最強、それもアリです。
• 時間があまりないので質問は原則無しとします。
• 私は評価対象外です。
![Page 36: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/36.jpg)
評価ポイント
• バグが無いか?• 読みやすいか?
– インデント、変数名、関数名、コメント、etc
• 保守しやすいか?– コードの重複が無い、変更に強い、etc
• 実行効率が良いか?– 実行速度が速い、メモリの使用量が少ない、etc
• 異常系入力を考慮しているか?– 変な落ち方をしないか?
• その他、あなたの感性で。
![Page 37: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/37.jpg)
あ、解説中に自分のコード書きなおしちゃダメですよ!
![Page 38: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/38.jpg)
では最初の方、どうぞ~~。
![Page 39: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/39.jpg)
テストパターン
• 正常系– 1, 3, 5, 15, 100
• 異常系–引数の数なし、引数2個
– 0, -1 (ゼロまたはマイナス)
– フォーマット異常• 10.5, 0x12 (実数、16進数)
• 全角の10
• abc, #%$
![Page 40: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/40.jpg)
投票タイム
![Page 41: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/41.jpg)
評価する人(再)
• 良いと思ったプログラマ3人を選んでください。
–投票用紙を配ります。
• 3人に順位を付けてください。
• どういう点が良いと思ったのか理由を付けてください。
• 自分=最強、それもアリです。
• 時間があまりないので質問は原則無しとします。
• 私は評価対象外です。
![Page 42: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/42.jpg)
では開票しましょう。
![Page 43: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/43.jpg)
優勝したxxxさん、おめでとう~!!\(^O^)/
![Page 44: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/44.jpg)
お楽しみいただけましたか?
![Page 45: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/45.jpg)
それでは第2回プログラミングコンテストでお会いしましょう~!
![Page 46: The FizzBuzz Programing Contest](https://reader033.vdocuments.pub/reader033/viewer/2022052909/55975af41a28ab480e8b4570/html5/thumbnails/46.jpg)
完