学習・教育到達度目標 A2 ソフトウェア開発において,数理的理論に基づくスマートな設計ができるとともに,ハードウェアの基本動作を意識した設計ができる.
JABEE d 当該分野において必要とされる専門的知識とそれらを応用する能力
本校教育目標 ① ものづくり能力
概要:
上級CプログラミングA,Bにおいては、プログラミングの知識や基本的なアルゴリズムとデータ構造を学習した。本科目では、難易度の高い実用的なアルゴリズムおよびデータ構造のプログラミング演習をすることによって、アルゴリズムの効率等の数理的理論に基づく設計やコンピュータ実装に有効なデータ構造を理解するとともに、プログラミング能力にさらに磨きをかける。また、信頼性および生産性の高いソフトウェアを設計できるようにC言語に引き続いてJava言語を利用する。さらに、Java言語を効果的に利用するために、プログラムをオブジェクト指向で記述する作法を習得する。
授業の進め方・方法:
注意点:
プログラミングI,IIA,IIB、上級CプログラミングA,Bを修得していることが望ましい。アルゴリズムとデータ構造A,Bを並行して受講しなければならない。情報数学IIA,IIBを並行して受講するのが望ましい。適宜ノートパソコンを持参すること。「情報科学」教育プログラムの必修科目である。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
シラバスを用いた授業内容の説明、Java言語の導入、基本的なデータ構造:配列 |
Java言語を理解し、利用できる。
|
2週 |
シラバスを用いた授業内容の説明、Java言語の導入、基本的なデータ構造:配列 |
Java言語を理解し、利用できる。
|
3週 |
基本的な探索アルゴリズムの復習:線形探索と二分探索 |
線形探索と二分探索を説明できる。
|
4週 |
基本的な探索アルゴリズムの復習:線形探索と二分探索 |
線形探索と二分探索をプログラムとして記述できる。
|
5週 |
実用的な探索アルゴリズム:ハッシュ探索 |
ハッシュ探索を説明できる。
|
6週 |
実用的な探索アルゴリズム:ハッシュ探索 |
ハッシュ探索を理解し、クローズドハッシュ法のプログラムとして記述できる。
|
7週 |
基本的な整列アルゴリズムの復習:選択ソート、挿入ソート、バブルソート |
選択ソート、挿入ソート、バブルソートを説明できる。
|
8週 |
基本的な整列アルゴリズムの復習:選択ソート、挿入ソート、バブルソート |
選択ソート、挿入ソート、バブルソートをプログラムとして記述できる。
|
2ndQ |
9週 |
実用的な整列アルゴリズム:シェルソート |
シェルソートを説明できる。
|
10週 |
実用的な整列アルゴリズム:シェルソート |
シェルソートを理解し、プログラムとして記述できる。
|
11週 |
実用的な整列アルゴリズム:クイックソート |
クイックソートを説明できる。
|
12週 |
実用的な整列アルゴリズム:クイックソート |
クイックソートを理解し、プログラムとして記述できる。
|
13週 |
実用的な整列アルゴリズム:ヒープソート |
ヒープソートを説明できる。
|
14週 |
実用的な整列アルゴリズム:ヒープソート |
ヒープソートを理解し、プログラムとして記述できる。
|
15週 |
実用的な整列アルゴリズム:マージソート |
マージソートを説明できる。
|
16週 |
|
|
後期 |
3rdQ |
1週 |
実用的な整列アルゴリズム:マージソート |
マージソートを理解し、プログラムとして記述できる。
|
2週 |
オブジェクト指向の導入、クラス定義の汎化と特化 |
オブジェクト指向の概念をアルゴリズムとデータ構造について説明できる。
|
3週 |
オブジェクト指向の導入、クラス定義の汎化と特化 |
オブジェクト指向の概念を理解し、オブジェクト指向プログラミングに利用できる。
|
4週 |
基本的なデータ構造:配列の実現とそれに付するアルゴリズム、スタック、キュー |
配列データ構造を理解し、スタックをプログラムとして記述できる。
|
5週 |
基本的なデータ構造:配列の実現とそれに付するアルゴリズム、スタック、キュー |
配列データ構造を理解し、キューをプログラムとして記述できる。
|
6週 |
実用的なデータ構造:線形リストの実現とそれに付するアルゴリズム |
線形リストを説明できる。
|
7週 |
実用的なデータ構造:線形リストの実現とそれに付するアルゴリズム |
線形リストを理解し、プログラムとして記述できる。
|
8週 |
実用的なデータ構造:二分探索木の実現とそれに付するアルゴリズム |
二分探索木を説明できる。
|
4thQ |
9週 |
実用的なデータ構造:二分探索木の実現とそれに付するアルゴリズム |
二分探索木を理解し、そのデータ構造及びデータの追加、探索、削除、走査をプログラムとして記述できる。
|
10週 |
実用的なデータ構造:一般的および具体的な木構造 |
一般的な木構造を説明できる。
|
11週 |
実用的なデータ構造:一般的および具体的な木構造 |
一般的な木構造を理解し、特定の木構造プログラムとして記述できる。
|
12週 |
実用的なデータ構造:一般的および具体的なグラフ |
一般的なグラフを説明できる。
|
13週 |
実用的なデータ構造:一般的および具体的なグラフ |
一般的なグラフを理解し、特定のグラフプログラムとして記述できる。
|
14週 |
UMLの導入:クラス図、オブジェクト図 |
オブジェクト指向開発の手法として、UMLを説明できる。
|
15週 |
UMLの導入:クラス図、オブジェクト図 |
UMLのうち、クラス図・オブジェクト図をプログラミングに利用できる。
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 3 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | 前1,前2 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | 前3,前4 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | 前3,前4 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | 前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,後1 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 3 | 前10,前12 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 3 | 前14,後1 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | 前1,前2 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 3 | 後2,後3 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 3 | 後4,後5,後6,後8,後10,後12 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 3 | 後4,後5,後7,後9,後11,後13 |