説明
生徒の名前とその学年をもとに、学校の名簿を作成します。
最終的には、次のことができるようになります。
- ある学年の名簿に生徒の名前を追加する
- 「Jimを2年生に追加してください。」
- 「OK。」
- ある学年に在籍するすべての生徒の配列を取得する
- 「2年生にはどんな生徒がいますか?」
- 「今のところ、Jimだけです。」
- すべての学年のすべての生徒を並べ替えた配列を取得する。学年は1、2、3…の順に並べ替え、同じ学年の生徒は名前のアルファベット順に並べ替えます。
- 「今、学校に在籍しているのは誰ですか?」
- 「そうですね。1年生にAnna、Barb、Charlie、2年生にAlex、Peter、Zoe、5年生にJimがいます。つまり、答えはAnna、Barb、Charlie、Alex、Peter、Zoe、Jimです。」
なお、生徒の名前はみんな1つだけです。(小さな町ですから、仕方ないですよね?)
さらに挑戦したい人へ
テストが通って、コードもきれいになりましたか? よければ、次のようなことにも挑戦してみてください。
- 可変のデータ構造を持つ言語で取り組んでいて、書いた実装が外部のコードから学校の内部データベースを直接書き換えられるようになっているなら、それを防ぐ方法を考えてみてください。追加のテストを自由に書いてもかまいません。
その後、提出した解答へのコメントで感想を共有してください。この実験でコードは良くなりましたか? 悪くなりましたか? 何か学べたことはありましたか?
出典
gSchoolでのPhil Battosとのペアプログラミングセッション