概要:
本科目では、実用的なデータ構造のプログラミングを中心に講義を進める。コンピュータ上で効果的にデータを扱うことができる複雑なデータ構造とそれに付するアルゴリズムを取り扱う場合、アルゴリズムとデータ構造を抽象的に取り扱うオブジェクト指向が有効である。Java言語でのデータ構造とそれらに付するアルゴリズムの実装を通して、オブジェクト指向の概念を理解するとともにJavaの文法を整理する。さらに、統一モデリング言語(UML、Unified Modeling Language)によるソフトウェア設計方法を導入する。
授業の進め方・方法:
注意点:
プログラミングI,IIA,IIB、上級CプログラミングA,B、アルゴリズムとデータ構造A、情報数学IIAを修得していることが望ましい。アルゴリズムとデータ構造演習、情報数学IIBを並行して受講することが望ましい。継続的に授業内容の予習・復習を行うこと。適宜ノートパソコンを持参すること。「情報科学」教育プログラムの必履修科目である。
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
シラバスを用いた授業内容の説明、データ構造論概要 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを理解している。
|
2週 |
Javaにおけるデータ構造の実現、クラス定義(復習:Javaによるオブジェクト指向プログラミング) |
クラス定義によって、Javaにおけるデータ構造を実現できる。
|
3週 |
配列の実現とそれに付するアルゴリズムの復習(予習・復習:配列によるアルゴリズムの整理、分析・設計) |
クラス定義によって配列の実現し、それに付するアルゴリズムを記述できる。
|
4週 |
クラス定義の汎化と特化 |
クラス定義の汎化と特化を理解している。
|
5週 |
線形リストの実現とそれに付するアルゴリズム(復習:線形リストの分析・設計) |
リスト構造の概念と操作を説明できる。
|
6週 |
線形リストの実現とそれに付するアルゴリズム(復習:線形リストの分析・設計) |
リスト構造の概念と操作を説明でき、プログラムとして実現できる。
|
7週 |
二分探索木の実現とそれに付するアルゴリズム(復習:二分探索木の分析・設計) |
二分探索木の概念と操作を説明できる。
|
8週 |
二分探索木の実現とそれに付するアルゴリズム(復習:二分探索木の分析・設計) |
二分探索木の概念と操作を説明でき、プログラムとして実現できる。
|
4thQ |
9週 |
一般的な木構造のクラス定義(復習:一般的な木構造の分析・設計) |
木構造の概念と操作を説明できる。
|
10週 |
特化した木構造の実現:ヒープの実現、多分木の構造(復習:木構造のプログラミング) |
一般的な木構造の概念と操作を説明でき、ヒープなどの特定の木構造としてプログラミングできる。
|
11週 |
一般的なグラフのクラス定義(復習:一般的なグラフの分析・設計) |
グラフの概念と操作を説明できる。
|
12週 |
特化したグラフ(有向/無向、重み付き/なし)の構造(復習:グラフのプログラミング) |
一般的なグラフの概念と操作を説明でき、特定のグラフとしてプログラミングできる。
|
13週 |
各データ構造(リスト、木、グラフ)の関係とデータ構造の違いによるアルゴリズムの効率 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを理解している。
|
14週 |
UMLの導入:クラス図、オブジェクト図(復習:クラス図、オブジェクト図の描画) |
UMLのうち、クラス図・オブジェクト図の記述を理解する。
|
15週 |
UMLの導入:クラス図、オブジェクト図(復習:クラス図、オブジェクト図の描画) |
UMLのうち、クラス図・オブジェクト図の記述を理解し、プログラミングに利用できる。
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 3 | 後2,後14 |
ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | 後1 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | |
時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 | 3 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | 後1,後3 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 3 | 後4,後13 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 3 | 後5,後6,後7,後8,後9,後10,後11,後12,後13 |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 3 | 後13 |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 3 | 後3 |