到達目標
(1) 授業内容を理解し,問題解決に適したアルゴリズムやデータ構造を選択できる.(定期試験)
(2) 各種アルゴリズムの仕組みについて理解するとともに,プログラムを実装できる. (定期試験・レポート)
(3) 演習を通して理解を深めるとともに,自主的かつ継続的な学習ができる.(定期試験・レポート)
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | 問題解決に適したアルゴリズムやデータ構造をいくつか選択できる. | 問題解決に適したアルゴリズムやデータ構造を1つ選択できる | 問題解決に適したアルゴリズムやデータ構造を適切に選択できない |
評価項目2 | 各種アルゴリズムの仕組みについて理解するとともに,プログラムを効率よく実装できる. | 各種アルゴリズムの仕組みについて理解するとともに,プログラムを実装できる. | 各種アルゴリズムの仕組みについて理解できず,プログラムを実装できない. |
評価項目3 | 演習を通して理解を深めるとともに,発展的内容を自主的かつ継続的な学習ができる. | 演習を通して理解を深めるとともに,自主的かつ継続的な学習ができる. | 演習を通して理解できず,自主的かつ継続的な学習ができない. |
学科の到達目標項目との関係
自主的,継続的に学習する能力 JABEE基準1(2)(g)
説明
閉じる
(分野別要件(工学(融合複合・新領域))基礎工学の知識・能力 JABEE基準2.1(1)
説明
閉じる
情報技術、専門工学の基礎を身につける 大分高専学習教育目標(B2)
説明
閉じる
教育方法等
概要:
本授業では,ソフトウェア開発において重要なアルゴリズムとデータ構造について学ぶ.理論の習得だけではなく,実際にアルゴリズムをプログラミング言語を用いて実装し,ソフトウェアの開発力を養う.また,情報系資格試験に則した問題の演習を行うことにより,より深い理解と応用力を身につける.
授業の進め方・方法:
アルゴリズムを説明した後に、関連した問題を考えたり、実際にプログラミングを行って理解を深める.
注意点:
重要な項目を学習した後に,内容の理解を問う質問をするので,授業を良く聞いて理解に努めること.
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
アルゴリズムの基礎 (アルゴリズムの評価基準/計算量の漸近的評価) |
ソフトウェアにおける,アルゴリズムの 重要性を理解する.アルゴリズムの評価方法,および各種データ構造の利点と欠点を理解する.
|
2週 |
アルゴリズムの基本データ構造(配列) |
基本的なデータ構造(配列)について理解する
|
3週 |
アルゴリズムの基本データ構造(連結リスト) |
基本的なデータ構造(連結リスト)について理解する
|
4週 |
アルゴリズムの基本データ構造(スタック/キュー) |
基本的なデータ構造(スタック/キュー) について理解する
|
5週 |
アルゴリズムにおける基本概念(木構造1) |
木構造を理解し,プログラム作成において,最適のデータ構造を選択できるようになる
|
6週 |
アルゴリズムにおける基本概念(木構造2) |
木構造を理解し,プログラム作成において,最適のデータ構造を選択できるようになる
|
7週 |
アルゴリズムにおける基本概念(再帰1) |
再帰を理解し,プログラム作成において,最適のデータ構造を選択できるようになる
|
8週 |
アルゴリズムにおける基本概念(再帰2) |
再帰を理解し,プログラム作成において,最適のデータ構造を選択できるようになる
|
2ndQ |
9週 |
前期中間試験 |
|
10週 |
前期中間試験の解答と解説 データの探索(2 分探索) |
2分探索アルゴリズムを理解する
|
11週 |
データの探索(ハッシュ法) |
ハッシュ法による探索アルゴリズムを理解する
|
12週 |
ソートアルゴリズム(挿入ソート) |
挿入ソートアルゴリズムを通して,アルゴリズムの考え方,コーディング法を習得する
|
13週 |
ソートアルゴリズム(ヒープソート) |
ヒープソートアルゴリズムを通して,アルゴリズムの考え方,コーディング法を習得する
|
14週 |
ソートアルゴリズム(クイックソート) |
クイックソートアルゴリズムを通して,アルゴリズムの考え方,コーディング法を習得する
|
15週 |
前期期末試験 |
|
16週 |
前期期末試験の解答と解説 |
|
後期 |
3rdQ |
1週 |
設計手法 1(分割統治法) |
設計手法(分割統治法)について理解する
|
2週 |
設計手法 2(グリーディ法)
|
設計手法(グリーディ法について理解する
|
3週 |
設計手法 3(動的計画法) |
設計手法(動的計画法) について理解する
|
4週 |
設計手法4(バックトラック) |
設計手法(バックトラック)について理解する
|
5週 |
設計手法5(分枝限定) |
設計手法(分枝限定について理解する
|
6週 |
グラフアルゴリズム |
計算機上でのグラフ表現を習得し,グラフアルゴリズムの基本を理解する
|
7週 |
グラフアルゴリズム(最短経路問題) |
最短経路問題のグラフアルゴリズム本を理解する
|
8週 |
後期中間試験 |
|
4thQ |
9週 |
後期中間試験の解答と解説 多項式と行列(多項式の計 算) |
コンピュータシミュレーションに必要な多項式演算を理解する
|
10週 |
多項式と行列(行列式の計 算) |
コンピュータシミュレーションに必要な行列に関する演算を理解する
|
11週 |
文字列照合アルゴリズム(基本的なアルゴリズム ) |
文章中から,任意の文字列を探索する文字列探索アルゴリズムを理解する
|
12週 |
文字列照合アルゴリズム(ボイヤムーア法) |
文章中から,ボイヤムーア法による文字列探索アルゴリズムを理解する
|
13週 |
文字列照合アルゴリズム(その他) |
文章中から,任意の文字列を探索する文字列探索アルゴリズムを理解する
|
14週 |
アルゴリズムの限界(問題のクラス) |
ある種の問題の本質的な計算困難さについて理解する
|
15週 |
後期期末試験 |
|
16週 |
後期期末試験の解答と解説 |
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
評価割合
| 試験 | 発表 | 相互評価 | 態度 | ポートフォリオ | その他 | 合計 |
総合評価割合 | 80 | 0 | 0 | 0 | 20 | 0 | 100 |
基礎的能力 | 20 | 0 | 0 | 0 | 5 | 0 | 25 |
専門的能力 | 40 | 0 | 0 | 0 | 10 | 0 | 50 |
分野横断的能力 | 20 | 0 | 0 | 0 | 5 | 0 | 25 |