科目コード | 科 目 名 | |||||||||
3155 | プログラミング論III : Algorithms and Data Structure Systems | |||||||||
教 員 名 | 武藤義彦 : MUTO Yoshihiko | |||||||||
学年 | 単位・時間 | 科目区分 | 授業形態 | 学修単位 | ||||||
4B | 1・100分 | 必修 | 講義・後期 | ○ | ||||||
授業概要 | 代表的なデータ構造とアルゴリズムを学ぶと同時に,それらをJavaまたはCプログラムにおいて実現する手法を身につける.前半は基本的なデータ構造を扱い,後半では整列や探索(照合)などのアルゴリズムの考え方および実装を説明する. | |||||||||
到 達 目 標 | 評 価 方 法 | |||||||||
(1)
それぞれのデータ構造とアルゴリズムを論理的に理解できる. (2) データ構造を Java または C言語を用いて実装できる. (3) それぞれのアルゴリズムの特徴を説明できる. |
評価方法は,(1)中間試験,(2)期末試験,(3)レポートを評価する.評価配分は,(1)35%、(2)35%,(3)30%とする. | |||||||||
学習・教育目標 | (D)@ | JABEE基準1(1) | (d)-(3) | |||||||
授 業 計 画 | 回 | 項 目 | 内 容 | |||||||
イントロダクション | データ構造とアルゴリズムの必要性,計算量によるアルゴリズムの評価 | |||||||||
第1 | ||||||||||
スタック,キュー | 基本的なデータ構造であるスタックとキューの概念の理解,および実装の解読 | |||||||||
第2 | ||||||||||
連結リスト(1) | 単方向連結リスト,双方向連結リストの概念 | |||||||||
第3 | ||||||||||
連結リスト(2) | 連結リストへの「要素の探索」「要素の削除」等の機能追加(演習) | |||||||||
第4 | ||||||||||
ソーティング(1) | 単純なソーティングアルゴリズム:バブルソート,選択ソート,挿入ソートの概念と実装の理解 | |||||||||
第5 | ||||||||||
ソーティング(2) | 高速なソーティングアルゴリズム:マージソートとクイックソートの概念と実装の理解 | |||||||||
第6 | ||||||||||
ソーティング(3) | バケットソートの概念と実装の理解 | |||||||||
第7 | ||||||||||
中間まとめ | 中間まとめとして試験を実施する | |||||||||
第8 | ||||||||||
探索(1) | 逐次探索,二分探索の概念と実装の理解および計算量によるアルゴリズムの評価 | |||||||||
第9 | ||||||||||
探索(2) | 二分探索木の概念と実装の理解 | |||||||||
第10 | ||||||||||
探索(3) | ハッシュ関数,チェイン法(分離連鎖法)によるハッシュの概念と実装の理解 | |||||||||
第11 | ||||||||||
探索(4) | 再ハッシュ,オープンアドレス法(空き番地法)の概念と実装の理解 | |||||||||
第12 | ||||||||||
グラフの探索(1) | グラフによるデータ間の関係の表現 | |||||||||
第13 | ||||||||||
グラフの探索(2) | 深さ優先探索と幅優先探索の概念と実装の理解 | |||||||||
第14 | ||||||||||
まとめ | 全体の学習事項のまとめと授業評価アンケート調査を行う | |||||||||
第15 | ||||||||||
関連科目 | プログラミング論TA・TB,プログラミング論UA・UB | |||||||||
教 科 書 | 広瀬貞樹,あるごりずむ,近代科学社 | |||||||||
参 考 書 | 近藤嘉雪,Javaプログラマのためのアルゴリズムとデータ構造,ソフトバンク | |||||||||
授業評価・理解度 | 最終回に授業評価アンケートを行う. | |||||||||
副担当教員 | ||||||||||
備 考 | 適宜プリントを配布する |