到達目標(ア)アルゴリズムとデータ構造がプログラミングの要であることを理解する。(イ)Javaの文法とオブジェクト指向を理解し、プログラム設計に利用できる。(ウ)線形リスト、スタック、キューなどのデータ構造を抽象的に理解し、効果的にクラスの特化と汎化ができる。(エ)配列および線形リストをクラス定義し、オブジェクト指向プログラムを作成できる。それらの対比ができる。(オ)二分探索木をクラス定義し、オブジェクト指向プログラムを作成できる。(カ)UMLの基礎を理解し、簡単なオブジェクト指向プログラムの設計に利用できる。評価項目1リスト構造、スタック、キューなどの基本的なデータ構造の概念と操作を説明でき、実際にプログラムとして実現できる。リスト構造、スタック、キューなどの基本的なデータ構造の概念と操作を説明できる。リスト構造、スタック、キューなどの基本的なデータ構造の概念と操作を説明できない。評価項目2同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを理解しており、データ構造に付随するアルゴリズムをプログラムとして実現できる。同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを理解している。同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを理解していない。評価項目3オブジェクト指向によるソフトウェア開発に利用する標準的なツールの種類と機能を説明でき、UMLをソフトウェア開発に利用することができる。オブジェクト指向によるソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。オブジェクト指向によるソフトウェア開発に利用する標準的なツールの種類と機能を説明できない。概要:本科目では、実用的なデータ構造のプログラミングを中心に講義を進める。コンピュータ上で効果的にデータを扱うことができる複雑なデータ構造とそれに付するアルゴリズムを取り扱う場合、アルゴリズムとデータ構造を抽象的に取り扱うオブジェクト指向が有効である。Java言語でのデータ構造とそれらに付するアルゴリズムの実装を通して、オブジェクト指向の概念を理解するとともにJavaの文法を整理する。Language)によるソフトウェア設計方法を導入する。授業の進め方と授業内容・方法:注意点:プログラミングI,IIA,IIB、上級CプログラミングA,B、アルゴリズムとデータ構造A、情報数学IIAを修得していることが望ましい。IIBを並行して受講することが望ましい。継続的に授業内容の予習・復習を行うこと。コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを理解している。クラス定義によって、Javaにおけるデータ構造を実現できる。クラス定義によって配列の実現し、それに付するアルゴリズムを記述できる。クラス定義の汎化と特化を理解している。リスト構造の概念と操作を説明できる。リスト構造の概念と操作を説明でき、プログラムとして実現できる。二分探索木の概念と操作を説明できる。二分探索木の概念と操作を説明でき、プログラムとして実現できる。木構造の概念と操作を説明できる。一般的な木構造の概念と操作を説明でき、ヒープなどの特定の木構造としてプログラミングできる。グラフの概念と操作を説明できる。一般的なグラフの概念と操作を説明でき、特定のグラフとしてプログラミングできる。同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを理解している。UMLのうち、クラス図・オブジェクト図の記述を理解する。UMLのうち、クラス図・オブジェクト図の記述を理解し、プログラミングに利用できる。