簡単なたとえ話を使うとわかりやすいかもしれない。日本文学を専攻している教授と会ったとする。この教授が日本語を読み書きし,話せる可能性は非常に高い。しかし,しかし,教授が研究中にもっとも時間をかけて考えているものは何か当ててみてくれと言われたら,あなたは「日本語」とは答えないだろう。日本語は,日本文学を構成する文化,歴史,テーマを研究するために必要な知識の1つに過ぎない。その一方で,完璧な日本語をしゃべれる人の中にも日本文学をまったく知らない人もいるだろう(おそらく,日本にはそういう人が数百万といるはずだ)。
コンピュータのプログラミング言語とコンピュータ科学の主要なアイデアとの関係もこれとよく似ている。コンピュータ科学の研究者たちは,アルゴリズムを実装し,試してみるために,アルゴリズムをコンピュータプログラムに変換する。そして,個々のプログラムはJava,C++,Pythonなどのプログラミング言語で書かれる。だから,プログラミング言語の知識はコンピュータ科学者にとって必要不可欠である。しかし,それは単なる前提条件に過ぎない。研究者の主要な課題は,アルゴリズムを発明,修正,理解することである。
ジョン・マコーミック 長尾高弘(訳) (2012). 世界でもっとも強力な9のアルゴリズム 日経BP社 pp.302-303
PR