グローバルナビゲーション
ここから本文です
授業ルポ

処理効率のよいアルゴリズムを設計できる力を身につける授業。コンピューターのプログラミングやシステム構造を学ぶ際に必要となるグラフ理論をはじめ、アルゴリズムを基礎から総合的に学んでいく。

グラフ理論における「グラフ」とは右の写真のようなものをいう。ちなみに、このグラフ理論においては、その“つながり方”が重要で、“つながっている距離”などは、あまり問題にならないことが多いという。家系図に例えるならば、先祖と子孫、親と子といった関係性が重要なのであって、それぞれが何歳離れているかといったことは考慮の対象にはならない。そして、このグラフ一つひとつのことをグラフ理論では“木”と呼んでいる。

「自然に生えている木とはイメージが違うかもしれませんが、連結かつ閉路がないグラフを木=treeといいます」。ちなみに、木の集合が「森=forest=」になるのは実際の木と同じ。木には、根を定めない自由木、1つの頂点を根として定める根付き木、子供の間に順序を定める順序木といった種類があり、それぞれについて詳しい説明が行われた後、プログラムの最適化などに関係する、全域木と最小全域木の違いの解説へと授業は展開していった。

グラフでの用語説明などが一通り終わった後は、数式やプログラミングに関する手法が解説された。いよいよここから難解な話が始まるのか…、と思いきや、それほど難度は上がらない。難しそうだなという部分になると、分かりやすい例を出して解説してくれるので、不思議なことに難解なことを勉強しているという感覚がないのだ。
例えば、正則n分木の解説はこのような感じ。「1チーム同士が対戦する勝ち残り方式のトーナメント表を作る場合、全試合数は『参加チーム数-1』となる」といった具合。こうした説明と、コンピューター言語を使ったプログラミングの表を書き写したところで、この日の講義は終了となった。

「今日とりあげたグラフは、ネットワークのモデルとなるもの。この学問は、将来、システムのことを学ぶにしても大変重要な分野。学生たちが苦手意識を持たないよう、抽象的な話をせずに、できるだけ具体的な例を挙げて講義をしています」と守谷教授。確かに、学生の理解度を確かめながら丁寧に授業を進めていくスタイルからは、守谷教授の学生への「理解してほしい」という想いがひしひしと伝わってきた。
最後に、守谷教授は大学でコンピューターやシステムについて学びたいたいと考えている受験生に、こんなメッセージを送ってくれた。「大学の授業は難しいと思えるかもしれませんが、高校の授業で数列や対数などをしっかり勉強しておくと、きっと役に立つと思いますよ」