アルゴリズム概論

NAIST では情報系以外から情報科学研究科に進学してきた学生のために「アルゴリズム概論」「システムプログラム概論」「計算機科学概論」といったような基礎講座を設けて、情報科学の基礎知識を短期間で学べるようなプログラムになっているのだが、この中でもっとも履修人数が多いと思われるアルゴリズム概論は授業もいろいろ大変みたい。

というのもソートやらデータ構造や文字列探索やらのアルゴリズムをレクチャーするのだが、基本的に履修している人の中には全くプログラミング言語を知らない人もいるという前提で、さらに特定のプログラミング言語の使用を強制しない、というような制約があるようで、この授業は前半8回と後半8回で先生が違うのだが、いずれも苦労されているそうだ。

ということを文字列探索の KMP アルゴリズムの実装をしてみよというオプション課題を夜3時くらいまでかかってやりながら考えたり(オプションのほうは提出3日遅れだけど)。文字列探索で TRIE、B tree、Patricia 木、Suffix Array といったアルゴリズムも授業で学ぶのだが、これもオブション課題となっている Suffix Array 検索の効率化がまだできない。提出は来週の火曜日なのだけどそれまでに考えつくかどうか微妙。