コンピューターサイエンスはどのような分野に属しますか? [閉まっている

softwareengineering.stackexchange https://softwareengineering.stackexchange.com/questions/18886

  •  22-10-2019
  •  | 
  •  

質問

コンピューターサイエンス科学、応用数学、エンジニアリング、アート、哲学ですか? "他の"?

背景を提供するために、Steven WartikのScientific Americanというタイトルのブログ投稿があります」私は本当の科学者ではありません、そしてそれは大丈夫です「この質問のいくつかの良いトピックについては、答えよりも開いたままにしています。

規律を考えることができれば、コンピューターサイエンスはその定義にどのように適合しますか? コンピューターサイエンスの規律は何に基づいている必要があります プログラマー やる、または何 学者 行う?これについて深く考えているように思われた人々からどのような答えが得られますか?彼らはどのような理由を与えますか?

役に立ちましたか?

解決

2つの異なるIT分野があります。

  • コンピューターサイエンス - 科学的方法を使用したコンピューターと計算の規律研究です。

  • ソフトウェアエンジニアリング - 適切なエンジニアリング原則に従ってソフトウェアを設計および実装することの規律です。

2つは多少重複していますが、区別は実際には科学と工学の望ましい結果に関するものです。科学的分野の望ましい結果は知識です。エンジニアリングの規律の望ましい結果は、機能するものです。

だからあなたの質問に答えるために:

コンピューターサイエンス科学、応用数学、エンジニアリング、アート、哲学ですか? "他の"?

コンピューターサイエンスは科学です...適切に行われた場合。しかし、他の分野と同様に、CSは数学、工学、物理科学、社会科学、哲学などと重複しています。

また、ほとんどのプログラマーが行うことは、コンピューターサイエンスやソフトウェアエンジニアリングでもないことも付け加えます。それは職人がしていることのようなものです。

そして、悲しいことに、アカデミックコンピューターサイエンスやソフトウェアエンジニアリングの専門家は、古い科学と工学の分野ほど厳格ではありません。 (たとえば、伝統的に厳密なコンピューターサイエンスの分野があります。たとえば、強力な数学的根拠があるものです。しかし、多くの分野では、本当に重要な質問について適切な科学的研究を行うにはあまりにも難しい /高価です。)

他のヒント

プログラマーはめったに「コンピューターサイエンスを行う」ことはありません。彼らは主に 使用する 明らかに、エンジニアリングの分野である「ソフトウェアエンジニアリング」の結果。

それ以外は、コンピューターサイエンスが数学を適用しています。 CSを適用された数学に属するものと比較すると、多くの類似性があります。

コンピューター科学者は、計算方法(アルゴリズム)を設計および研究し、数学(論理、グラフ理論、組み合わせなど)からほとんどの理論を取り入れ、同時にそれに貢献します。適用された数学の残りの部分と同じです。

これらのモデルの特性と理論的にアルゴリズムを評価し、モデリング実験を続けます(テストプログラムを書き込みます)。適用された数学者と同様に、クラスター上のチューブ内の液体の流れをシミュレートすると、コンピューター科学者はコンピューターを使用してアルゴリズムの実装を実験します。これらの実験の結果は、石油精製所または在庫分析用のソフトウェアのいずれかに直接生産に入ります。

大学を卒業したのは、コンピューターサイエンスの特別部門すらありません。他のコンピュータードメイン以外のドメインは、コンピューターサイエンスの椅子は応用数学科の一部です。

コンピューターサイエンスは、最近では多くのことをカバーする用語です。

  • マスター職人は、ツールの経験(および見習いなどを持っている)に基づいて、他の人のために仕事をしています。
  • 職人のための新しいツールを発明して作成するツールスミス
  • 研究者は、ツールスミス用のプラスチックなどの新しい合金やその他の材料を開発しています。
  • アロイメーカーがどのように機能するかを知っているように、物事がどのように機能するかを考えている理論的科学者は 彼らの ツールが機能します。

上記のすべてが、単なる「コンピューター科学者」ではなく、明確な命名をどのように持っているかに注意してください。違いは、コンピューターサイエンスがネーミングが解決するには新しいものであるということです。

まず第一に、そうです コンピューティング 理科。これは、計算の背後にある数学を扱います。
エンジニアリングに向けた他の分野があります。

違いは、関連する科学および工学の分野と同じです。 1つは精度について、もう1つは精度についてです。コンピューティングサイエンスは理論的であり、他のものは問題に適用される科学であるエンジニアリングの分野です。

コンピューターサイエンスが適用されます 実験的 数学。

コンピューターサイエンスは、計算オートマトンの設計と適用を扱う応用数学の分野です。ソフトウェアエンジニアリングは、フォンノイマンアーキテクチャ用のコードの正式な設計と構築を扱うコンピューターサイエンスの適切なサブセットです。 Von Neumannアーキテクチャは、コンピューティングマシンを実装する1つの方法にすぎません。たとえば、エニグマエンコードされたメッセージをクラックするために使用されるマシンは、フォンノイマンマシンではありませんでした。

ソフトウェアエンジニアリングは実務家の分野です。コンピューターサイエンスは、研究志向の分野です。ほとんどのコンピューターサイエンティストの学部生は、少なくとも修士号を取得する必要があるため、ソフトウェア開発に終わります。

「コンピューターサイエンス」と最も正確に呼ばれる規律は、私がチェックしたほとんどの大学で、工学分野に似た応用科学です。あなたがそれを専攻するなら、あなたは「BS」または「MS」を受け取ります。テキサス工科大学のCS学位は、エンジニアリングカレッジによって提供されました。教えられたように、規律はほとんど理論的です。あなたは、「日々」プログラマーが頭蓋骨でガタガタし続ける必要がないという、チューリングマシン、DAS/NDA、およびその他の基本的な概念の概念を学びます。また、より高い数学のパントロードを取得します。 Texas Tech CSの学位、そして他の多くの人も賭けます。それに、ほとんどの大学の学位トラックは、実際の低レベルのアプリケーションの多額のダッシュを追加します。アセンブリ言語、第3世代の言語、コンピューターグラフィックス、オペレーティングシステム、さらには電気工学/デジタルデザインを探索します。

ただし、生計を立てるためにコーディングするほとんどの人は「コンピューター科学者」ではありません。厳密に言えば、「ソフトウェア開発者」または(分析/デザインを追加するとき)「ソフトウェアエンジニア」です。そのジョブは、ハードウェアレベルがはるかに少ない(その基本を知っている必要がありますが)、はるかに多くのシステム分析、設計、ストレートアウトコーディングです。多くの大学には、そのためだけに別のトラックがあります。テキサス工科大学では、「情報システムの管理」と呼ばれ、ビジネス学位(BBA/MBA)でした。そのトラックは、より高い数学で軽くなりました(代数と微分/積分計算について知っていなければならなかったことは、「ビジネス数学」の2学期に絞り込まれ、ベクター/テンソル計算、線形代数などを含めませんでした)、はるかに重いです金融数学(各学期の学期と金融、それぞれ2つの会計と経済学)。オペレーティングシステムでは、データベース、Webサーバー、ネットワーキング、一般システム管理などの「スタック」テクノロジーで重い。低レベルの言語、サーキット設計、AIで軽量、第3世代および第4世代の言語、システム分析、プロジェクト管理で重い。私はテキサス工科大学からこの学位を取得し、少なくとも学期を去るまでに、少なくともJava、VB、C#、Web言語(HTML/CSS/PHP)に加えて、OOA&Dおよびその他のさまざまなコースの1年間ITプロジェクト管理。

現実の世界ではどちらが良いですか?私はMIS BBAを手に入れました、私の兄弟はCS BSを手に入れました、そして、私たちはどちらもシニアソフトウェアエンジニアとほぼ同じ給与レベル(生活費を調整)で雇用されています。彼は仕事で必要なOOA&Dの多くを学び、基本的なC ++知識からC#/Javaでかなり迅速にスピンアップしなければなりませんでした。私の側では、私がビジネス管理コースで立ち往生している間に彼が得た2学期の概念アルゴリズム研究があればいいのにと思います(はい、MISは「管理」の学位ですが、私は私の知識の99%がどのように知っていましたか?管理します いいえ 他の人の管理は、例によって学習されています)。

ライセンス: CC-BY-SA帰属
所属していません softwareengineering.stackexchange
scroll top