「コンピュータ サイエンス」って知っていますか?

RSS

2005年10月03日

  • 野中 秋利
コンピュータやITの世界での基礎科学はコンピュータ サイエンス(計算機科学)であるが、なぜか日本では重要視されず、ことば自体もあまり使われていない。

そもそも、コンピュータ サイエンスとはどのような学問であろうか。「コンピュータ サイエンスのカリキュラム」(※1)によれば、「すべての問題処理をコンピュータ上の計算手順に転換することにより自動化する方法を発明・発見する学問分野」とある。つまり、コンピュータ システムを作るための仕組みの科学である。分類のしかたにもよるが大きく分けると次のように三つに分かれ、それぞれに科学としての基本原理がある。

(1)コンピュータ・ハードウエア
SMP、MPP、グリッド(※2)といろいろなコンピュータ構造があるがノイマン型構造は同じで基本原理となる。
(2)インフラ・ソフトウエア
実現方法はいろいろあるが、スケジューリング、マルチタスキング、排他制御、リエントラン ト構造・・・といったインフラ系ソフトウエアの要素機能は同じで基本原理となる。
(3)アプリケーション・ソフトウエア
方法論はいろいろあるが分析、設計、構築、運用、保守といったライフサイクルは同じで 基本原理となる。

一方、ムーアの法則(※3)に見られるようにコンピュータに関する新しい技術の発展は非常に速い。技術の発展が速いということは技術知識の陳腐化も速いことになる。技術知識の陳腐化と基本原理としてのコンピュータ サイエンスはどのような関係にあるのであろうか。先ほどの本では次のように分析している。

コンピュータ サイエンス関する知識は10年に約10%入れ替わる。
モデリングや方法論に関する知識は10年に約30%入れ替わる。
具体的な製品に関する知識は10年に約60%入れ替わる。

つまり、具体的な製品などの基礎となるコンピュータ サイエンスは10年経っても90%は使える知識であるが、具体的な製品に関する知識になると40%しか使えなくなる。

Java言語の教科書には「new演算子によって、インスタンスの宣言と生成をする。」とあるが、私には、「new演算子によってインスタンスとしてのリエントラント用変数領域を確保し、そのポインターをセーブする。」と説明されたほうが理解は早い。これは、私が一次オンライン世代であるという理由だけではなく、説明がコンピュータ サイエンスでされているからである。

すなわち、前述のような知識変化の階層から考えるとコンピュータ エンジニア(システム エンジニア)を目指す大学生や若手技術者は具体的な製品に関する技術の取得も重要であるが、全ての技術の基礎となるコンピュータ サイエンスを真っ先に学ぶことが非常に重要であると言える。しかも、このことはコンピュータに限らず他の工学・科学の経験からも明らかである。

(※1)國井利泰著 「コンピュータ サイエンスのカリキュラム」 共立出版
(※2)SMP : Symmetric Multiple Processor
 MPP :Massively Parallel Processor
 グリッド : 複数のコンピュータをネットワークで結んだ仮想的な高性能コンピュータ
(※3)ムーアの法則 :インテル社の創設者ムーア博士が提唱した、「半導体の集積密度は18~ 24ヶ月で倍増する」という法則。

このコンテンツの著作権は、株式会社大和総研に帰属します。著作権法上、転載、翻案、翻訳、要約等は、大和総研の許諾が必要です。大和総研の許諾がない転載、翻案、翻訳、要約、および法令に従わない引用等は、違法行為です。著作権侵害等の行為には、法的手続きを行うこともあります。また、掲載されている執筆者の所属・肩書きは現時点のものとなります。