<概要/Course Content Summary>
本クラスは,インターネット講義のクラスである.内容は教室講義のクラスと全く同じである.本講義では,プログラミングの初歩を学習した者に対して,より良いプログラムを作成するための必須の内容であるアルゴリズムとデータ構造についての初歩的な講義を行う。プログラミングとは現実の世界の問題をコンピュータを使って解くことである。従って現実の世界の様々な事物をコンピュータが理解できる表現に直す必要がある。データ構造とは,現実の問題をコンピューターの中でどのように表現するかという技法であり,アルゴリズムとは典型的な問題の解決法である。本講義では膨大な内容を含むアルゴリズムとデータ構造のうち,現実の世界を表現するときによく使われる配列,リスト,ツリーというデータ構造,およびソート(並べ替え)とサーチ(検索)を中心とし,関連する内容について講義する。またアルゴリズムを考える時に重要な計算の手間(計算の複雑さ)についても講義を行う.プログラミング言語JavaもしくはCを理解していることを前提とする.
<到達目標/Goals,Aims>
(1) 基本的なアルゴリズムとデータ構造の技法を身につけて,それを必要なプログラミング言語で実装できるようになる. (2) 既存のアルゴリズムとデータ構造を利用する場合には,その適・不適を適切に判断できるようになる.
<授業計画/Schedule>
(実施回/ Week)
|
(内容/ Contents)
|
(授業時間外の学習/ Assignments)
|
(実施回/ Week)
1
|
(内容/ Contents)
導入,アルゴリズムとは何か?
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
2
|
(内容/ Contents)
配列
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
3
|
(内容/ Contents)
簡単なソーティング
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
4
|
(内容/ Contents)
スタックとキュー
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
5
|
(内容/ Contents)
連結リスト
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
6
|
(内容/ Contents)
再帰アルゴリズム
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
7
|
(内容/ Contents)
高度なソーティング
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
8
|
(内容/ Contents)
中間まとめ
|
(授業時間外の学習/ Assignments)
中間まとめの復習
|
(実施回/ Week)
9
|
(内容/ Contents)
二分木
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
10
|
(内容/ Contents)
赤黒木
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
11
|
(内容/ Contents)
2-3-4木と外部記憶装置向けアルゴリズム
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
12
|
(内容/ Contents)
ハッシュ表
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
13
|
(内容/ Contents)
ヒープ
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
14
|
(内容/ Contents)
グラフと重み付きグラフ
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
(実施回/ Week)
15
|
(内容/ Contents)
まとめと今後の展望
|
(授業時間外の学習/ Assignments)
当該講義の復習,次回講義の予習
|
<成績評価基準/Evaluation Criteria>
中間筆記試験
|
50%
|
中間試験までの講義内容が理解できているかどうか.
|
期末筆記試験
|
50%
|
講義全般の内容が理解できているかどうか.中間試験の範囲も含む.
|
中間試験は,教室クラスとインターネットクラスの受講生の全員が受講できる日時を設定する.具体的な日時は講義の中で述べる.
<成績評価結果/Results of assessment>
成績評価の見方について/Notes for assessment
登録者数 |
成績評価(%) |
評点 平均値 |
備考
|
A |
B |
C |
D |
F |
他 |
82 |
30.5 |
19.5 |
11.0 |
18.3 |
20.7 |
0.0 |
2.2 |
* |
<テキスト/Textbook>
講義内容はどのようなテキストにも取り上げられている内容であるので,特定の教科書は指定しない.自分の気に入った書籍を選べば良い.
<参考文献/Reference Book>
この分野の書籍はたくさん出ています.内容は大きく3つに分かれます.1つ目は理論的な解析を中心に据えたもの,2つ目は個々のアルゴリズムについて説明しているもの,3つ目は辞典的な使い方をするものです.このうちこの講義の参考書としては,2つ目のカテゴリーの本が良いと思います.各カテゴリーの中では,個々の書籍の内容はそれほど差異はありません.ですから自分の気に入ったものを選んでもらったら結構です.できればプログラムのソースコードが掲載されているものの方が,いろいろな意味で便利であるとは思います.
|