コンピューターサイエンスの定義は何ですか?また、コンピューターサイエンス内の科学とは何ですか?


39

私はコンピューターサイエンスの理学士号を追求していますが、その初期段階にあり、追求するのが学問的で職業上の柔軟性のある教育のように思えるので、自分の選択に満足していると確信しています。

そうは言っても、コンピュータサイエンスが学界、民間部門、および「コンピューターサイエンス」の実際の「科学」に関して実際に何であるかについては、さまざまな定義があるようです。コンピュータサイエンスの教育を適用できるものの幅、および最終的にはコンピュータサイエンス内の人々が追求したさまざまなパスについて。


1
コンピュータサイエンスの科学はどこにありますか?:cacm.acm.org/magazines/2012/10/...
aviファイル

回答:


38

コンピュータサイエンスは誤った呼び名です。コンピュータサイエンスは自然を観察することではないため、実際にはコンピュータサイエンスには「科学」はありません。むしろ、コンピューターサイエンスの一部は工学であり、一部は数学です。

コンピュータサイエンスのより理論的な部分は、純粋に数学的です。たとえば、並べ替えに適したアルゴリズムは何ですか?プログラミング言語のセマンティクスをどのように定義しますか?暗号化システムが安全であることをどのようにして確認できますか?

コンピュータサイエンスが適用されると、エンジニアリングのようになります。たとえば、行列乗算アルゴリズムを実装する最良の方法は何ですか?大きなプログラムの作成を容易にするために、コンピューター言語をどのように設計する必要がありますか?オンラインバンキングを保護するための暗号化システムを設計するにはどうすればよいですか?

対照的に、科学は自然の法則に関するものであり、より一般的には自然現象に関するものです。コンピュータサイエンスに関係する現象は人為的です。この意味で、コンピューターサイエンスの一部の側面は実験的なものと見なすことができます。たとえば、ソーシャルネットワークの実証的研究、コンピューターネットワークの実証的研究、ウイルスとその広がりの実証的研究、コンピューター教育(コンピューターサイエンスの教育とコンピューターの使用の両方)他の科目を教えるために)。これらの例のほとんどは境界線のコンピューターサイエンスであり、より適切には学際的です。コンピュータサイエンスの科学的手法に最も近いのは、おそらくネットワークやその他のハードウェアデバイスの研究でしょう。これは、「システム」として非公式に知られているサブエリアの主流です。

これらの例にもかかわらず、コンピューターサイエンスのコアのほとんどは科学ではありません。コンピュータサイエンスは単なる名前です-意味をなさない必要があります。

コンピュータサイエンスの範囲に関しては、おそらく最高の定義は次のとおりです。コンピュータ科学者の定義。他のすべての学問分野と同様に、コンピューターサイエンスは広い分野であり、完全にグラフ化することは困難です。人々がコンピューターサイエンスと見なすもののサンプリングが必要な場合は、学部の研究分野を調べることができます。


4
これは、私が見たコンピューター科学者からの最も正直なコメントの1つです。ありがとう。
scaaahu

21
これは本当にコンピューターサイエンスよりも哲学に関するものですが、この答えには同意しません。コンピュータサイエンスはコンピューティングサイエンスの誤称であり、コンピューティングサイエンスは、たとえばメカニクスと同じように科学です。強力な数学的基盤がありますが、この基盤経験的検証の対象です。チューリングの計算可能性に焦点を当てています。それが世界の仕組みのように見えるためです。
ジル 'SO-悪であるのをやめる'

3
自然現象を観察するものだけが実際の科学であるという考えは、唯物論的思考の発散であり、多くの人が同意しないものだと思います。語源的に、科学は知識の集まりであり、すべての数学はトートロジーであると言う人もいますが、それらのいずれも数学を「知識ではない」と分類するのではないでしょうか。
G.バッハ

2
@Gilles真面目なことはできません。ハイパーコンピュタビリティを実行している人々は別として、計算可能性のチューリング概念に異議を唱える人はいません。効率的な計算可能性の概念に関してはより良い点を挙げることができますが(ポリタイムは効率的という意味です)、合理的な計算モデル内で効率をキャプチャしようとする人は誰もいません-理論の人々はモデルの問題を無視し、実践の人々はモデルを無視します。
ユヴァルフィルマス

