データ構造とアルゴリズム

第一回 (2012年9月21日)

アルゴリズムとデータ構造の概要と応用

http://www.sw.it.aoyama.ac.jp/2012/DA/lecture1.html

Martin J. Dürst

(テュールスト   マーティン   ヤコブ)

duerst@it.aoyama.ac.jp

O 棟 529号室

AGU

© 2008-12 Martin J. Dürst 青山学院大学

目次

自己紹介

授業の位置づけ

授業の進め方

成績評価方法

おおよその割合:

総合的な評価

アルゴリズムとデータ構造の魅力

授業の目的

を身につけること

データ構造の例: 連結リスト

(英語: linked list)

データ構造の概要

(英語: data structure)

二つの視点:

アルゴリズムの例: 辞典の探索

問題: 辞典や辞書で単語を探す

アルゴリズムの概要

(英語: algorithm)

要件:

  1. 明確な目的、結果 (問題を解く)
  2. 正確な仕様や定義 (プログラムか似たもの)
  3. 有限なステップ数で終了

アルゴリズムとプログラムの差

アルゴリズムの歴史

データ構造とアルゴリズムの関係

授業の日程

データ構造とアルゴリズムの日程

参考書 (どれか一冊を買って、授業の内容に合わせて読むことは強く推奨)

宿題 1: 膨大なデータ

提出: 来週の木曜日 (9月27日) 19時00分締切; O 棟 529号室の前の箱に提出; A4 一枚 (両面可) 厳守

(それぞれの問題で、想定の根拠となる理由、参考にした文献など必ず明記のこと。Wikipedia への参照の場合、URI のではなく IRI を使用のこと (例: http://ja.wikipedia.org/wiki/%E6%83%85%E5%A0%B1 のではなく http://ja.wikipedia.org/wiki/情報))

  1. 東京証券取引所の第一部の取引で、一株式会社の株が営業時間内に平均で 1分に一回売買されていると想定して、合計で年間に (一売買行為を一つの項目と考えるとき) 何項目ぐらいのデータが集まるかを、計算しなさい。
  2. Google (又は明記の上で他のサーチエンジン) が対応しているウェブページの数と平均のページごとのリンク数を調べ、ウェブ全体のおおよその合計のリンク数を計算しなさい。
  3. 問題 1 や 2 の結果よりも大きくて実際に計算機で扱えそうなデータ項目の量を考え、説明しなさい (他人と同じものの場合には減点の対象)。

 

宿題 2: アルゴリズムの表現方法

別紙「アルゴリズムの表現方法」のアルゴリズムの表現方法をよく見て、それぞれの方法の利点と欠点を考えなさい。

(提出不要)

宿題 3: Ruby のインストール

自分のノートパソコン (又は自宅のパソコン) に Ruby をインストール

インストール方法は主に二つ:

確認方法: Start Command Prompt with Ruby 又は Cygwin Bash Shell/Cygwin Terminal にて ruby -v を実行

インストールできない場合、次回授業の前日までに要相談

 

次回への準備