アルゴリズムとデータ構造

科目基礎情報

学校 大分工業高等専門学校 開講年度 平成29年度 (2017年度)
授業科目 アルゴリズムとデータ構造
科目番号 10050 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 情報工学科 対象学年 4
開設期 通年 週時間数 2
教科書/教材 藤原暁宏 著「アルゴリズムとデータ構造(第 2 版)」森北出版
担当教員 石川 秀大,靏 浩二

到達目標

(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週 後期期末試験の解答と解説

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合80000200100
基礎的能力200005025
専門的能力4000010050
分野横断的能力200005025