2
@YuvalFilmus 2つの例を挙げると、チューリングマシンでは、分散システムまたは同期システムをモデル化するには不十分です。
ジル 'SO-悪であるのをやめる'

11

現代のコンピューターサイエンスの先駆者の一人からの引用から始めましょう。「コンピューターサイエンスは天文学が望遠鏡に関するものである以上、コンピューターに関するものではありません」-Edsger Wybe DIJKSTRA

現実には、コンピュータとプログラミングに興味があるなら、コンピュータサイエンスに本当に興味はありません:-)

ウィキペディアには、最高の説明があると思います。「コンピューターサイエンス(CSまたはCompSciの略)は、計算とその応用に対する科学的かつ実践的なアプローチです。これは、系統的プロセスの実現可能性、構造、表現、情報の取得、表現、処理、保存、通信、およびアクセスの基礎となる(またはアルゴリズム)、情報がコンピューターメモリのビットおよびバイトでエンコードされているか、転写されたエンジンおよびヒト細胞のタンパク質構造であるか。計算理論と計算システムの設計を専門としています」

しかし実際には、ユヴァルが述べたように、ほとんどの大学/大学は理論的/純粋なコンピューターサイエンスから遠ざかり、コンピューターサイエンスは科学、数学、工学の混合物になりました。純粋なコンピューターサイエンスだけでなく、現代のコンピューター、プログラミング言語、オペレーティングシステム、ソフトウェアアプリケーションを使用してこれらの問題を解決する実践的なスキルも教えてくれます。


3
あなたは離れたと言いますが、それらは純粋に理論的なものですか
アゴス

@Agos私はあなたに同意しますが、純粋に理論的であるという真の期間は決してありませんでしたが、時間が経つにつれて、ビジネスがより多くのプログラマーとより少ないコンピューター科学者を必要とするにつれて、学位/卒業証書は理論的から実用的に移行しました。私は一方が他方より優れていると言っているのではなく、ただ観察しているだけです。
AquaAlex

1
@AquaAlexこれは、今日考えられているように、古いコンピューターサイエンスとコンピューターサイエンスの違いを明確に説明するための最良の方法だと思います。それは、産業の要求に合わせて実用化に向かって大きくシフトしました。

なぜ「純粋な」コンピューターサイエンスが理論にすぎないのでしょうか。私の知る限り、これはコンピューターサイエンスとは何かについての良い説明ではありませんでした。実際の懸念は常に現場に知らせてきました。
ラファエル

@Raphaelそれはすべて、あなたが「実用的」と考えるものに依存します。コンピュータープログラムの作成は、CSの実用的なアプリケーションではありません。ほとんどの科学者は理論を使用して実世界/実際の問題を解決し、多くの科学者はコンピューターとプログラミングを使用してこれを行います。
AquaAlex

11

「コンピュータサイエンス」のドイツ語の用語はInformatikであり、これはInfomationMathematikを溶かしたものです。これは、コンピューターサイエンスのすべてを簡潔に説明したものだと思います。(イタリア語の用語はinformaticaであり、同じ行に続く言語がかなり多くあると確信しています)。


ウィキペディアのコンピューターサイエンスに関する記事には、en.wikipedia.org / wiki / Computer_science #Name_of_the_fieldという異なる名前に関するセクションがあります-私は、「科学」よりも「コンピューター」の部分を嫌います。私は、コンピューターを使用する科学分野を、今よりもはるかに少なくしています。
リニアック

2
@linac:他の分野では、コンピューターを使用して他のことを研究しています。コンピューターサイエンスは、コンピューターを使用して計算を研究することになります。どちらの場合も、コンピューターを削除しても、処理を実行できますが、処理速度は遅くなります。「コンピューター」とは、計算を実行できるハードウェアを実装する実際のボックスのみを指し、コンピューターサイエンスの「コンピューター」は計算自体のアイデアを指しているというのは、非常に現代的な考えであることを忘れないでください。
Phoshi

「Informatik」という名前のこの派生は間違っているかもしれません。ドイツのwikiは「Information und Automatik」に言及していますが、おそらく「Information + -tik」
-miracle173

@ miracle173実際、「Information und Automatik」については多くのことがありますが、フランスとイタリアのWikiでも言及されています。「Information und Mathematik」の派生物を最初に読んだ場所を思い出せませんが、自分で発明したのではないことを確信しています
...-john_leo

6

