到達目標
1. アルゴリズムの概念が説明でき、整列、探索などの基本的なアルゴリズムが問題を解決してゆく過程を説明できる。
2. 同一の問題に対してその解決のためのアルゴリズムが複数存在することを説明でき、時間計算量や領域計算量によってアルゴリズムを比較・評価できることを説明できる。
3. 同一の問題に対してコンピュータ内部でのデータ表現方法は複数存在することを説明でき、データ構造に依存してアルゴリズムが変化しうることを説明できる。
4. リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明でき、実装することができる。
5. 離散数学に関する知識を利用したアルゴリズムの設計や解析ができる。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
基本的なアルゴリズムに関する説明・比較・評価 | 基本的なアルゴリズムについて説明できるとともに、それらを比較・評価できる | 基本的なアルゴリズムについて説明できる | 基本的なアルゴリズムについて説明できない |
基本的なデータ構造の概念と操作に関する説明・評価 | 基本的なデータ構造の概念と操作について説明できるとともに、その選択がアルゴリズムに与える影響について説明・評価できる | 基本的なデータ構造の概念と操作について説明できる | 基本的なデータ構造の概念と操作について説明できない |
データ構造とアルゴリズムの実装に関する説明・設計 | 基本的なデータ構造とアルゴリズムの実装方法を説明でき、それらを用いた設計ができる | 基本的なデータ構造とアルゴリズムの実装方法を説明できる | 基本的なデータ構造とアルゴリズムの実装方法を説明できない |
学科の到達目標項目との関係
教育方法等
概要:
アルゴリズムの設計と解析に必要なデータ構造とアルゴリズムの基礎について学ぶ。
授業の進め方・方法:
アルゴリズムとデータ構造の役割と基本を学びます。本科目で学習する内容は、より適切なプログラムを作るために必要な考え方ですので、本講義や演習から積極的に学びとってください。
注意点:
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
アルゴリズムの表現方法(1) |
フローチャートを理解し、アルゴリズムを実装できる
|
2週 |
アルゴリズムの表現方法(2) |
フローチャートで処理手順を表現できる
|
3週 |
アルゴリズムの計算量 |
時間計算量と領域計算量を理解する
|
4週 |
内部表現 |
数値や文字の表現方法、ビット演算について理解する
|
5週 |
配列 |
配列を用いたデータ構造を理解する
|
6週 |
整列(1) |
単純挿入法、ビンソートを理解する
|
7週 |
(中間試験) |
|
8週 |
整列(2) |
バブルソートを理解する
|
2ndQ |
9週 |
整列(3) |
クイックソートを理解する
|
10週 |
整列(4) |
マージソートを理解する
|
11週 |
整列(5) |
ヒープソートを理解する
|
12週 |
構造体とポインタ |
構造体とポインタを理解する
|
13週 |
様々なデータ構造(1) |
線形リストを理解する
|
14週 |
演習① |
線形リストのアルゴリズムを実装できる
|
15週 |
(期末試験) |
|
16週 |
総復習 |
|
後期 |
3rdQ |
1週 |
様々なデータ構造(2) |
スタックを理解する
|
2週 |
演習② |
スタックのアルゴリズムを実装できる
|
3週 |
様々なデータ構造(3) |
キューを理解する
|
4週 |
演習③ |
キューのアルゴリズムを実装できる
|
5週 |
探索(1) |
線形探索を理解し、アルゴリズムを実装できる
|
6週 |
探索(2) |
二分探索を理解し、アルゴリズムを実装できる
|
7週 |
(中間試験) |
|
8週 |
探索(3) |
ハッシュ法を理解する
|
4thQ |
9週 |
探索(4) |
深さ優先探索を理解する
|
10週 |
演習④ |
深さ優先探索のアルゴリズムを実装できる
|
11週 |
探索(5) |
幅優先探索を理解する
|
12週 |
演習⑤ |
幅優先探索のアルゴリズムを実装できる
|
13週 |
探索(6) |
ダイクストラ法を理解する
|
14週 |
探索(7) |
2分探索木を理解する
|
15週 |
(期末試験) |
|
16週 |
総復習 |
|
評価割合
| 試験 | 課題 | 合計 |
総合評価割合 | 80 | 20 | 100 |
基礎的能力 | 0 | 0 | 0 |
専門的能力 | 80 | 20 | 100 |
分野横断的能力 | 0 | 0 | 0 |