- 学部・研究科
Faculty/Graduate School - 総情
- 時間割コード
Course Code - 70460
- 科目名
Course title
サブテーマ
Subtitle - アルゴリズム解析・設計
<C> - 授業形態/単位
Term/Credits - クラス
Class -
- 秋/2
- 担任者名
Instructor - 堀口 由貴男
- 曜限
Day/Period - 木4
- 授業概要
Course Description
到達目標
Course Objectives -
授業種別 / Teaching Types
講義(対面型)
言語 / Language
日本語(Japanese)
授業概要 / Course Description
アルゴリズムとは有限時間で問題を解くための一連の手順であり、明確に定義され順序づけられた有限個の規則の集合で定義される。これをコンピュータが解釈できる言語形式に変換したものがプログラムである。問題が与えられたとき、それを解く手順は一通りとは限らない。同じように正しい答えが出せても効率よく解けるアルゴリズムもあれば、効率の悪いアルゴリズムもある。本科目では、整列や探索等の基本的なアルゴリズムとそれらが扱うデータ構造について詳説するとともに、よりよいアルゴリズムを作成するための設計技法(全探索、二分探索、再帰、メモ化、分割統治法、貪欲法,動的計画法)について講義する。
学位授与方針との関係 / Related Diploma Policy
(総合情報学部)
1.知識・技能
2.思考力・判断力・表現力等の能力
到達目標 / Course Objectives
①知識・技能の観点
・基本的なアルゴリズムとデータ構造を理解し、それらの特徴を説明できる。
②思考力・判断力・表現力等の能力の観点
・基本的なアルゴリズムを解析、設計できる。
③主体的な態度の観点
・理解が不十分な点についてを自ら復習し、理解度を高めることができる。授業手法 / Teaching Methods
・教員による資料等を用いた説明や課題等へのフィードバック
- 授業計画
Course Content -
授業計画 / Course Content
第1回 アルゴリズムの基本
第2回 アルゴリズムの計算量
第3回 探索アルゴリズム
第4回 配列と連結リストとハッシュ
第5回 スタックとキュー
第6回 再帰的アルゴリズム1
第7回 再帰的アルゴリズム2
第8回 整列アルゴリズム1
第9回 整列アルゴリズム2
第10回 整列アルゴリズム3
第11回 整列アルゴリズム4
第12回 木
第13回 グラフ
第14回 動的計画法
第15回 まとめ授業時間外学習 / Expected work outside of class
本授業では、毎回の授業で⼩課題を課す。期限までに関大 LMS に提出すること。課題にかかる時間は 30 分程度。
- 成績評価の方法・基準・評価
Grading Policies /
Evaluation Criteria -
方法 / Grading Policies
定期試験を行わず、平常試験(小テスト・レポート等)で総合評価する。
授業各回の⼩課題(50%)、中間および期末課題(50%)基準・評価 / Evaluation Criteria・Assessment Policy
①知識・技能の観点
・基本的なアルゴリズムやデータ構造とそれらの特徴を理解しているかを評価する。
②思考⼒・判断⼒・表現⼒等の能⼒の観点
・アルゴリズムを解析、設計できるかを評価する。
- 教科書
Textbooks 大槻兼資, 秋葉拓哉 問題解決力を鍛える!アルゴリズムとデータ構造 講談社 978-4065128442
-
参考書
References 柴田望洋 新・明解C言語で学ぶアルゴリズムとデータ構造 SBクリエイティブ 978-4797390520
T. コルメン (著), R. リベスト (著), C. シュタイン (著), C. ライザーソン (著), 浅野哲夫ほか (訳) アルゴリズムイントロダクション 第3版 第1巻: 基礎・ソート・データ構造・数学 近代科学社 978-4764904064
T. コルメン (著), R. リベスト (著), C. シュタイン (著), C. ライザーソン (著), 浅野哲夫ほか (訳) アルゴリズムイントロダクション 第3版 第2巻: 高度な設計と解析手法・高度なデータ構造・グラフアルゴリズム 近代科学社 978-4764904071
伊藤静香 アルゴリズムを、はじめよう インプレス 978-4844332015
- フィードバックの方法
Feedback Method 授業中に⼩課題の解説を⾏う。
- 担任者への問合せ方法
Instructor Contact 授業中に質問するか、関⼤ LMS のメッセージ機能で連絡する。
- 備考
Other Comments 1年次科⽬ 「プログラミング⼊⾨」もしくは「プログラミング基礎実習」の知識を前提とする。
アルゴリズムの説明は擬似言語(授業内で紹介)を用いて行われる.理解を補助するサンプルコードは,担任者提供のものは Python で,教科書のものは C++ で記述されている。