I 計算機を使って問題を効率的に解く際に必要となる基本アルゴリズムと,その実現に適したデータ構造について述べる。
II アルゴリズムとは何か,アルゴリズムの計算量,アルゴリズムの基本的設計法(二分探索法,分割統括法,動的計画法,乱択法),基本的データ構造(線形リスト,ヒープ,二分探索木)など。
よいソフトウェアを作成するためのプログラミング技術の基礎として,アルゴリズムの基本と,その実現に適した情報表現法について述べる.C言語によるプログラミングの入門ならびに実習も行う.
1週目:アルゴリズムとは?計算量とは?二分探索法を例に
2週目:再帰によるアルゴリズム設計:二分探索法を例に
3週目:分割統治法:マージソートを例に,C入門
4週目:オーダー記法
5週目:動的計画法:入門
6週目:動的計画法:解探索法
7週目:乱択アルゴリズム
8週目:ヒープ
9週目:構造型データ構造とポインタ
10週目:ポインタのプログラミング
11週目:ポインタの応用:探索木の構成
12週目:著名なアルゴリズム#1
13週目:著名なアルゴリズム#2
14週目:授業のまとめ
(参考書)
1.茨木俊秀,Cによるアルゴリズムとデータ構造,昭晃堂
2.T. Cormen, C. Leiserson, and R. Rivest(浅野 哲夫 他訳),アルゴリズム・イントロダクション(第1巻),近代科学社 1990.
3.T. Cormen, C. Leiserson, and R. Rivest,and C.Stein, Introduction to Algorithms(2nd edition),MIT Press,2001.
とくになし.情報科学科所属者以外は担当教員に演習方法等の事前相談をすること.
宿題(6回程度)全体での比重は10%
プログラミング小課題(4回程度;ほぼ演習時間中に完成できる程度の問題)全体での比重は10%
課題レポート(2回;アルゴリズムの解説,解析,場合によってはプログラムも見たうえで,A~Dで判定)全体での比重は45%
中間試験(アルゴリズムの設計法や解析法について)全体での比重は20%
watanabe(at)is.titech.ac.jp
授業のある火曜日12時~13時(それ以外はメールで予約を取ること)