| 年度 | 2007 |
|---|---|
| 科目名 | アルゴリズム特論 |
| 教員名 | 松原 康夫 |
| 授業概要 | コンピュータサイエンスで言う、手続きとアルゴリズムの違いや、計算の手間の問題について解説する。具体的なアルゴリズムについては、単に理論的に解説するのではなく、因数分解、構文解析、パズルを自動的に解くことや探索を高速化する発見法、などについてJavaで実際に動くプログラムを構築することを目標とする。そのため、必要に応じて、オブジェクト指向プログラミングの考えかたをも解説する。 |
| 授業計画 | アルゴリズムの概念 Turingマシン ・停止問題 計算の複雑さ ・多項式時間と指数関数時間 ・NP問題 オブジェクト指向 ・Javaの処理系 ・抽象データ型 データ構造とアルゴリズム ・配列とソート ・木構造 ・集合 ・有向グラフ ・無向グラフ ・ハッシュテーブル 探索アルゴリズム ・再帰的手続き ・バックトラック法 ・横型探索法 |
| 評価方法 | 評価方法:基本的には学期末のテストによるが、日頃の課題への取り組み状況をも考慮する。 |
| 教科書 | |
| 参考書 | |
| メッセージ | アルゴリズムはデータ構造と密接な関係がある。具体的なデータ構造を与えて、実際に動くプログラムを書かなければ役に立たない。この授業ではJavaで実際にプログラムを書いてみるので、オブジェクト指向の考え方も一緒に学んでみよう。 |