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