図書館情報学を学ぶ

はてなダイアリーで公開していたブログ「図書館情報学を学ぶ」のはてなブログ移行版です。

データ構造とアルゴリズム

3学期(筑波大では3学期制なので12月から新学期になります)に履修する予定の科目に「データ構造とアルゴリズム」という科目があります。効率的なプログラミングを学ぶ、情報系の基礎といえる科目です。本当は私は専攻が違うので履修する必要は無いのですが、友人に説得され履修することにしました。
アルゴリズムには非常に関心があって、いずれしっかりと学んでみたいと思っていたので、この科目には期待しているのですが、反面ちゃんと単位が取れるのか不安です。「データ構造とアルゴリズム」を担当されている森継修一先生は厳格なお方なので、生半可な気持ちで講義に臨むと単位取得は望めません。個人的には森継先生の講義はしっかりと頭に残る素晴らしい講義であると思っているので、ここは万全の体勢で講義に臨みたいところ。
ということで、シラバスに載っている参考文献『岩波講座ソフトウェア科学3 アルゴリズムとデータ構造』を入手しようと図情図書館に行って借りてきました。

アルゴリズムとデータ構造 (岩波講座 ソフトウェア科学 3)

アルゴリズムとデータ構造 (岩波講座 ソフトウェア科学 3)

まず思ったのは「分厚い!」ということ。大判で486ページ。厚さ4センチ。これ、1学期中に果たして読めるのでしょうか。。。しかも、冒頭の「学習の手引き」という章に本書は, かなり大部なものなので, これを完全に教えるには1年間の講義が必要であろう.とか書いてあるし・・・・・・。それはまあアルゴリズムをたった3ヶ月強でマスターできるとは私も思っていませんが・・・・・・。
さらに、シラバスを見ると、最後の回にはFFTというアルゴリズムを扱うそうです。少し調べてみると、フーリエ変換を高速化するアルゴリズムだそうで。微積分は大学1年のときに基礎数学で学びましたが、フーリエ変換なんてもう覚えていないです。ちょっと死線が見えてきました。
まあ、このレベルで挫折してしまっては本格的なプログラミングに一生関わることができないでしょうから、来学期は全力で頑張っていきたいと思います。
また、「データ構造とアルゴリズム」は知識情報・図書館学類にも情報メディア創成学類にも開講される予定なので、後輩たちが参考と出来るように、学習の過程はできるだけこのブログで書いていこうと思います。

関連書籍

史上最大の発明アルゴリズム―現代社会を造りあげた根本原理

史上最大の発明アルゴリズム―現代社会を造りあげた根本原理

現代のコンピュータ技術の原動力となる理論であるアルゴリズムの歴史を、アラン=チューリング、チャーチなどの科学者を中心として物語風に解説しています。専門用語などはほとんど出てこないので、アルゴリズムの素晴らしさに触れるには良い本かもしれません。
C言語入門 (ASCII SOFTWARE SCIENCE Language)

C言語入門 (ASCII SOFTWARE SCIENCE Language)

C言語を忘れかけている(かもしれない?)友人たちに。C言語を丁寧に解説している良書。個人的には、去年の「プログラミング演習」で用いられた教科書よりこちらのほうが良く理解できました。

関連WEBサイト

sumiiの日記
http://d.hatena.ne.jp/sumii/

東北大学の住井助教授のはてなダイアリー関数プログラミングをご専門とされています。

フーリエ変換基礎講座
http://www.geocities.co.jp/AnimalPark-Shiro/1620/ft_index.html

フーリエ変換について、数学初心者にも理解ができるように易しく解説されています。

数学・アルゴリズム研究室
http://www.sm.rim.or.jp/~shishido/cpro.html

まだすべては読んでいませんが、とりあえず講義の内容までは網羅しているようです。これを読んで私も頑張ります。