授業科目名(和文)
[Course]
データ構造とアルゴリズム (アルゴリズムとデータ構造)
授業科目名(英文)
[Course]
Data Structures and Algorithms (Algorithms and Data Structures)
学部(研究科)
[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)配列や文字列の探索,整列,経路探索の手法と計算量を理解する
履修上の注意
[Notes]
1年次でプログラミング言語,ソフトウエア関連の講義・演習を履修していることが望ましい.
「プログラミング技法」と相補的な内容になっている(重要な項目については角度を変えて双方で扱う)
授業計画とスケジュール
[Course schedule]
1. アルゴリズムとは?
2. アルゴリズムの表現
3. データ構造:連結リストと木
4. 配列の探索(1):線形探索,二分探索
5. 計算量(時間計算量)
6. 配列の探索(2):ハッシュ
7. 復習(配列の探索)
8. 整列(1):バブルソート,挿入ソート
9. 整列(2):クイックソート
10. 整列(3):マージソート
11. 整列(4):ヒープソート
12. 経路探索:dijkstra法
13. 文字列の探索:Boyer-Moore法
14.アルゴリズムの限界:P,NP
15. まとめ
成績評価方法と基準
[Grading policy (Evaluation)]
期末試験,および授業中に行う,演習,ミニテスト,受講態度,により総合的に評価する
教科書
[Textbook]
教科書:なし.講義で使うプレゼン資料を配布する.
参考書:
・近藤嘉雪,”定本 Cプログラマのためのアルゴリズムとデータ構造”,ソフトバンククリエイティブ,1998 

その他,書名に「アルゴリズムとデータ構造」(あるいは「データ構造とアルゴリズム」)ということばを含むものなら何でもよい.自分のテイストに合ったものを見つけて学習して欲しい.少し変わったものとして,

・結城浩,”数学ガール(乱択アルゴリズム)”,ソフトバンククリエイティブ,2011

は対話調でアルゴリズムや計算量の考え方が丁寧に書かれている(やさしく書かれているがレベルは高い).本講義と関連深いのは特に1-3,6章.
自主学習ガイド及び
キーワード
[Self learning]
資料は http://iis.cse.oka-pu.ac.jp/courses/dsa/ で公開する(アクセス制限あり)
Cやpython, Perlなどを用いて実際にプログラムを作成すること.より理解が深まる.
開講年度
[Year of the course]
25