大学院での授業-アルゴリズムとデータ構造COM00141M


授業雑感

大学院での最初の授業としてアルゴリズムとデータ構造を最初に受けた。
恐らく全世界のプログラマーは必須の内容になるし、授業の後半部分は純粋に面白い内容だった。


ちなみに教科書はマサチューセッツ工科大学でも使われている有名なアルゴリズムの本
YouTubeでもこの教科書を使った授業がMITアカウントで公開されているので興味がある方はぜひ見ると良いと思う。


導入部分はJavaのプログラミング演習がメインになり、そんなに込み入った内容はなく、普通に学部レベルでも扱う感じの内容だった。
自分の場合業務ではTypeScriptをメインに扱うので、Javaは久々で自分には復習的な感じで良かった。


後半になると、数学と紐付けながらアルゴリズムや様々なデータ構造を扱う。
アルゴリズムは最初はソートアルゴリズムから始まり、ハフマン符号理論も含めて色々扱う。アルゴリズムの計算量とそれを裏付ける数学的証明の関連性が面白かった。
(大学や高校時代に数学を真面目にやっていたおかげで離散数学やら解析学が出てきてもそこまで戸惑いはなかった。まぁ数学はそれでも難しいけど。)


データ構造は二分探索木やヒープ、赤黒木やグラフ理論、そしてそれらの探索、挿入、削除アルゴリズムを理論的に勉強した。
ハッシュテーブルとハッシュキーの衝突回避問題はJavaScriptの連想配列のアルゴリズムにつながるものなのでそこら辺の背景知識を確認できたのは良かったと思う。


この授業で良かったこと

コードを書く時に微妙な書き方をしている時に、どのようにわかりやすく、シンプルに書き方を修正するか、といった観点だけで書いていた。
もちろんそれが一番重要なのだが、この授業のおかげで書き方を変えると具体的にどのぐらい計算量が異なるのか、などちゃんと計算機科学の知識に基づいた分析と説明ができるようになったのは自分にとって大きな収穫だと思う。

Back To Top