アルゴリズムの可能性は無限、シンプルで高機能が理想

 下の電話連絡網の例を見てもわかるように、同じ問題に対する解答は必ずしもひとつではありません。何通りも考えられるアルゴリズムの中から、もっとも効率が良く、もっともシンプルな仕組みのアルゴリズムを見つけ出すことが、プログラマーに求められる資質のひとつ。できる限りの情報を集め、あらゆる可能性を検討して、その中から、いちばん効率の良い仕組みを見極め、プログラムを作り上げられるのが優秀なプログラマーといえるでしょう。

プログラミング的思考により、日常生活の問題を解決できることも
家から学校へ向かう最適な経路を考えるときにも、プログラミング的思考がカギになります。状況次第で適切な解答も変わります
アルゴリズムが変わると、電話連絡完了までの時間に大きな差が出る
学校で使われるクラスの電話連絡網でアルゴリズムを考えてみましょう。ポイントは全員に漏れなく伝えることと、できるだけ短時間で伝えることです。全員に順番に伝えるA案では14分もかかってしまいます。ところがB案のように生徒を2つのグループに分けると8分で済みます。さらにC案のような方法にすると6分となり、A案から8分も短縮できました

(文/海岡 史郎、後藤 宏 イラスト/朝倉千夏 編集協力/松林 弘治)