Twitterで見かけて良さそうだったので、はじめて出会うコンピュータ科学、という本を買った。
プログラミング必修化も始まるし、きっと基礎的なところは陳腐化しないはずだろうし、子供はまだ小さいけど将来役に立つでしょうということで買った。というのは建前で、自分が一番内容に興味があったのであった。子供のためを装って親が楽しむ構図はたまによく発生する…。絵本カテゴリに属していて、どうやって絵本として表現するのかと楽しみにしていたが、絵の割合は少なく、児童書だねと思った。これを絵本というと、絵本を卒業したばかりの小学生に怒られそう。
全8巻構成で、各巻のタイトルが面白い。
- 1と0の世界
- あいまいな文
- こわれている電卓
- カッコのない国
- どんどん出てくる絵
- 山の背くらべ
- 終わりのない仕事
- 人気のあるレストラン
タイトルから内容を推測できるのがいい。1巻は、2進法、2巻は自然言語、3はわからん、4は構文?、5巻はフラクタル、6巻は間違いなくソート、7巻には怯え、8巻はリソースの配分的な?みたいな想像ができる。
正解は以下のような構成になっている。
- ハードウェア編
- 自然言語編
- 情報構造編
- コンパイラ編
- 図形処理編
- アルゴリズム編
- ネットワーク編
- オペレーティング・システム編
当たらずといえども遠からずという感じだった。
内容はなかなかハードだった。1巻では論理回路をしっかり屋(AND)、うっかり屋(OR)、へそ曲がり屋(NOT)に置き換えて、1桁の足し算の機械を作ってみせる。そして、その1桁の足し算の回路を利用して最終的には4桁の足し算機械に到達する。読んでいてよほどAND,OR,NOTで書いてくれたほうがわかりやすいよ!と思ったけどこれは大人の視点なんだろうかね。
自分にとって一番ウケが良かったのは、「終わりのない仕事 ネットワーク編」で、ネットワークでの遅延やデータの終了判定に関する章で、素直にこんなとこまで盛り込むんだ、と思った。前者は、夢の中で音がゆっくり伝わる世界で、電車に座った7人の子供が、連絡を取ろうとしたときに発生する問題の話として書かれていて、後者は、1人が本を読み上げもう1人がそれを書き写す作業をしているペアが、どのようにして本の終わりを伝えるかという話(「はい、これでおしまいです」と言っても、書き写す側が「はい、これでおしまいです。」と書いてしまい、いつまでたっても終われない問題)になっている。身近だし、面白く読めるし、なんだか結構頭をつかうのもいい。
はじめてのコンピュータ科学7 終わりのない仕事 P.40
しかし、インターネットの会社で働いているということで、子供に詳しく聞かれたら厳しいなあとも思った。ネットワーク上での遅延やデータのロスト、それに対応するためにどのようなことをしているか、例えば終わりを伝える情報がロストした場合どうなるの、どうするのと聞かれたら困りそう。TPCとか3WAYハンドシェイクとか関係ありそうな用語は知ってるけど、理解はしてないので、本当にそういう話なのかわからないし、きっと複雑なことをしているんだろうなとしか言えないだろうな…。技術者ではないので…。
不思議と、児童書を読んで自分が預かり知らないインターネットの裏側で動いているであろう技術に思いを馳せることになったので、いい体験ができた。
余談
Amazonではアホみたいな値段*1で売っているが、古書店で送料込5000円くらいで購入できた。当時の帯までついていて、どうやってこんなに丁寧に読めるのか不思議なほど状態が良いものだった。
*1:現時点で84000円くらい