コンピュータ、とくにソフトウェアにおいては、アルゴリズムはとても重要だ。プログラミング言語を覚えて使いこなせるだけでは、所詮使い捨てプログラマにしかなれない。
そう思ったかどうかは忘れたが、ソフトの勉強を始めたころ、アルゴリズムの本をできるだけ読むようにした。しかし、それは最初だけで、次第にいろいろな研究やら開発やら雑用に巻き込まれるうちに、アルゴリズムの勉強はなおざりになってしまった。
これではいけないと思って書店に行っても、実はそれほどよいアルゴリズムの本が出ていない。それに、アルゴリズムの勉強は、他の勉強に比較してとても時間がかかる面倒な勉強で、書籍も売れないため読みたくなるような本も見当たらない。
残念ながら、日本人が書いたアルゴリズムの本でこれはというのがない。今、たぶん世界的にも非常に評価が高いのは、MITプレスから出版されている「アルゴリズム入門」ではないかと思う。
本書は1000ページあまりあるとても分厚く重い本で、到底持ち歩くことはできない。本屋で原書を見て、あまりの重さに買うのを止めた。しかし、これでもアルゴリズムの代表的な分野について書いているだけで、題名どおり入門書である。
本書は、日本語にも翻訳されているが、訳本は3分冊になっており、3冊目は旧版の訳である。つまり、なかなか売れていないのである。
…ということくらいは知っていたのだが、MITが、大学の講座を次々とインターネット上に公開していて、講座数が1900を越えている。日本の大学のみみっちい公開の仕方とはまるで違い、あらゆる講座を無料聴講可能にしている。さすがMITというところか。
Free Online Course Materials | MIT OpenCourseWare
この中に、このアルゴリズムの授業が存在するのを発見し、MITではどんな風にアルゴリズムを教えているのか覗いてみた。そうしたら、この本をテキストとしている授業があった。
Introduction to Algorithms
講師は2名で、Leiserson教授は本書の著者の1人だ。そして、チェスプログラミングでも非常に有名人だったので、これは聴講してみようと思うに至った。もう1名のDemaine教授は早口で聞き取るのが大変だったりしたが、こちらもtranscript(講義の筆記録)が用意されていたので助かった。
テキストは買わないとダメかと思いながら聴き始めたのだが、ネット上にものすごい大量のドキュメント、プレゼン資料があり、テキストを買わなくても済むことが分かった。
ソート、マージ、最短経路などが中心であった。もっと幅広く色々なことを勝手に期待したのであったが、入門コースにそれは期待し過ぎというものだろう。
久々にアルゴリズムを勉強した。たんなる思い込みだと思うが、これでまた何十年かプログラムを書きつづけられるような気になった。