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

科目基礎情報

学校 鹿児島工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 データ構造とアルゴリズム
科目番号 0130 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 学修単位: 2
開設学科 情報工学科 対象学年 5
開設期 後期 週時間数 後期:2
教科書/教材 Pythonで体験してわかるアルゴリズムとデータ構造,西澤弘毅・森田光,近代科学社
担当教員 永岩 健一郎

到達目標

(1)アルゴリズム,計算量を説明できる
(2)データ構造を説明できる
(3)探索を説明できる
(4)ソートを説明できる

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1作成したプログラムについて,計算量の観点から評価できる。アルゴリズムとは何か説明できる。計算量を表現できる。アルゴリズムについて何も説明できない。計算量について何も説明できない。
評価項目2プログラムを作成するに当たり,適切なデータ構造を利用できる。基本的なデータ構造を説明できる。データ構造について何も説明できない。
評価項目3目的に従って,最適な探索方法を選択できる。各探索方法の特徴を説明できる。各探索方法を説明できない。
評価項目4目的に従った,適切なソートを利用できる。様々なソートを,基本操作により分類できる。ソートの名称,分類を説明できない。

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

本科(準学士課程)の学習・教育到達目標 3-c 説明 閉じる

教育方法等

概要:
データの表現手段(データ構造)と処理手順(アルゴリズム)を解説し,それらをプログラム言語で記述する手法を提示する。
授業の進め方・方法:
講義・演習形式の形態であるが,演習は基本的には自学自習の時間に割当てる。
注意点:
各項目について講義と演習を実施するので,3年次までに学習した情報処理Ⅰ,Ⅱ,Ⅲにおけるプログラミング言語でのプログラム作成方法と,文法等の理解は必要である。講義内容を理解するために,予習をしておくこと・また,講義終了後は復習としてサンプルプログラムの実行,演習問題等の課題に取り組むこと。1回の授業につき,自学自習(240分)が必要である。疑問点があれば,そのつど質問すること。

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 ガイダンス
第1章なぜアルゴリズムが重要か
2週 第2章アルゴリズムを表現する様々な方法
3週 第3章アルゴリズムを比べる方法 選択ソートを説明できる。
4週 第4章アルゴリズムを思いつく方法 挿入ソートを説明できる。
5週 第5章アルゴリズムを改良するコツ バブルソートを説明できる。
6週 第6章アルゴリズムを設計する方法 分割統治法を説明できる。
動的計画法を説明できる。
7週 第7章問題に適した設計法とは 最短経路の数え上げ問題を動的計画法を用いて解ける。
8週 第8章設計法を応用した並べ替え マージソートを説明できる。
アルゴリズムの計算量を説明できる。
4thQ
9週 第9章分割統治法によるソートの分類 クイックソートを説明できる。
各ソートを分割統治法により分類できる。
10週 第10章データ構造はなぜ重要か 線形探索を説明できる。
2分探索を説明できる。
2分探索木を説明できる。
11週 第11章データ構造に依存したアルゴリズム スタックを説明できる。
キューを説明できる。
深さ優先探索を説明できる。
幅優先探索を説明できる。
12週 第12章データ構造を応用した並べ替え ヒープを説明できる。
ヒープソートを説明できる。
13週 第13章データ構造の変更に応じた改良 ダイクストラ法で最短路の長さを求められる。
14週 Python演習 教科書の授業範囲内のPython演習を完了する。
15週 試験答案の返却・解説 各試験において間違えた部分を自分の課題として把握する(非評価項目)。
16週

評価割合

期末試験その他合計
総合評価割合5050100
基礎的能力000
専門的能力5050100
分野横断的能力000