理工系教科書


教養としての          
コンピュータ・サイエンス

           渡辺 治 著

サイエンス社(価格 1550 円)


このページは上記の本のホームページです. (注:2003 年以降は,ほとんど更新していません.ご勘弁ください.)

Created by Osamu Watanabe.

主な更新記録:


  1. 本書の紹介
  2. 本書の使い方
  3. 演習用教材
  4. 訂正・よくある質問
  5. 関連のページ


1.本書の紹介

本書は, コンピュータ・サイエンスについての一般向け入門書です. コンピュータ・サイエンスはまだまだ若い分野です. しかし, 物理などと同じように重要な「基礎科学」となり得る分野です. コンピュータ・サイエンスは, 情報関係者だけでなく, 広く科学技術にたずさわる人々にとって, 教養として「学んでおいてよいこと」の一つになるでしょう. その教養の部分をお伝えするのがこの本です.

コンピュータは, いまや一部の専門家が使う魔法の道具ではありません. 多くの方々が, 日常的にコンピュータを使い, その便利さ,おもしろさを実感されていることと思います. それと同時に 「どうして・どうやってこんなことができるようになっているのだろう?」 と興味を持たれた方も多いでしょう. ひとことで言えば, コンピュータを動かし,おもしろいことをやらせているのはソフトウェアです. そして, そのソフトウェアの背後にあるのが, ソフトウェアを作成するための科学, コンピュータ・サイエンスです.

人はどうしても物に目がいってしまいます. コンピュータに対しても, 「どうなっているのだろう?」の疑問は, 大抵の場合, コンピュータの仕組み,ハードウェアの話に進んでいってしまいます. しかし, コンピュータにおいて大切なのはハードウェアだけではありません. 与えられたハードウェアをうまく生かすためのソフトウェアも重要なのです. しかも, よいソフトウェアを作るのはそう単純ではありません. よりよいソフトウェア作りを目指して, 多くの研究者が様々な経験や技術を積み重ねられてきました. その中から「計算」に対する科学が登場してきたのです. それがコンピュータ・サイエンスです.

ひとことで言ってしまうと, コンピュータ上で行われていることはすべて「計算」です. その「計算」と上手に付き合ったり, 「計算」をうまく制御するには, 「計算」が何者かを理解しなければなりません. そのための科学がコンピュータ・サイエンスなのです. ちょうど, 物理が「自然(現象)」を理解し, 「自然」と上手に付き合っていくための科学であるように. そんなコンピュータ・サイエンスの一端を, この本で体験してみて下さい.

【目次】

  1. 第1話:計算を分解してみよう
    1. データの基本単位
    2. アルゴリズムとプログラム
    3. アルゴリズムの基本要素
  2. 第2話:計算を組み立ててみよう
    1. アルゴリズムの良し悪しは天国と地獄の差
    2. 小さく見える差でも
    3. 難しそうでも諦めないで!
  3. 第3話:計算の限界を知ろう
    1. 計算不可能性:どうしても計算できないことだってある
    2. 現実的計算不可能性:理論的に可能でも現実には ...
    3. 明らかな不可能性:有限に由来する限界
  4. 第4話:計算化してみよう
    1. 計算化するには?
    2. 二次元迷路を解く
  5. 参考文献
  6. 演習問題の解説

2.本書の使い方

◆本書のねらい◆

本書は東京工業大学で行っている 「コンピュータ・サイエンス入門」の教科書として書きました. 東京工業大学では, 科学技術にたずさわる人々の一般教養として, すべての1年生を対象に 「コンピュータ・サイエンス入門」という授業を実施しています. この授業は, コンピュータの使い方のイロハを前期の授業で学んだ1年生に対し, コンピュータ・サイエンスの心を教えることを目標としています. コンピュータの使い方やコンピュータの仕組みを教えるのが目標ではありません. また, プログラミング (プログラムの作り方)を教えることが目標ではありません. ソフトウェアの背後にある コンピュータ・サイエンスの考え方を伝えることを目標にしています.

「コンピュータ・サイエンス入門」を通して, 我々が教えたいと考えていることは, 大まかにいって,

などです.

理工系とはいうものの, 東京工業大学には, 数学科から建築学科,生命理工学科まで, 多くの学科があり, 学生の気質や興味の対象もかなり異なります. しかも, プログラミングを教える前の授業です. そこで, 具体的なトッピックスを題材に, 具体例を通して以上の内容を教えていこうと試みています. 本書も, そのような具体例を中心に構成されています. また, 全体として4話(4章)の形式になっていますが, それぞれかなり独立して読み始めることができるようになっています. ですから, 各大学,各学科の都合に合わせて, 適当な題材から入っていくのがよいと思います.

◆各章,各節の指導目標◆

◆授業例◆

以下は, 本書の元となった資料を元に, 渡辺が2002年後学期(生命理工系学生対象)に行った授業の例です (参考:授業ホームページ).

以下は,本書の元となった資料を元に, 渡辺が2002年後学期(電気系学生対象)に行った授業の例です.

3.演習用ソフトなど

本書にある例題のいくつかについては, 演習用の教材を用意しました. ご活用頂ければ幸いです. (なお,以下のソフト中の乱数生成には, 松本・西村氏の開発した Mersenne Twister を 使いました.)

※教材の説明書は,一部,授業に使った資料を流用しています.
※OSに依存した部分や不完全な部分もありますのでご注意下さい.
※不完全な部分は,適宜,更新する予定です.

4.訂正・よくある質問

訂正については 訂正のページ をご覧下さい. なお, 間違いを発見された方は, watanabe(at)is.titech.ac.jp までメイルでお送り下さい. また質問などもどうぞ. ただし,すぐに回答できないことも多いと思います.あらかじめご了承下さい.

5.関連するページ