メタに関する議論に興味があるかもしれません特に、私はここで再現した私の答えを待っています:

コンピューターサイエンスは計算の科学です。それは明らかだ。あまり明確ではありませんが、有用で意味のある方法で科学と計算を定義する方法です。

一般的に、科学は2つの分類に従って分類されます。形式と経験、および純粋と応用です。フォーマルサイエンス(数学やコンピューターサイエンスの多くなど)は仮定された真実からの演ductive的推論に依存していますが、経験的科学(物理学や化学など)は観察された現象からの帰納的推論に依存しています。純粋な科学の目標は科学的理解の状態を前進させることですが、応用科学の目標はそのような理解を使用して自然の力を活用し、他の目標を達成することです。

計算は、情報に適用される変換として定義できます。最も広い意味では、計算は、宇宙に変化を引き起こすプロセスです。これより詳細な定義を提供する必要はありません。

コンピュータサイエンスは、次の基準を満たす人間の努力の一部で構成されます。

  • それは科学です、つまり:

    • (1)形式的または(2)経験的です。

      1. 仮定された真実から演ductive的推論を採用
      2. 観察された現象からの帰納的推論を採用
    • (1)純粋または(2)適用

      1. 科学的理解の状態を前進させようとしている
      2. 科学的な理解を応用して自然の力を利用しようとする
  • 計算、つまり:

    • (1)変換または(2)情報のいずれかを研究します
      1. あるフォームから別のフォームに情報をマッピングするプロセス
      2. 変換の対象となるエンティティ

高度なTCS研究にも関与する経験的側面を引き出してくれてありがとう!例:CS論文の実証結果
vzn

5

コメントには長すぎる「科学」という言葉に関する視点を加えたい。

人々は、コンピューターサイエンスは、数学または工学のいずれかを行う(ここでは簡略化する)ため、伝統的な方法の科学ではないと言います。それはまったく真実ではありません。間違いなく-私たちは、科学的な方法で適用することができ、科学の隅石-です

体系的な観察、測定、実験、および仮説の定式化、テスト、修正。
ウィキペディア経由のオックスフォード英語辞書 )

実際、アルゴリズムの初期の研究のいくつかは、この原則に準拠しています。いくつかの方法でいくつかの方法が「失われた」が、我々はまだそれ採用することができる

基本的なプロセス¹は次のようになります。

  • コンピューターで解決したい問題に注意してください。
  • アルゴリズムを考え出します。
  • アルゴリズム(の数学モデル)を分析します。
  • 分析に基づいて、アルゴリズムの(予想される)ランタイム(特定の入力セットおよび特定のマシン)を予測します。
  • 実験によって予測を確認または偽造してください。

O

ちなみに、私の言葉を受け入れないでください。Robert SedgewickとPhilippe Flajoletは、主にテスト可能な仮説を可能にする分析的組み合わせ論の正式なフレームワークを開発することにより、科学をコンピューターサイエンス戻すことに取り組んできました。SedgewickのビデオとMOOCを見つけることができます。

すべての希望が失われるわけではありません。


  1. もちろん、これは定式化されたwrtアルゴリズムのみです。また、グラフモデルが現実に適合するか(たとえば、科学的よりも経験的であることが多いが、ソーシャルネットワークを中心に行われる)、ネットワークスループットが予測どおりになるか、または他の多くのことを調べることもできます。

「すべての希望が失われるわけではありません。」–コンピュータサイエンスが科学ではなかった場合、それは悪いことでしょうか(誤称を除く)。
k.stm

@ k.stm私の意見では、はい。なぜそれほど落ち着かないのですか?
ラファエル

数学は科学ではありませんが、数学ではないということは決してありません。そして確かに、数学でもコンピュータ科学でも、科学ではないという点で科学よりも「劣っています」。「計算科学は数学、工学科学にほかならない」のように、定量的な意味で「少ない」という意味でしょうか?しかし、それでも、科学であることの継承は得られないと思います。なぜそうなるのでしょうか?科学的に計算論的アプローチにアプローチする必要はありますか?
k.stm

@ k.stmはい。すべてのCSが数学であるとは限らず、すべてがエンジニアリングであるとは限らない(またはしたい)とは限りません。どちらでもない部分は現在、常に科学的であるとは限りません(通常は読みません)。それは大きな問題です。例:実験的アルゴリズム。数学的分析は扱いにくいため、エンジニアリングの原則は適用されません。その後、基本的にプログラムで科学実験を行っていますが、通常は科学の原則を使用していません。(基本統計でさえ知っているCSistは何人ですか?)
ラファエル

