データ構造とアルゴリズム
 Data Structures and Algorithms
 担当教員:小山 明夫(KOYAMA Akio)
 担当教員の所属:理工学研究科
 開講学年:2年  開講学期:後期  単位数:2単位  開講形態:講義
 開講対象:情報科学科  科目区分:専門科目・必修 
【授業の目的】
各種のデータ構造とそれらに関連する基本的なアルゴリズムについて学習する.

【授業の到達目標】
(a)各種のデータ構造(線形構造、木構造、グラフ構造)を理解する
(b)基本的な探索法(縦型探索法、横型探索法)を理解する
(c)文字列照合の代表的なアルゴリズム(KMP法)を理解する
(d)グラフの最短路問題の代表的なアルゴリズム(ダイクストラ法)を理解する
(e)解探索の代表的なアルゴリズム(Aアルゴリズム)を理解する
(f)データ整列の代表的なアルゴリズム(ヒープソート法,クイックソート法)を理解する
(g)データ探索の代表的なアルゴリズム(ハッシュ法、ニ分探索木法)を理解する

【授業概要(キーワード)】
データ構造とアルゴリズムは,プログラムを作る上で必ず学ばなければならない基礎の一つであり,少しでも本格的な良いプログラムを作ろうと思えば,データ構造とアルゴリズムに関する知識が欠かせない.このようなプログラミングの基礎となる,基本的な種々のデータ構造とそれらに関連する基本的なアルゴリズムを解説する.
(線形構造,木構造,グラフ構造,スタックと待ち行列,文字列照合,グラフの最短路問題,解の探索,データ整列,データ探索)

【科目の位置付け】
本授業の基礎となる科目:計算機基礎
本授業と関連が深い科目:プログラミング言語,データベース論,プログラミング演習,計算機工学演習
情報科学科の学習・教育目標の(B)情報基礎力に対応する.

【授業計画】
・授業の方法
講義形式で行う.毎回授業終了前の15分~20分間でその時間内に学んだ内容の演習問題を解いてもらう.
・日程
第1回 ガイダンス,データ構造とアルゴリズムの基礎  
第2回 線形構造  第3回 スタックと待ち行列,基本的な探索法  
第4回 文字列照合(単純照合法、KMP法)  第5回 文字列照合(KMP法) 
第6回 木構造  第7回 グラフ構造  
第8回 中間試験と解説
第9回 グラフの最短路問題(ダイクストラ法など) 
第10回 解の探索(Aアルゴリズムなど)
第11回データ整列(ヒープソート法など) 
第12回 データ整列(クイックソート法など)
第13回 データ探索(ハッシュ法など) 
第14回 データ探索(ニ分探索木法など) 
第15回 定期試験と解説

【学習の方法】
・受講のあり方
欠席や遅刻をすると授業内容が分からなくなるので必ず遅刻せずに出席すること.
私語など他の受講生の迷惑となる行為は行わないこと.受け身にならず積極的な受講を期待する.
・授業時間外学習へのアドバイス
予習として,テキストの該当箇所を前もって読んでくるとともに疑問点などをノートに書きだしてくる.
復習として,演習問題をもう一度解いてみるとともに講義で出てきたアルゴリズムを実際にC言語を用いてプログラミングするのが望ましい.

【成績の評価】
・基準
総合点で60点以上を合格とする.
・方法
中間試験(50点),定期試験(50点)の配点で評価する.

【テキスト・参考書】
自作のテキストを生協で販売するので1回目の講義前に購入すること.
参考書
1. データ構造とアルゴリズム、斎藤信男・西原清一 著、コロナ社、2800円(1998)
2. Cで学ぶデータ構造とアルゴリズム、西原清一 著、オーム社、2600円(2008)
3. アルゴリズムとデータ構造、原 隆浩 他著、共立出版、2400円(2012)

【その他】
・オフィス・アワー
毎週月曜日 16:00~17:30、相談場所:工学部8号館 8-301号室

50302600-2017-05-52581