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

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