さて、あなたは「私たちは科学的にも計算論的推論にアプローチする必要がある」と言っているのです。そうだとすれば、あなたの主張を見ることができます。それでも、コンピューターサイエンスが本当に科学であるという継承のメリットがあるという意味ではありません。良くなったことが判明しました…
k.stm

3

これはおそらく、コンピュータサイエンスの起源そのものにさかのぼって長い間議論されてきた古い質問です。これを研究/回答する自然な方法は、subjに関する公開された文献を使用することです。これについては、まだ引用されていない文献に多くの良い参考文献があると思われます。また、これに関する回答/ハメ撮りは、おそらく別名視点はとともに変化している可能性があります。これは、他の科学分野よりも多分、この分野でやや一般的なKuhnianシフトです。これを研究する別の角度は、学問の中でどのように教科が教えられてきたか、また時間とともに変化する既存の部門構造にどのように当てはまるかです。

この分野の権威であるDenningによる素晴らしい論文/エッセイがここにあります。この質問は直接この質問に対処し、より多くの参考文献を始めるのに良い場所です。両方とも、その分野の主要な学会であるCACMのジャーナルに掲載されていますます。

情報処理と計算は、多くの分野の深い構造に豊富に見られます。コンピューティングは、実際にはそうではありませんでしたが、人工の科学ではありません。

コンピューターサイエンスは、科学であるためのあらゆる基準を満たしていますが、自己負担の信頼性の問題があります。


デニングは、「コンピューティング」を効果的に「コンピューティングの研究」と定義しています。明らかに、何かの研究はその何かと同じではありません。この分野でまばたきすることなく、基本的なカテゴリの間違いが受け入れられる程度に、私はいつも驚いています。
reinierpost

論文のすべてに正確に同意してはいけませんが、文脈から引用することを考えて
ください-vzn

2

科学の定義から働く

  1. 体系的に整理され、一般法則の動作を示す事実または真実の本体を扱う知識または研究のブランチ:数理科学。
  2. 観察と実験を通じて得られた物理的または物質的な世界の体系的な知識。
  3. 自然科学または物理科学の分野のいずれか。
  4. 一般的に体系化された知識。
  5. 事実または原則に関する知識。体系的な研究によって得られた知識。
  1. コンピュータサイエンスは数学と密接に関連しており、重要な研究(研究など)を伴います。

  2. コンピュータサイエンスは幅広く、さまざまな方法で物理学と密接に関連しています。例:計算の物理学/熱力学、量子計算物理法則としてのP =?NP相転移など

  3. それは体系化された知識です。

  4. 体系的な研究、すなわち研究が行われます。

「コンピューターサイエンス」という用語は、この分野が、たとえば工学のような既知の原則の適用に関するものだけではないことを強調しています。かなりの存在であるテラインコグニタコンピュータサイエンスの周りには、フィールド内の多くの基本的な質問があるオープン/未回答。世界中の研究者の数を見積もることは困難ですが、数千または数万を超える数です。

ただし、コンピューターサイエンスのより科学的な側面は、学部レベルであまり教えられたり、公開されたりしていないため、混乱が生じる可能性があります。また、例えば、LHCやヒッグス粒子の発見などの他の分野とは対照的に、科学としての知名度の高い具体例/お祝い/支持者/擁護者はあまり多くないようです[CSは、発見!]、または有名なカールセーガンやホーキングのようなポピュライザーフィギュア。ただし、CSを刺激する人気の科学書を参照してください


1
または、コンピューターサイエンスのサブフィールドに応じて、実際に数学との違いは何ですか?:
ジュホ

もう1つの要因は、コンピューターサイエンスに学際的な側面が非常に強いことです。たとえば、強力な科学的な味、持っていない/ますます注目度の高いエリアビッグデータを
vzn

熟考する別の側面。研究の主要CSオブジェクト、チューリングマシンは、と呼ばれる機械&キメラ状の理論と物理デバイスとの間のクロスです。
vzn

チューリングマシンは理想的なデバイスです。それらは現実には存在しません。モデルとしても、コンピューティングが「実際に」行われる方法にあまり近くありません。
ユヴァルフィルマス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.