私はこのトピックについていくつかの答えを読んだが、まだ質問があります.. 数学のコースがたくさんあり、最初にどちらを取るべきか分かりません。 すべてのコンピュータ科学者が受けるべき数学のクラスはどれですか?どのクラスが最初のクラスでなければならないのですか?コンピュータ科学のための数学
答えて
非常に良い重要な質問!数学の理解は、すべてのコンピュータ科学者にとって不可欠であり、数学の要件はより多様化し始めています。
- Discrete Mathは、コンピュータサイエンスにとって最も重要で基本的なクラスであり、このため、通常、数学部門ではなくCS部門で提供されます。このクラスは、あなたのイントロをアルゴリズムの基礎とし、数学的に物事を証明する方法を教え、データ構造やアルゴリズムを分析するための基礎を教えます。
- Calculusは、イントロレベルのコンピュータサイエンスの授業では直接使用されていませんが、一般的には、数学のスキルを高めるために大学が提供する一連のコースです。あなたが数値プログラミングや機械学習のようなものになっていくにつれて、それは非常に有用であることが証明されます。高度な確率/統計コースにも必要です。
- Probabilityは通常、あなたの離散数学のクラスである程度カバーされていますが、数学と統計学科ではおそらく連続確率分布のクラスとstatistical inferenceが必要です。これにより、数値計算やシミュレーションの仕方をより深く理解することができ、基本的にはコンピュータサイエンスの最も重要なアプリケーションの1つであるmachine learningに必要です。
- Linear Algebraは、機械学習や(高度な)アルゴリズムクラスでは主に役立つクラスですが、コンピュータビジョン、コンピュータグラフィックス、機械学習、その他の定量的なサブ分野での重要性が最も重要です。
言い換えれば、機械学習のイントロトートが利用可能な場合、おそらく基本的な確率クラスで得ることができる十分な線形代数などをカバーするでしょう。しかし、コンピュータサイエンスの大学院の勉強では、上記の数学のすべての分野をよく理解することが不可欠です。
上位レベルの数学コースは、コンピュータサイエンスの特定の理論的領域(例えば、経済学と交差するアルゴリズムゲーム理論)、特に機械学習の開業者を超えて新しいアルゴリズムを開発するのに役立ちます。これらのコースは、次のとおりです。あなたが十分な長さのための確率と微積分を勉強している場合、彼らは再び収束することがわかりますmeasure theory含む
Real analysis、。分析は、数字を含むアルゴリズムの作業をいつ開始するかを知るのに大変便利です。
Optimizationを含み、linear optimization,convex optimization,gradient descentなどを含む。多くの場合、機械学習モデルを「学習する」ことは、基本的には目的関数を最適化することであり、この関数が凸であるかどうかといったプロパティは、いかに簡単に最適化するかに大きな影響を与えます。
Numerical methods:いくつかは、この数学の授業自体を考慮していないだろうが、浮動小数点演算の不完全な表現にアルゴリズムと理論を翻訳するには、解決すべき多くの実用的な問題があります。たとえば、log-sum-exp trickです。
"データサイエンス"に関係する人物や関連分野では、高度な統計情報、特にcausal inferenceが非常に重要です。知っておくべきことがたくさんあります。多くの場合、多くのデータにアクセスすると、初心者のためにthis problemが誘惑されます。
Combinatorics、numerical analysis、discrete mathematics、mathematical statistics、probability theory、information theory、linear algebra、lambda calculus、mathematical logic、category theory、process calculusなど
これは、プログラミングの99%とは関係ありません。数学がとても重要な場合、数学の授業はどこですか? –
私は、組合せ演算子、離散数学、確率、数学論理、線形代数をプログラミングに直接適用しています。それらはすべてアルゴリズムとの関係を持っています。 – dud3
私はコンピュータ科学とプログラミングはしばしば等しいと考えますが、それらは異なる学問です。ほとんどの複雑な概念はしばしばプログラミング言語やライブラリにカプセル化されているので、基本的な数学だけでCS指導なしでプログラムすることを学ぶことができます。しかし、これらの概念の基盤はCSに根ざしており、特にアルゴリズムの設計/最適化を理解するには数学の知識が必要です。 – verboze
あなたは、 "コンピュータ科学者" を指定しているので、我々はハードルート取るよ:
を- アルゴリズムの解析は、微積分、微分方程式、離散数学に依存しています。 (コンピュータサイエンスとソフトウェアエンジニアリングプログラムの間の主要な差別化要因としてのアルゴリズムの多くのビュー分析)。数値計算法、線形代数など
- 計算幾何学
- 関数近似
- 集合論、ロジック/一次計算
- 確率:
- コンピュータグラフィックス/科学的可視化はエンジニアリング解析背景の並べ替えが必要です/統計
- リストは続く:
- 1. コンピュータ科学
- 2. 最小値の数学/科学記号
- 3. コンピュータの数学
- 4. 編集APコンピュータ科学U1例2
- 5. ゲームプログラミングのための材料科学
- 6. 科学的データ
- 7. 数学の学生のためのPython?
- 8. コンピュータ科学における有限オートマトンの応用
- 9. VB.NETの数学操作(科学的表記なし)
- 10. 科学記法と数字のシーケンス
- 11. JSON.NET科学記法の整数
- 12. 科学的表記の整数
- 13. Pythonでの科学的プロット
- 14. Androidの科学計算ツール
- 15. ハイパフォーマンスコンピューティングなどの学科プロジェクト
- 16. 科学的表記のファクトリー
- 17. 科学プロット用のIronPythonライブラリ
- 18. iOSのGnu科学ライブラリ
- 19. numpyのブロック科学表記
- 20. 科学計測のソフトウェアアーキテクチャ
- 21. 機械は人工知能または理論的コンピュータ科学の一部を学習していますか?
- 22. 科学ユニット変換のためのnode.jsベースのライブラリ
- 23. Pythonの計算科学のためのメッシュ生成
- 24. カラーバーoffsetText(科学的なベース乗数)カラーバー
- 25. Java科学計算ツール
- 26. 科学記法変換 - スキーム
- 27. ngHandsontable科学的表記
- 28. rpart.plot除外科学記法
- 29. MacコンピュータPHP学習
- 30. 私は同じ科目の学生sidを学ぶsid = "02"
これらの授業は、リストに記載されている順序で受けなければなりませんか? – LoLzMan
典型的な4年制大学では、初年度の計算クラスから始まり、CSカリキュラムの基本要件を満たすとすぐに離散数学を取ることになります。コンピュータサイエンスのより定量的なサブ領域に入ると、より高度な確率/統計コースと線形代数を取ることができます。 –
私のユニに、最初の学期に線形代数、離散数学と微積分から始めます。 @ AndrewMao私はあなたの質問の最後の部分に興味があります。 – phant0m