授業科目名(和文) [Course] |
データ構造とアルゴリズム |
授業科目名(英文) [Course] |
Data Structures and Algorithms |
学部(研究科) [Faculty] |
情報工学部 |
学科(専攻) [Department] |
スポーツシステム工学科 |
担当教員(○:代表教員) [Principle Instructor(○) and Instructors] |
○菊井 玄一郎 自室番号(2606)、電子メール(kikui**cse.oka-pu.ac.jp) ※利用の際は,** を @に置き換えてください |
単位数 [Point(Credit)] |
2単位 |
対象学生 [Eligible students] |
2年次生 |
授業概略と目標 [Course description and Objects] |
プログラムの骨格であるデータ構造とアルゴリズムの基礎を習得する.本講義では,Cなど特定のプログラミング言語への依存を極力避けて,プログラムを作成する上で基本となる考え方について講述する. |
到達目標 [Learning Goal] |
1)計算量,計算の複雑さの考え方を理解する 2)基本データ構造(配列,連結リスト,スタックなど)を理解する 3)配列や文字列の探索,ソートの手法と計算量を理解する 4)多項式や行列の計算手法を理解する 5)アルゴリズムの設計手法(根底にある考え方)を理解する |
履修上の注意 [Notes] |
1年次でプログラミング言語,ソフトウエア関連の授業,演習を履修していることが望ましい. 「プログラミング技法」と相補的な内容になっている(重要な項目については角度を変えて双方で扱う) |
授業計画とスケジュール [Course schedule] |
1:アルゴリズムの基礎(評価基準,計算量,記法) 2:基本データ構造(配列,連結リスト,スタック,キュー) 3:アルゴリズムにおける基本概念(木,再帰) 4:配列データの探索1(線形探索,二分探索) 5:配列データの探索2(ハッシュ,辞書の探索) 6:ソート1(挿入ソート,ヒープソート) 7:ソート2(クイックソート,ソートアルゴリズムの比較) 8:復習?演習 9:アルゴリズムの設計手法1(分割統治法) 10:アルゴリズムの設計手法2(グリーディー法,動的計画法) 11:グラフアルゴリズム(のさわり)(最短経路(ダイクストラ)) 12:多項式と行列(多項式の計算,行列積の計算) 13:文字列の探索(BM法) 14:アルゴリズムの限界(問題のクラス,解くことのできない問題) 15:復習?演習 |
成績評価方法と基準 [Grading policy (Evaluation)] |
期末試験,および授業中に行う,演習,ミニテスト,受講態度,により総合的に評価する |
教科書 [Textbook] |
教科書:藤原暁宏:アルゴリズムとデータ構造,情報工学レクチャーシリーズ,森北出版,2006 なお,適宜補足資料を配布する. 資料は http://iis.cse.oka-pu.ac.jp/int/dsa2012/ を参照のこと(アクセス制限あり) |
自主学習ガイド及び キーワード [Self learning] |
各回の終了時に次回の講義範囲を説明するので予習しておくこと.Cやpython, Perlなどを用いて実際にプログラムを作成することにより理解が深まる. |
開講年度 [Year of the course] |
24 |