到達目標(ア)実用的な探索アルゴリズムを理解し、プログラムを作成できる。(イ)実用的な整列アルゴリズムを理解し、プログラムを作成できる。(ウ)線形リストをクラス定義し、オブジェクト指向プログラムを作成できる。(エ)二分探索木をクラス定義し、オブジェクト指向プログラムを作成できる。(オ)実用的な木構造をクラス定義し、オブジェクト指向プログラムを作成できる。(カ)実用的なグラフをクラス定義し、オブジェクト指向プログラムを作成できる。評価項目1アルゴリズムの概念、および、データ構造のバリエーションを理解し、プログラムとして実現できる。アルゴリズムの概念、および、データ構造のバリエーションを理解している。アルゴリズムの概念、および、データ構造のバリエーションを理解できない。評価項目2整列、探索など、基本的なアルゴリズムについて説明でき、プログラムとして記述できる。整列、探索など、基本的なアルゴリズムについて説明できる。整列、探索など、基本的なアルゴリズムについて説明できない。評価項目3リスト構造、スタック、キューなどの基本的なデータ構造の概念と操作を説明でき、プログラムとして記述できる。リスト構造、スタック、キューなどの基本的なデータ構造の概念と操作を説明できる。リスト構造、スタック、キューなどの基本的なデータ構造の概念と操作を説明できない。概要:上級CプログラミングA,Bにおいては、プログラミングの知識や基本的なアルゴリズムとデータ構造を学習した。本科目では、難易度の高い実用的なアルゴリズムおよびデータ構造のプログラミング演習をすることによって、アルゴリズムの効率等の数理的理論に基づく設計やコンピュータ実装に有効なデータ構造を理解するとともに、プログラミング能力にさらに磨きをかける。信頼性および生産性の高いソフトウェアを設計できるようにC言語に引き続いてJava言語を利用する。Java言語を効果的に利用するために、プログラムをオブジェクト指向で記述する作法を習得する。授業の進め方と授業内容・方法:注意点:プログラミングI,IIA,IIB、上級CプログラミングA,Bを修得していることが望ましい。アルゴリズムとデータ構造A,Bを並行して受講しなければならない。情報数学IIA,IIBを並行して受講するのが望ましい。Java言語を理解し、利用できる。Java言語を理解し、利用できる。線形探索と二分探索を説明できる。線形探索と二分探索をプログラムとして記述できる。ハッシュ探索を説明できる。ハッシュ探索を理解し、クローズドハッシュ法のプログラムとして記述できる。選択ソート、挿入ソート、バブルソートを説明できる。選択ソート、挿入ソート、バブルソートをプログラムとして記述できる。シェルソートを説明できる。シェルソートを理解し、プログラムとして記述できる。クイックソートを説明できる。クイックソートを理解し、プログラムとして記述できる。ヒープソートを説明できる。ヒープソートを理解し、プログラムとして記述できる。マージソートを説明できる。マージソートを理解し、プログラムとして記述できる。オブジェクト指向の概念をアルゴリズムとデータ構造について説明できる。オブジェクト指向の概念を理解し、オブジェクト指向プログラミングに利用できる。配列データ構造を理解し、スタックをプログラムとして記述できる。配列データ構造を理解し、キューをプログラムとして記述できる。線形リストを説明できる。線形リストを理解し、プログラムとして記述できる。二分探索木を説明できる。プログラムとして記述できる。一般的な木構造を説明できる。一般的な木構造を理解し、特定の木構造プログラムとして記述できる。一般的なグラフを説明できる。一般的なグラフを理解し、特定のグラフプログラムとして記述できる。オブジェクト指向開発の手法として、UMLを説明できる。UMLのうち、クラス図・オブジェクト図をプログラミングに利用できる。