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

科目基礎情報

学校 宇部工業高等専門学校 開講年度 平成30年度 (2018年度)
授業科目 データ構造とアルゴリズムⅡ
科目番号 0068 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 制御情報工学科 対象学年 4
開設期 前期 週時間数 2
教科書/教材 「新・明解 C言語で学ぶアルゴリズムとデータ構造」柴田望洋(ソフトバンクパブリッシング)
担当教員 内堀 晃彦

到達目標

(1)計算量の概念を説明できる。(2)様々なデータ構造を用いた探索の計算量について説明できる。(3)様々な整列のアルゴリズムとその計算量について説明できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安最低限の到達レベルの目安(可)未到達レベルの目安
評価項目1様々なアルゴリズムの計算量を比較・評価し,ソフトウェアを設計できる。複雑なアルゴリズムの計算量を比較・評価できる。基本的なアルゴリズムの計算量を比較・評価できる。基本的なアルゴリズムの計算量を比較・評価できない。
評価項目2様々なデータ構造を用いた探索の計算量を比較・評価し,ソフトウェアを設計できる。複雑なデータ構造を用いた探索の計算量を比較・評価できる。基本的なデータ構造を用いた探索の計算量を比較・評価できる。基本的なデータ構造を用いた探索の計算量を比較・評価できない。
評価項目3様々な整列の計算量を比較・評価し,ソフトウェアを設計できる。.複雑な整列の計算量を比較・評価できる。基本的な整列の計算量を比較・評価できる。基本的な整列の計算量を比較・評価できない。

学科の到達目標項目との関係

教育方法等

概要:
第2学期開講
様々な整列とデータ構造を用いた探索のアルゴリズムと,その計算量について学び,ソフトウェア設計に活かせるようになることを目標とする。
授業の進め方・方法:
配布プリントに基づいて授業を進める.C言語の基本的な文法知識が必須である.C言語の教科書を携帯することを助言する.各項目ごとにプログラミングの演習課題を課す.演習課題を行うことにより知識の定着を図る.データ構造・アルゴリズムを理解するためには,図や模式図等を用い,その状況や動作を説明できることが重要である.
注意点:
データ構造とアルゴリズムは,プログラムを作成する際には是非とも習得すべき学問である.なぜなら,プログラムはデータ構造とアルゴリズムから構成されているからである.より良いプログラムは,データ構造とアルゴリズムを同時に考慮することにより作成される.データ構造とアルゴリズムを理解すると,より良いプログラムを作成する能力が身に付く.また,プログラミング能力を伸ばすためにも必須である.

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 計算量 基本的なアルゴリズムとフローチャートについて理解できる。
2週 基本的なデータ構造 線形リスト,二分木,ハッシュテーブル等の基本的なデータ構造について理解できる。
3週 線形リスト 線形リストの構造とそれを用いた線形探索のアルゴリズムと計算量について理解する。
4週 線形リスト演習 線形リストを用いた線形探索を用いたソフトウェアを設計できる。
5週 二分木 二分木を用いた線形探索のアルゴリズムと計算量について理解する。
6週 二分木演習 二分木の構造とそれを用いた線形探索を用いたソフトウェアを設計できる。
7週 ハッシュ表 ハッシュ表を用いた線形探索のアルゴリズムと計算量について理解する。
8週 ハッシュ表演習 ハッシュ表の構造とそれを用いた線形探索を用いたソフトウェアを設計できる。
2ndQ
9週 中間まとめ
10週 基本的な整列のアルゴリズム バブルソート,挿入ソート,クィックソート等の基本的な整列アルゴリズムについて理解できる。
11週 バブルソート バブルソートのアルゴリズムと計算量について理解する。
12週 挿入ソート 挿入ソートのアルゴリズムと計算量について理解する。
13週 クィックソート クィックソートのアルゴリズムと計算量について理解する。
14週 アルゴリズムとデータ構造を意識したプログラム設計 同一の問題に対し,様々なアルゴリズムとデータ構造を用いてソフトウェアを設計できる。
15週 定期試験
16週 まとめ

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

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。4
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。4
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。4
専門的能力分野別の専門工学情報系分野ソフトウェアアルゴリズムの概念を説明できる。4
与えられたアルゴリズムが問題を解決していく過程を説明できる。4
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。4
整列、探索など、基本的なアルゴリズムについて説明できる。4
時間計算量によってアルゴリズムを比較・評価できることを説明できる。4
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。4
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。4
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。4
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。4
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。4
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。4
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。4

評価割合

期末試験小テストレポート合計
総合評価割合801010100
知識の基本的な理解507360
思考・推論・創造への適用力303740
汎用的技能0000
態度・志向性(人間力)0000
総合的な学習経験と創造的思考力0000