概要:
1,2年に学習した「情報処理」の応用として、ソートと探索のアルゴリズムを学習する。バブルソート、単純挿入法、クイックソートなどのソートアルゴリズムと、線形探索、2分探索の探索アルゴリズムの基本を説明した後、演習を行う。さらに、リスト、スタック、キュー、木構造などのデータ構造を説明し、それぞれのデータ構造に実現するための基本操作を習得する。
授業の進め方・方法:
講義を中心として確認課題と総合演習を適宜実施する
注意点:
事前学習:教科書の予定範囲を読み、意味が分からない言葉や記号をメモすること。事後学習:授業で学習した内容に関する教科書や配布した資料を復習し、理解を確認すること。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
アルゴリズムと時間計算量 |
アルゴリズムの概念を説明できる。時間計算量によってアルゴリズムを比較・評価できることを説明できる。
|
2週 |
領域計算量 バブルソート |
領域計算量によってアルゴリズムを比較・評価できることを説明できる。バブルという整列の基本的なアルゴリズムについて説明できる。
|
3週 |
選択法ソート |
選択法ソートという整列の基本的なアルゴリズムについて説明できる
|
4週 |
挿入法ソート・シェルソート
|
挿入法ソート・シェーカーソートという整列の基本的なアルゴリズムについて説明できる。
|
5週 |
再帰の考え方 |
再帰の考え方を説明できる
|
6週 |
クイックソート |
クイックソートという整列の基本的なアルゴリズムについて説明できる。
|
7週 |
演習1
|
整列の基本的なアルゴリズムを実装できる
|
8週 |
線形探索・乱数の生成
|
線形探索という探索の基本的なアルゴリズムについて説明できる。
|
2ndQ |
9週 |
2分探索 |
2分探索という探索の基本的なアルゴリズムについて説明できる
|
10週 |
数値計算の誤差・級数の計算 |
コンピュータ上で数値計算を行う際に発生する誤差の影響を説明できる
|
11週 |
2分法とニュートン法 |
コンピュータ向けの主な数値計算アルゴリズムの概要や特徴を説明できる
|
12週 |
演習2 |
基本的な探索や数値計算アルゴリズムを実装できる
|
13週 |
システム設計のプロセス |
システム設計には要求の振り分けやシステムの構成の決定、システム設計のプロセスを説明できる
|
14週 |
ER図・DFD |
ビジネスフロー分析手法について説明できる
|
15週 |
期末試験 |
期末試験
|
16週 |
総復習と試験解説 |
間違ったところについて修正できる
|
後期 |
3rdQ |
1週 |
データ構造 |
データ構造にはバリエーションがあることが説明できる
|
2週 |
ポインタ |
ポインタの定義、ポインター変数の宣言、ポインタ演算子について説明ができる
|
3週 |
構造体 |
構造体の定義、構造体変数の宣言、代入、参照の説明ができる
|
4週 |
リスト構造 |
リスト構造の概念を説明できる
|
5週 |
リスト構造の探索・挿入 |
リスト構造の操作を説明できる
|
6週 |
リスト構造の削除・ポインタによるリスト構造の操作 |
リスト構造の操作を説明できる
|
7週 |
演習3 |
配列・構造体・リスト構造を実装することができる
|
8週 |
スタックの基本・配列によるスタック
|
スタックの概念を説明できる
|
4thQ |
9週 |
リストによるスタック |
スタックの操作を説明できる
|
10週 |
キュー・配列によるキュー |
キューの概念を説明できる
|
11週 |
リストによるキューの操作
|
キューの操作を説明できる
|
12週 |
木構造・二分木の作成 |
木構造の概念を説明できる
|
13週 |
二分木の探索・走査 |
木構造の操作を説明できる
|
14週 |
演習4 |
スタック、キュー、木構造の基本的なデータ構造を実装することができる。同一の問題に対し、選択したデータ構造によって、アルゴリズムが変化しうることが説明できる
|
15週 |
期末試験 |
期末試験
|
16週 |
総復習と試験解説 |
間違ったところについて修正できる
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 4 | 前1,前2 |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 4 | 前3,前4 |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 4 | 前3,前4 |
専門的能力 | 分野別の専門工学 | 情報系分野 | ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | 前1 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | 前1 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | 前1 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前1 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前2 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | 前2,前3,前4,前6,前8,前9 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | 後1 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | 後1,後15 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | 後4,後5,後6,後8,後9,後11,後12,後14 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 4 | 後6,後7,後9,後11,後15 |
情報数学・情報理論 | コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。 | 4 | |