全2646文字
PR

 私がコンピューターサイエンスの基礎を学んだのは「計算機プログラムの構造と解釈 第2版」(翔泳社、通称SICP)という書籍だ。米マサチューセッツ工科大学(MIT)のコンピューターサイエンス入門の授業で使われていた有名な教科書である。

 もっとも今ではMITはSICPを教科書として使っていない。代わりに使われているのが「世界標準MIT教科書 Python言語によるプログラミングイントロダクション」(近代科学社)だ。第1版では古い「Python 2」が使われていたため、第2版は現行の「Python 3」を使うよう書き直されている。

関連記事: 寿命は年内限り、もはや「Python 2」は使ってはならない

 この教科書を息子と一緒に読み始めた。自身のコンピューターサイエンスの知識をPythonで復習するとともに、息子にもプログラミングの基礎となるコンピューターサイエンスの知識を持ってほしいと思ったからだ。

 読み進めていくと、はじめのほうに「アルゴリズムは料理本のレシピに似ている」という記述が出てきた。例として挙げられていたのが、カスタードのレシピだ。

 カスタードの材料を火にかけ、かき混ぜ、スプーンをカスタードに浸す。そしてスプーンの裏側を指でなぞり、くっきりした跡がスプーンに残るなら火から下ろして冷やす。そうでなければ、かき混ぜるところから繰り返す。この一連の手順の中に、命令を実行する順序、手順を終了する条件、条件が成り立たない場合に繰り返す手順が記されているのがわかる。

 プログラミングを始めた初心者がまず学ぶ制御構文が、繰り返しと条件分岐だ。このレシピには、まさにその2つが記されている。また、繰り返しや条件分岐を除いて上から順に実行していくのも、プログラムとレシピとで共通している。

 教科書のこの説明を見て、同じことを言っていた人がいたことを思い出した。80歳代のアプリ開発者である若宮正子さんだ。80歳を過ぎてから「hinadan」や「nanakusa」といったスマートフォン向けゲームを開発し、現在は87歳である。

関連記事: 「小学生でもわかる本」がシニアには無理、82歳アプリ開発者が語る現実