授業のねらい |
ソフトウェアの効率を安全性を考える上で、ソフトウェアで扱われるデータの構造や、 それを扱うための処理の具体的手順(アルゴリズム)は非常に重要な課題である。 ソフトウェアが扱うデータの構造や、実行される環境によって、それに適した アルゴリズムは大きく異なってくる。 この授業では、プログラムが扱うデータがメモリ上でどのように表現されているかを 理解し、一般的なデータ構造と、それを扱うための実用的で基本的なアルゴリズムに ついて学ぶ。 また、アルゴリズムを評価するうえでの一つの指標となる、計算量の考え方も理解する。
|
|
授業の目標 |
1. | データ構造について理解し,広くデータの取り扱いに応用できるようになる. | 2. | プログラム言語に依存しない一般的概念としてアルゴリズムについて理解する. | 3. | 講義で扱う基本的なアルゴリズムについて,その計算量や設計などを理解する. |
|
授業計画 |
第1週 | アルゴリズムとデータ構造入門 | 第2週 | アルゴリズムと計算量(1) ユークリッドの互除法 | 第3週 | アルゴリズムと計算量(2) 基本的な探索アルゴリズム | 第4週 | 配列を使ったデータ構造(1) ハッシュ法 | 第5週 | 配列を使ったデータ構造(2) スタック構造とキュー構造 | 第6週 | 連結リスト構造(1) | 第7週 | 連結リスト構造(2) | 第8週 | 木構造とグラフ | 第9週 | 探索木(1) | 第10週 | 探索木(2) | 第11週 | 探索木(3) | 第12週 | 整列法(1)単純な整列アルゴリズム | 第13週 | 整列法(2)高速な整列アルゴリズム | 第14週 | 整列法(3)別アプローチによる高速整列法 | 第15週 | 総復習演習 |
|
教科書及び教材 |
近藤嘉雪「Cプログラムのためのアルゴリズムとデータ構造」ソフトバンク社(定価2700円+税)
本講義では言語に依存しないアルゴリズムを中心に話をするため教科書はあまり利用しませんが、この先の実験・演習でC言語を使ったプログラムを作成して行く上で、本講義の内容をそれらに生かすために非常に役に立つテキストです。ぜひ購入して各自で自習してください。 |
|
参考書 |
平田富夫(著)アルゴリズムとデータ構造 森北出版 定価2200円+税
上記教科書は、実際のプログラムが多く収録されている実用書ですが、 こちらはデータ構造とアルゴリズムをより理論的に取り上げている一冊です。学問として興味がある方はぜひ一読することを勧めます。 |
|
成績評価方法 |
定期試験で成績を評価する。 不合格者に対して再試験を1度に限り実施する。
|
|
履修条件等 |
ごく簡単なCプログラミングを習得していることが望ましい。 |
|
教員からのメッセージ |
この講義は、これから先の実験・演習、卒業研究、及びソフトウェアの開発の道に進むことを希望する者は社会に出てからも、必要となる重要な内容を含んでいます。 ソフトウェアを自分で作り出して行く上で、アルゴリズムとデータ構造の基本を知っていることは非常に重要で必要不可欠です。 しっかりとこの講義でそれらを習得してこれからに生かせるようにしてください。 |
|
その他 |
|