概要:
1.プログラミングで用いられる基本的データ構造の原理,構成法を理解させる。
2.プログラミングで用いられる基本的アルゴリズムの原理,構成法を理解させる。
授業の進め方・方法:
1.データ構造として,配列,連結リスト,スタック,キュー,ヒープ,2分木を学ぶ。
2.アルゴリズムの記述法としてC言語,フローチャート,決定木を学ぶ。
3.アルゴリズムとして,各種ソートアルゴリズムや文字検索アルゴリズムを学ぶ。
注意点:
定期試験80%,授業中の課題演習(レポートを含む)を20%の比率で評価する。
C言語によるプログラミング実習を行なうので,C言語を学習しておいてください。
オフィスアワー:金曜日放課後
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
授業ガイダンス アルゴリズムとは |
授業で扱う内容の概略を説明できる。
|
2週 |
アルゴリズム入門 |
変数とデータ型の概念を説明できる。D2:1,2, D3:1, D5:1
|
3週 |
フローチャートとアルゴリズムの表現 |
変数とデータ型の概念を説明できる。D2:1,2, D3:1, D5:1
|
4週 |
配列 |
配列,連結リストなどの基本データ構造の原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
5週 |
連結リスト |
配列,連結リストなどの基本データ構造の原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
6週 |
スタック |
スタック,キューなどのデータ構造の原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
7週 |
キュー |
スタック,キューなどのデータ構造の原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
8週 |
前期中間試験 |
中間試験
|
2ndQ |
9週 |
探索(線形探索と二分探索) |
探索アルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
10週 |
探索(ハッシュ法) |
探索アルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
11週 |
探索(二分探索木) |
探索アルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
12週 |
二分探索木 |
探索アルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
13週 |
再帰的アルゴリズム |
再帰的アルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
14週 |
演習 |
いろいろなデータ構造やアルゴリズムの原理,構成法を実装できる。D2:1,2, D3:1, D5:1
|
15週 |
まとめ |
前期で学んだ内容を説明できる。
|
16週 |
前期期末試験 |
期末試験
|
後期 |
3rdQ |
1週 |
整列
|
ソートアルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
2週 |
選択ソート |
ソートアルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
3週 |
バブルソート |
ソートアルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
4週 |
挿入ソート |
ソートアルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
5週 |
シェルソート |
ソートアルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
6週 |
クイックソート |
ソートアルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
7週 |
マージソート |
ソートアルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
8週 |
後期中間試験 |
中間試験
|
4thQ |
9週 |
文字列探索の概要 |
文字列探索アルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
10週 |
力まかせ法 |
文字列探索アルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
11週 |
KMP法 |
文字列探索アルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
12週 |
BM法 |
文字列探索アルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
13週 |
いろいろなアルゴリズム |
いろいろなアルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
14週 |
いろいろなアルゴリズム |
いろいろなアルゴリズムの原理,構成法を理解することができる。D2:1,2, D3:1, D5:1
|
15週 |
まとめ |
後期で学んだ内容を説明できる。
|
16週 |
後期期末試験 |
期末試験
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | 前1,前2 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | 前3 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | 後1,後2,後3,後4,後5,後6,後7 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | 後1,後2,後3,後4,後5,後6,後7 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前2,前3 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前2,前3 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | 前4,前5,前6,前7 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | 前9,前10,前11,前12 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | 前5,前6,前7 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 4 | 前5,前6,前7 |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 4 | 後1,後2,後3,後4,後5,後6,後7 |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 4 | 後1,後2,後3,後4,後5,後6,後7 |