概要:
基本的なデータ構造とアルゴリズムの理解を通して、プログラミングスキルの向上を目指す中で、科目「データ構造アルゴリズム」に対応したプログラムを作成する。同時に計算量についても考慮したプログラム作成を行う。
授業の進め方・方法:
科目「データ構造アルゴリズム」と連動しており、本授業は演習メインにて進める。科目「データ構造アルゴリズム」にて確認した内容を本講義にて作成するが、本講義がデータ構造とアルゴリズムの説明の時間になる可能性もあることを考慮しておいて欲しい。
注意点:
中間試験・定期試験では、各種問題に対応したプログラムをどのようなアルゴリズムとデータ構造を用いて作成するかを設計できる能力、そして実際に作成する能力が必要である。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
構造体の復習と連結リスト構造のプログラムの作成1 |
構造体と連結リスト構造のプログラムを作成できる
|
2週 |
構造体の復習と連結リスト構造のプログラムの作成2 |
構造体と連結リスト構造のプログラムを作成できる
|
3週 |
構造体の復習と連結リスト構造のプログラムの作成3 |
構造体と連結リスト構造のプログラムを作成できる
|
4週 |
スタックのプログラムの作成 |
スタックをプログラムにて実現できる
|
5週 |
スタックの応用事例のプログラムの作成 |
スタックの応用事例をプログラムにて実現できる
|
6週 |
キューのプログラムの作成 |
キューをプログラムにて実現できる
|
7週 |
キューの応用事例のプログラムの作成 |
キューの応用事例をプログラムにて実現できる
|
8週 |
中間試験 |
リスト、スタック、キューを用いたプログラムを作成できる
|
2ndQ |
9週 |
中間試験を振り返る |
リスト、スタック、キューのプログラム作成についての理解を深める
|
10週 |
循環リスト、双方向リストのプログラムの作成 |
循環リスト、双方向リスト用いたプログラムを作成できる
|
11週 |
双方向リストの応用事例のプログラムの作成 |
双方向リストの応用事例のプログラムを作成できる
|
12週 |
基本的なソートとそのオーダーを理解し、プログラムを作成する |
基本的なソートとオーダーを理解し、そのプログラムを作成できる
|
13週 |
基本的な探索とそのオーダー |
基本的な探索とオーダーを理解し、そのプログラムを作成できる
|
14週 |
総合的な課題のプログラム作成に取り組む1 |
総合的な課題のプログラム作成に取り組み理解を深める
|
15週 |
総合的な課題のプログラム作成に取り組む2 |
総合的な課題のプログラム作成に取り組み理解を深める
|
16週 |
|
|
後期 |
3rdQ |
1週 |
再帰のプログラム作成 |
再帰を用いたプログラムを作成できる
|
2週 |
二分探索木のプログラム作成1 |
二分探索木のプログラムを作成できる
|
3週 |
二分探索木のプログラム作成2 |
二分探索木のプログラムを作成できる
|
4週 |
二分探索木のプログラム作成3 |
二分探索木のプログラムを作成できる
|
5週 |
クイックソートのプログラム作成 |
クイックソートのプログラムを作成できる
|
6週 |
ハッシュ法のプログラム作成1 |
ハッシュ法のプログラムを作成できる
|
7週 |
ハッシュ法のプログラム作成2 |
ハッシュ法のプログラムを作成できる
|
8週 |
中間試験 |
再帰、二分探索木、クイックソート、ハッシュ法が理解できる
|
4thQ |
9週 |
中間試験を振り返る |
再帰、二分探索木、クイックソート、ハッシュ法の理解を深める
|
10週 |
ハッシュ法のプログラム作成3 |
ハッシュ法のプログラムを作成できる
|
11週 |
文字列探索のプログラム作成 |
文字列探索のプログラムを作成できる
|
12週 |
ビンソート、分布数え上げソートのプログラム作成 |
ビンソート、分布数え上げソートのプログラムを作成できる
|
13週 |
基数ソートのプログラム作成 |
基数ソートのプログラムを作成できる
|
14週 |
総合的な課題のプログラム作成に取り組む3 |
総合的な課題のプログラム作成に取り組み理解を深める
|
15週 |
総合的な課題のプログラム作成に取り組む4 |
総合的な課題のプログラム作成に取り組み理解を深める
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系 | プログラミング | 変数とデータ型の概念を説明できる。 | 3 | |
代入や演算子の概念を理解し、式を記述できる。 | 3 | |
制御構造の概念を理解し、条件分岐や反復処理を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | |
与えられた簡単な問題に対して、それを解決するためのソースプログラムを記述できる。 | 6 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 5 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 5 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを理解している。 | 5 | |
時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 | 3 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 5 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを理解している。 | 5 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを理解している。 | 4 | |
リスト構造、スタック、キューなどの基本的なデータ構造の概念と操作を説明できる。 | 4 | |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 3 | |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 3 | |