| 年度 | 2003 |
|---|---|
| 科目名 | アルゴリズムとデータ構造 |
| 教員名 | 釈氏 孝浩 |
| 授業概要 | プログラミングを行う上で必要なアルゴリズムとデータ構造に関して講義する。探索・整列といった簡単な例から始め,適切なアルゴリズム選択による計算量の変化を観察する。また,パズル解きのような「試行錯誤による問題解決」をアルゴリズム化する。データ構造では,実行時に構造が変化する例として,線形リスト,木構造などを扱う。予備知識としては,プログラミングの基本的知識が必要となる。実習を伴う授業ではないが,講義内容を各自が実機上でプログラミングし,実験・観察を通して確認することが求められる。特に重要なものに関しては,実験レポートの提出が課される。 |
| 授業計画 | 線形探索と二分探索。計算量の評価とアルゴリズム選択の有効性。 単純な整列アルゴリズム。セレクションソート,バブルソートなど。 再帰的アルゴリズム。 高等な整列アルゴリズム。クイックソート。 バックトラックアルゴリズム。試行錯誤の処理。騎士の巡回パズル等。 適切なデータ表現。エイトクイーンパズル等。 動的なデータ構造。線形リスト構造とその操作。 木構造。多進木と2進木。数式木,探索木などの例。 木のバランス。完全平衡木。 木構造の巡回。先順・中順・後順とその応用例。 木構造の操作。削除と挿入。探索木の構築。 |
| 評価方法 | 主に学期末試験を評価対象とするが,レポートが課せられた場合は,その内容も考慮する。科目の性質上,内容の理解度が問題であって,講義への参加・不参加を評価尺度とすることは無意味と考えられるので,「出席点」というものは考えない。 |
| 教科書 | |
| 参考書 | |
| メッセージ | 上で述べたように,講義をただ聴くだけでなく,各自で実機上での実験をする態度が重要である。講義によって得た知識をより実践的なものにするために,実験・観察の作業を通じて理解を深めるようにして欲しい。また,講義は出来るだけ一話完結型にするが,内容が積み重なっているものなので,不十分な理解は後続内容に強く影響する。欠席をした場合は必ず内容をフォローして追いついておくこと。また,実験観察を後回しにして作業をため込んでしまうのも禁物である。 |