アルゴリズム入門以前

朝から雨で娘の機嫌が悪い。昨日病院ではずっとおとなしかったのだが、その反動だろうか?

先週末にエアコンの調子が悪かったのは無事修理できたのだが、また寒い日に戻ったようで(梅雨入りしたらしい)、エアコンフリーの生活。これくらいの気温が続いてくれればいいんだけどな〜

松本研の年報の巻頭言が更新されたようである。松本研が博士前期課程の学生を受け入れ始めてから去年で20年(残り7年)ということで、自分も今年に初めて博士前期課程の学生の入学・進学があり、残り29年。松本研はスタッフも含めた OB/OG が200人以上いるそうだが、自分が博士後期課程に進学してからは毎年10人以上博士前期課程の学生が入学してくるので、定年までに300人に到達しそうである。うちは毎年4〜8人くらい(平均的には6人くらい?)だと思うので、定年までいても200人にはならないだろうな〜。

そういえば、先日「世界でもっとも強力な9のアルゴリズム」を読んだ。

世界でもっとも強力な9のアルゴリズム

世界でもっとも強力な9のアルゴリズム

内容紹介がまさしくこの本の中身を表しているので引用する:

コンピュータを使い物にするアルゴリズムにはどういうものがあるか、今日的な視点から選んだ実際に役立っている9のアルゴリズムのアイデアを、章ごとに掲げてわかりやすく説明した読み物です。図を多用し、その仕組みをたとえを使いながら見せることに重点を置いています。著者が選んだ基準は、(1)インターネットでメールやブラウザを利用する一般ユーザーの日常のコンピュータで使われていること、(2)特定の状況や高度のソフトウェアだけに使えるものは除くこと、(3)基本的にコンピュータ・サイエンスの理論に基づくこと、です。扱っている9のアルゴリズムのテーマは、検索エンジンのインデクシング、ページランク公開鍵暗号、誤り訂正符号、パターン認識、データ圧縮、データベース、デジタル署名、計算不能性。

図が多用されているかというと、あまり図が多かった印象はないが、とても分かりやすい(専門用語を使わずに明快に説明している)ので、こういうアルゴリズムに興味がある人に広くお勧めする。自分などは学生に情報処理で用いられるアルゴリズムを説明する機会が多いのだが(たとえば受験生向けのオープンキャンパスとか、突然取材に来る人文系の記者さんとか)、そういうときの説明にも非常に参考になる。アルゴリズムというと、ソートとか探索とかを説明しがちだが、たぶんそういうアルゴリズムを知っても一般の人は「それで?」と思ってしまうだろうし、情報科学を志す学生ですらどこで具体的に用いられているのかイメージするのは困難であろう。本書は日常的にコンピュータを使っていて知らず知らずのうちにお世話になっている(それがないと今日のような使い方ができない)アルゴリズムで、「なるほど、そうか!」と思うようなアルゴリズムを取り上げているので、動機付けにとてもよいと思う。この本で深く知りたいという人向けではないし、そういう人向けの本でもないが、知っている人が読んでも勉強になるのではなかろうか?

京大の「データ構造とアルゴリズム」の授業は1年生(1回生?)の後期(東大と東工大は2年生後期)で SICP の第1章と第2章をやっているようで、うちも今年度は3年生の後期の授業でこれをやろうと思っているのだが、本当は2年生後期くらいでやりたいよな〜……。(ちなみに東工大でこの授業をしてらっしゃるの、徳永先生みたい)