データ構造アルゴリズム

科目基礎情報

学校 木更津工業高等専門学校 開講年度 平成28年度 (2016年度)
授業科目 データ構造アルゴリズム
科目番号 0020 科目区分 専門 / 必修
授業形態 演習 単位の種別と単位数 履修単位: 2
開設学科 情報工学科 対象学年 3
開設期 通年 週時間数 2
教科書/教材 近藤 嘉雪著『定本 Cプログラマのためのアルゴリズムとデータ構造』SOFTBANK BOOKS、1998年、2835円(税込)
担当教員 米村 恵一

到達目標

様々なデータ構造を理解する。
様々なアルゴリズムを理解する。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1様々なデータ構造を十分に理解している。様々なデータ構造を理解している。様々なデータ構造を理解していない。
評価項目2様々なアルゴリズムを十分に理解している。様々なアルゴリズムを理解している。様々なアルゴリズムを理解していない。
評価項目3計算量を十分に理解している。計算量を理解している。計算量を理解していない。

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

教育方法等

概要:
基本的なデータ構造とアルゴリズムの理解を通して、プログラミングスキルの向上を目指す。同時に計算量についても理解を深める。
授業の進め方・方法:
科目「プログラミング演習Ⅱ」と連動しており、本授業では講義メインにて進める。本講義にて確認したデータ構造とアルゴリズムを科目「プログラミング演習Ⅱ」にて作成するが、本講義がプログラミング演習の時間になる可能性もあることを考慮しておいて欲しい。
注意点:
中間試験・定期試験では、提示されたプログラムを読んで、どのようなアルゴリズムとデータ構造を基軸としたプログラムであるかを理解し、全体の動きを理解する能力が必要である。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 構造体の復習と連結リスト構造の理解1 構造体と連結リスト構造が理解できる
2週 構造体の復習と連結リスト構造の理解2 構造体と連結リスト構造が理解できる
3週 構造体の復習と連結リスト構造の理解3 構造体と連結リスト構造が理解できる
4週 スタック1 スタックが理解できる
5週 スタック2 スタックの応用事例が理解できる
6週 キュー1 キューが理解できる
7週 キュー2 キューの応用事例が理解できる
8週 中間試験 リスト、スタック、キューが理解できる
2ndQ
9週 中間試験を振り返る リスト、スタック、キューの理解を深める
10週 循環リスト、双方向リスト 循環リスト、双方向リストが理解できる
11週 双方向リスト 双方向リストが理解できる
12週 基本的なソートとそのオーダー 基本的なソートとオーダーが理解できる
13週 基本的な探索とそのオーダー 基本的な探索とオーダーが理解できる
14週 総合的な課題に取り組む1 総合的な課題に取り組み理解を深める
15週 総合的な課題に取り組む2 総合的な課題に取り組み理解を深める
16週
後期
3rdQ
1週 再帰 再帰が理解できる
2週 二分探索木1 二分探索木が理解できる
3週 二分探索木2 二分探索木が理解できる
4週 二分探索木3 二分探索木が理解できる
5週 クイックソート クイックソートが理解できる
6週 ハッシュ法1 ハッシュ法が理解できる
7週 ハッシュ法2 ハッシュ法が理解できる
8週 中間試験 再帰、二分探索木、クイックソート、ハッシュ法が理解できる
4thQ
9週 中間試験を振り返る 再帰、二分探索木、クイックソート、ハッシュ法の理解を深める
10週 ハッシュ法3 ハッシュ法が理解できる
11週 文字列探索 文字列探索が理解できる
12週 ビンソート、分布数え上げソート ビンソート、分布数え上げソートが理解できる
13週 基数ソート 基数ソートが理解できる
14週 総合的な課題に取り組む3 総合的な課題に取り組み理解を深める
15週 総合的な課題に取り組む4 総合的な課題に取り組み理解を深める
16週

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系プログラミング変数とデータ型の概念を説明できる。3
代入や演算子の概念を理解し、式を記述できる。3
制御構造の概念を理解し、条件分岐や反復処理を記述できる。4
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4
与えられた簡単な問題に対して、それを解決するためのソースプログラムを記述できる。6
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。3
ソフトウェアアルゴリズムの概念を説明できる。5
与えられたアルゴリズムが問題を解決していく過程を説明できる。5
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを理解している。5
時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。3
整列、探索など、基本的なアルゴリズムについて説明できる。5
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを理解している。5
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを理解している。4
リスト構造、スタック、キューなどの基本的なデータ構造の概念と操作を説明できる。4
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。3
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。3

評価割合

試験課題相互評価態度ポートフォリオその他合計
総合評価割合80200000100
基礎的能力6015000075
専門的能力205000025
分野横断的能力0000000