私はコンピューターサイエンスとプログラミングが初めてですが、コンピューターサイエンスとプログラミングに違いはありますか?大学でそのうちの1人だけを勉強するか、両方を勉強するかを選択できますか?
私はコンピューターサイエンスとプログラミングが初めてですが、コンピューターサイエンスとプログラミングに違いはありますか?大学でそのうちの1人だけを勉強するか、両方を勉強するかを選択できますか?
回答:
コンピューターサイエンスとは、コンピューターができることの研究です。プログラミングとは、コンピューターに何かをさせる習慣です。
興味のある大学が提供するコース/シラバスを見て、コースがCSコース、プログラミングコース、他の何か(ソフトウェアエンジニアリングなど)であるか、上記の組み合わせであるかを確認してください。「コンピューターサイエンス」と宣伝されている多くのコースは、重要なプログラミングコンポーネントを提供します。これは、コースの理論的な部分を実践できるようにするため、またはプログラム作成のスキルを習得するために独自の目的で使用できる場合があります。
注意点:(少なくとも米国では)大学には「プログラミング」の学位がないため、「コンピューターサイエンス」は現代では泥だらけの分野になっています。これは、プログラミングに興味がある人はコンピューターサイエンスの学位を取得する必要があり、コンピューターサイエンスプログラムがプログラミングをますます重視していることに対する反応として意味します。
とは言っても、コンピューターサイエンス自体は強力な数理科学であり、計算数学がより良い用語だったかもしれません。これには、グラフ理論、アルゴリズムの複雑さ、形式的論理、オートマトン、および一般に、入力に対する変換または応答を記述することができる論理構造の研究が含まれます。古典的な意味でのコンピューター科学者は、必ずしも現在のアーキテクチャーでの実装の詳細を知らなくても、コンピューティングシステム(現代のコンピューターを含む)を管理する規則について推論できます。コンピューターサイエンスの強力なバックグラウンドにより、効率的でスケーラブルなアルゴリズムを開発(またはリコール)し、論理的な削減を予測し、扱いやすいものについてしっかりと推論することができます。
それとは対照的に、プログラミングは、プログラミング言語を使用してアルゴリズムを機械が実行できるものに変換するときに人が行うことです。(これにより、コンピューターサイエンスとの親密なつながり、および混乱の多くが生じる場所が明らかになります。)プログラマー(環境および言語に関連する)は、実質的に任意のアルゴリズムセットを取り、人間の両方の形式に変換できる必要があります-コードを記述することで機械可読。プログラミングの強力なバックグラウンド(ほとんどのCS学位が提供する)により、より良いコードを書くことができます-「より良い」コードは、他の人がより容易に理解し、実装しているアルゴリズムをよりうまく表現できます。
もちろん、大量のクロストークがあり、一方の高度な経験は他方の経験の発達に強く対応します-前述のように、CS専攻はほとんどの場合有能なプログラマーであり、経験豊富なプログラマーが取り上げていますCSの多くの原則。物理学と工学を考えてください。
違いを覚える良い方法はこれです:それが機能するかどうかを確認するためにコンピューターが必要な場合はプログラミングです-鉛筆と紙でできるなら、それはコンピューターサイエンスです。
コンピューターサイエンスは、情報、計算の理論的基礎、およびその実装と応用のための実用的な手法を扱います。 http://en.wikipedia.org/wiki/Computer_science
〜
コンピュータサイエンスは、天文学が望遠鏡に関するものである以上、コンピュータに関するものではありません。エドガー・ダイクストラ
プログラミングは、コンピュータープログラムを作成する技術です。
私の観点からすると、コンピューターサイエンスは物理学のようなハードサイエンスであるはずです。
コンパイラとコンパイラジェネレータ、ハードウェアアーキテクチャの概念、さまざまな形式の数値システム、アルゴリズムとアルゴリズムの効率/パフォーマンス、およびプロセッサでの算術演算の背後にある理論の研究が含まれます。大学でCSを学んだとき、私たちはアセンブラーをいじくり回し、コンパイル、リンク、解釈などの違いについて学びました。
これの多くはプログラミングによって行われました。つまり、問題を解決するために結果を生成することを意図して、インタープリターを介してコンパイルまたは実行されるコードを記述する行為です。つまり、プログラミングとは、コンピューターサイエンスの知識で説明できる問題を解決する行為です。純粋な数学/応用数学の分割のようなものです。
プログラマーになるためにコンピューターサイエンスの学位を取得する必要はありませんが、CSのバックグラウンドを持つプログラマーは、コンピュータープログラムの動作をより深く理解できるでしょう。
あなたの質問を「コンピューターサイエンスとソフトウェアエンジニアリングの違いは何ですか?」結局、両方ともプログラミングに関係しています。
コンピューターサイエンスは、計算とは何か、不可能なことは何かの理論的研究です。ゲーデルの定理や停止問題などを調べます。
ソフトウェアエンジニアリングは、実行するように設計されており、保守可能なプログラムを作成する方法です。
コンピュータサイエンスはプログラミングの理論です。プログラミングが実装です。
コンピュータサイエンスは、計算とその応用に対する科学的かつ実用的なアプローチです。コンピューター科学者は、計算理論と計算システムの設計を専門としています。
そのサブフィールドは、さまざまな理論的および実践的な分野に分類できます。計算の複雑さの理論(計算問題の基本的な特性を調査する)などの一部のフィールドは非常に抽象的ですが、コンピューターグラフィックスなどのフィールドは実際の視覚アプリケーションを強調しています。さらに他の分野では、計算の実装における課題に焦点を当てています。たとえば、プログラミング言語の理論では、計算の記述に対するさまざまなアプローチを検討しますが、コンピュータープログラミング自体の研究では、プログラミング言語および複雑なシステムの使用のさまざまな側面を調査します。人間とコンピューターの相互作用は、コンピューターと計算を有用で使いやすく、人間が普遍的にアクセスできるようにする際の課題を考慮しています...
プログラミングが大工仕事である場合、コンピューターサイエンスはアーキテクチャ/デザインです。
編集
詳細:大工仕事では、どのような順序で物を構築するか(フレーム、サブフロア、内壁、乾式壁など)に興味があります。どのように構築すれば、構築にかかる時間は短縮されますが、後で変更できます。
建築(とにかくCSのような部分)の場合、あなたは材料の能力は何か、この壁/屋根のスパンをサポートするためにどのくらいのビームが必要かなどに関心がありますか?
同様に、CSはコンピューターの理論的な能力に関するものであり、プログラミングはその知識の実際的な応用に関するものです。
コンピュータサイエンスの学位は範囲がはるかに広く、コンピューティングの背後にある理論をカバーしています。一方、コンピュータープログラミングの学位は、さまざまなプログラミング言語でトレーニングすることにより、学生のコーディングまたはプログラミングスキルの開発に焦点を当てています。混乱している場合は、カリフォルニア大学サンディエゴ校でこれら両方のプログラムの詳細を参照できます。それはあなたにこれらの学位の範囲に関していくらかの明快さを提供するかもしれません!
コンピューターサイエンス:コンピューター/計算方法による問題解決の研究です。
コンピュータープログラミング:コンピューターサイエンスの分野を構成するのは、この問題解決プロセスの一部です。コンピュータープログラミングは、コンピューターサイエンスのほんの一部です。
プログラミングは人に関するものです。人々はコードを読み、書き、保守します。コンピューターサイエンスは数学に関するもので、アルゴリズムを実装して記述します。
プログラミング(開発)とは、お金を稼ぐことです。科学は新しいものを発見することです。