授業科目名(和文)
[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]
プログラムの骨格であるデータ構造とアルゴリズムの基礎を習得する.ここで学習する内容はプログラムを作成における基本中の基本である.
到達目標
[Learning Goal]
1)計算量,計算の複雑さの考え方を理解する
2)基本データ構造(配列,連結リスト,スタックなど)を理解する
3)配列や文字列の探索,整列,経路探索の手法と計算量を理解する
履修上の注意
[Notes]
1年次でプログラミング言語,ソフトウエア演習等のソフトウエア基礎に関する講義・演習を履修していることが望ましい.
与えられた項目について必ず予習をしてくること.授業では理解内容の確認を行う.
授業計画とスケジュール
[Course schedule]
各項目末尾の[]は対応する教科書の章を表す
1. アルゴリズムとは?[1]
2. 線形探索とその計算量[2.1, 2.2.1]
3. 二分探索とその計算量[2.2.2]
4. データ構造:配列[4]([3]は自習)
5. データ構造:連結リスト[5.1]
6. ハッシュ法[8]
7. 復習(リストの探索)
8. 整列(1):整列とは,バブルソート,挿入ソート[11][12(12.3を除く)]
9. 整列(2):クイックソート[14]
10. 整列(3):マージソート[15]
11. 整列(4):ヒープソート[16]
12. 文字列の探索:単純法,Boyer-Moore法[18.1-3, 18.5]
13. 経路探索:dijkstra法[これは教科書にないので資料を配布します]
14. 乱択アルゴリズム[これも資料を配布します]
15. まとめ
成績評価方法と基準
[Grading policy (Evaluation)]
期末試験,および授業中に行う演習,ミニテスト,受講態度(発言)により総合的に評価する
教科書
[Textbook]
教科書:近藤嘉雪,”定本 Cプログラマのためのアルゴリズムとデータ構造”,ソフトバンククリエイティブ,1998 
参考書:
書名に「アルゴリズムとデータ構造」(あるいは「データ構造とアルゴリズム」)ということばを含むものなら何でもよい.自分の好みに合ったものを見つけて学習して欲しい.少し変わったものとして,
・結城浩,”数学ガール(乱択アルゴリズム)”,ソフトバンククリエイティブ,2011
は対話調でアルゴリズムや計算量の考え方が丁寧に書かれている(やさしく書かれているがレベルは高い).本講義と関連深いのは特に1-3,6章.
自主学習ガイド及び
キーワード
[Self learning]
・予習に必要な資料等は http://iis.cse.oka-pu.ac.jp/courses/dsa/ で公開する(学外からのアクセス制限あり)
・指示された予習を行うこと.
・実際にCプログラムを作成すること.より理解が深まる.
開講年度
[Year of the course]
27
資格等に関する事項 基本情報技術者,応用情報技術者のアルゴリズム部分の内容を含む