|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
オリエンテーション,第1章:アルゴリズムの基本 【事前事後学習の内容(3時間)】教科書1章のListと演習課題 |
オリエンテーション(授業の進め方,演習の実施方法,成績評価等の説明を中心に実施)の後,アルゴリズムとプログラムの違い,各種データ構造を説明できる.基本的なアルゴリズムの例題と演習問題をJavaで実装することができる
|
2週 |
第2章:データ構造の基本 【事前事後学習の内容(3時間)】教科書2章のListと演習課題 |
基本的なデータ構造の例題と演習問題をJavaで実装できる.
|
3週 |
第3章:線形探索 【事前事後学習の内容(1時間)】教科書3章のListと演習課題(その1) |
探索アルゴリズムおよび表中のデータを探索するアルゴリズムで最も単純かつ基本である線形探索について説明できる.加えて,線形探索における“番兵”およびデータの挿入・削除について説明できる.線形探索の例題をJavaで実装できる.
|
4週 |
2分探索,演習 【事前事後学習の内容(1時間)】学習シートの総合課題(1),教科書3章のListと演習課題(その2) |
あらかじめソートされているデータに対して,効率よく探索するための手法である2分探索法について説明できる.2分探索の例題と演習問題をJavaで実装できる.また,学習シート(総合課題)を取組むことができる.
|
5週 |
ハッシュ法(1)チェイン法 【事前事後学習の内容(1時間)】教科書3章のListと演習課題(その3) |
データを効率よく探索するための代表的かつ最もよく用いられている手法であるハッシュ法について説明できる.ハッシュ法の例題をJavaで実装できる.
|
6週 |
ハッシュ法(2)オープンアドレス法 【事前事後学習の内容(1時間)】教科書3章のListと演習課題(その4) |
前回に引き続きハッシュ法,およびアルゴリズムの計算量について説明できる.ハッシュ法の例題と演習問題をJavaで実装できる.
|
7週 |
前期第3~6回に関しての理解するプログラムを設計・実装・考察 【事前事後学習の内容(1時間)】学習シートの総合課題(2) |
前期第3~6回に関しての理解を確認するため,学習シートの総合課題をJavaで実装する.
|
8週 |
アルゴリズムの理解度確認試験(授業時間内に実施) |
前期第3~6回に関しての理解を確認する.(授業時間内に実施し,解説を行う)
|
2ndQ |
9週 |
再帰アルゴリズムの考え方 【事前事後学習の内容(1時間)】教科書5章のListと演習課題(その1) |
再帰アルゴリズムについて理解し、説明できる.基本的な再帰アルゴリズムの例題と演習問題をJavaで実装できる.
|
10週 |
再帰アルゴリズムの解析(1) 【事前事後学習の内容(1時間)】学習シート,教科書5章のListと演習課題(その2) |
再帰アルゴリズムの解析(トップダウン法)について説明できる.例題をJavaで実装できる.
|
11週 |
再帰アルゴリズムの解析(2) 【事前事後学習の内容(1時間)】学習シート,教科書5章のListと演習課題(その3) |
再帰アルゴリズムの解析(ボトムアップ法),メモ化について説明できる.例題と演習問題をJavaで実装できる.
|
12週 |
バックトラッキング(1)8王妃問題 【事前事後学習の内容(1時間)】学習シート,教科書の例題と演習問題 |
しらみつぶしを組織的かつ効率よく行う手法としてのバックトラック法について理解できる.例題と演習問題をJavaで実装できる.
|
13週 |
バックトラッキング(2)ハノイの塔 【事前事後学習の内容(1時間)】学習シート,教科書の例題と演習問題 |
前回に続き,バックトラック法について理解し、説明できる.例題と演習問題をJavaで実装できる.
|
14週 |
前期第9~13回に関しての理解するプログラムを設計・実装・考察 【事前事後学習の内容(1時間)】学習シートの総合課題(3) |
前期第9~13回に関しての理解を確認するため,学習シートの総合課題をJavaで実装する.
|
15週 |
第14週に引き続き実施
|
第14週に引き続き実施
|
16週 |
前期総合解説 |
|
後期 |
3rdQ |
1週 |
ソーティングの概念及び単純なソート法 【事前事後学習の内容(1時間)】学習シート,教科書6章のListと演習課題(その1) |
ソーティングの基本及び単純なソート法の1つである単純選択法について説明できる.例題と演習問題をJavaで実装できる.
|
2週 |
単純なソート法 【事前事後学習の内容(1時間)】学習シート,教科書6章のListと演習課題(その2) |
単純なソート法の続きとして,バブルソートについて説明できる.例題と演習問題をJavaで実装できる.
|
3週 |
シェルソート,クイックソート 【事前事後学習の内容(1時間)】学習シート,教科書6章のListと演習課題(その3) |
シェルソートとクイックソートについて学ぶ.例題と演習問題をJavaで実装できる.
|
4週 |
マージソート 【事前事後学習の内容(1時間)】学習シート,教教科書6章のListと演習課題(その4) |
マージソートについて学ぶ.例題と演習問題をJavaで実装できる.
|
5週 |
ヒープソート(1) 【事前事後学習の内容(1時間)】学習シート |
3年次の情報数学の中のグラフにおいて学んだ木構造の概念を用いたヒープソートについて理解し、説明できる.また,これまでに学んだソートアルゴリズムの時間計算量によって比較・評価できることを説明できる.
|
6週 |
ヒープソート(2) 【事前事後学習の内容(1時間)】学習シート,教科書6章のList6-17 |
ヒープソートについて例題をJavaで実装できる.
|
7週 |
後期第1~6回に関しての理解するプログラムを設計・実装・考察 【事前事後学習の内容(1時間)】学習シートの総合課題(4) |
後期第1~6回に関しての理解を確認するため,学習シートの総合課題をJavaで実装する.
|
8週 |
アルゴリズムの理解度確認試験(授業時間内に実施) |
後期第1~6回に関しての理解を確認する.(授業時間内に実施し,解説を行う)
|
4thQ |
9週 |
線形リスト(1) 【事前事後学習の内容(1時間)】学習シート |
ポインタを用いた1方向線形リストの概念及びJAVA プログラムでの実現方法を説明できる.
|
10週 |
線形リスト(2) 【事前事後学習の内容(1時間)】学習シート |
線形リストにおけるデータの探索・追加・削除について説明出来る.循環・重連結リストについて説明できる.
|
11週 |
様々なアルゴリズムの理解(1) |
情報処理技術者試験に出題されたアルゴリズムに関する問題を用いて,様々なアルゴリズムを理解することができる
|
12週 |
様々なアルゴリズムの理解(2) |
情報処理技術者試験に出題されたアルゴリズムに関する問題を用いて,様々なアルゴリズムを理解することができる
|
13週 |
総合課題 |
与えられた課題をJavaで実装し,結果を比較し,考察することで,深く理解する.また,発表形式でプログラム・結果・考察を説明することにより,習熟度をチェックする.
|
14週 |
総合課題の発表(1) |
総合課題の発表ができる
|
15週 |
総合課題の発表(2) |
総合課題の発表ができる
|
16週 |
総合解説 |
総合解説
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 3 | 前1,前2,前5,前9,後1,後5,後12,後13,後14 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 3 | 前1,前4,前8,前14,後4,後8,後11 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | 前1,前4,前8,前14,後4,後8,後11 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | 前1,前4,前8,前14,後4,後8,後11 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | 前1,前4,前8,前14,後4,後8,後11 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | 前1,前4,前8,前14,後4,後8,後11 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | 前1,前4,前8,前14,後4,後8,後11 |
ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | 前2,前3,前5,前6,前9,前10,前11,前12,前13,後1,後2,後3,後5,後10,後12,後13,後14 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | 前2,前3,前5,前6,前9,前10,前11,前12,前13,後1,後2,後3,後5,後10,後12,後13,後14 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | 前2,前3,前5,前6,前9,前10,前11,前12,前13,後1,後2,後3,後5,後10,後12,後13,後14 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | 前2,前3,前5,前6,前9,前10,前11,前12,前13,後1,後2,後3,後5,後10 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前1,前4,前6,前8,前14,後4,後6,後8,後11 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前1,前6,後6 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | 前1,前5,前9,前10,後5,後10,後12,後13,後14 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | 前5,前9,後5,後10 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | 前5,前6,前10,後5,後9,後10 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 4 | 後8,後9,後11 |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 4 | 前4,前8,前14,後4,後8,後11 |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 4 | 前4,前8,前14,後4,後8,後11 |
分野別の工学実験・実習能力 | 情報系分野(実験・実習能力) | 情報系分野(実験・実習能力) | 問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。 | 4 | 前4,前8,前14,後4,後8,後11 |