多くのコンピューターサイエンスプログラムでは、2つまたは3つの計算クラスが必要です。
私は、計算機が計算機科学でどのように、そしていつ使用されるのかと思っています。コンピューターサイエンスの学位のCSコンテンツは、アルゴリズム、オペレーティングシステム、データ構造、人工知能、ソフトウェアエンジニアリングなどに焦点を当てる傾向があります。
多くのコンピューターサイエンスプログラムでは、2つまたは3つの計算クラスが必要です。
私は、計算機が計算機科学でどのように、そしていつ使用されるのかと思っています。コンピューターサイエンスの学位のCSコンテンツは、アルゴリズム、オペレーティングシステム、データ構造、人工知能、ソフトウェアエンジニアリングなどに焦点を当てる傾向があります。
回答:
微積分学を直接必要とするいくつかのコースを考えることができます。私は、コンピュータサイエンスの学位で通常義務付けられている分野には太字を使用し、通常はオプションの学位では斜体を使用しました。
他にもあるかもしれません-これは私の頭上にあります。
そして、それに加えて、技術的な厳密さで議論を推論し説明する方法を学ぶことにより、微積分コースから間接的に利益を得ます。これは、学生が通常考えるよりも価値があります。
最後に、他のExact SciencesおよびEngineeringの人々と対話するためには、微積分が必要になります。また、コンピューターサイエンティストが話すだけでなく、物理学者やエンジニアと協力する必要があることも珍しくありません。
f(0) = 0
、f(1) = 1
、f'(0) = f'(1) = 0
、、あなたは、例えば、あなたが気に他の制約を追加することができますf'(0.5) = 1
。少し前に、これを使用して、画像を平滑化するためのいくつかの異なる補間多項式を導出しました。
これはいくぶんあいまいですが、代数データ型では計算が行われます。どのタイプでも、その1ホールコンテキストのタイプはそのタイプの派生物です。主題全体の概要については、この素晴らしい講演をご覧ください。これは非常に技術的な用語なので、説明しましょう。
製品タイプと呼ばれるタプルに遭遇した可能性があります(そうでない場合は、2つのタイプのデカルト積であるためです)。これを文字通り解釈し、表記法を使用します。
これらの型は通常の代数的表現のように見え、実際、それらを(ある点まで)操作することができます。
関数型言語では、リストの一般的な定義(ここHaskellで指定)は次のとおりです。
data List a = Empty
| Cons a List
これは、リストが空であるか、値と別のリストのタプルであると言います。それを代数表記に変換すると、次のようになります。
この定義は、リストには、三などの、いずれかのユニット、または1つの項目のタプル、または二つのアイテムのタプルであること、次に言うあるリストの定義!
ワンホールコンテキストに移ります。ワンホールコンテキストは、製品タイプから「価値を引き出す」ときに得られるものです。例を挙げましょう:
3タプルから値を取得すると、2タプルが得られますが、3つの異なるバリアントがあります。
最後の例では、リストを使用してみましょう。
リストに元の式を使用する場合:
以下を取得するために再配置できます。
(表面的にはこれはナンセンスに思えるかもしれませんが、この結果のテイラー系列をとると、先ほど導出した定義が得られます。)
これを区別すると、興味深い結果が得られます。
したがって、1つのリストがリストのペアになりました。実際、これは理にかなっています。生成される2つのリストは、元のリストの穴の上下の要素に対応します。
自動化 -ロボット工学と同様に、自動化には多くの人間の行動の定量化が必要になる場合があります。
計算 -証明の解を見つけるには、しばしば計算が必要です。
ビジュアライゼーション -高度なアルゴリズムを使用するには、cos、sine、pi、eなどの計算が必要です。特に、ベクトル、衝突フィールド、およびメッシュを計算する場合。
ロジスティクスとリスク分析 -タスクが可能かどうか、関連するリスク、および成功の可能性の割合を決定します。
セキュリティ -ほとんどのセキュリティは計算なしで実行できます。ただし、説明が必要な多くの人は、数式で説明を好みます。
AI - AIの基本は計算なしで利用できます。ただし、高度な動作、群知能/ハイブマインド、複雑な価値ベースの意思決定を計算します。
医療計算 -ほとんどの健康データを視覚化するには、EKG測定値などの計算が必要です。
科学と工学 -航空宇宙、占星術、生物学、化学、工学など、ほぼすべての科学分野で計算を行う場合、微積分が必要です。
プログラミングの多くの人々は、微積分を使用せずにキャリア全体に進むことができます。しかし、あなたが仕事をする気があるなら、それは非常に貴重であると証明できます。私にとっては、自動化、ロジスティクス、視覚化で最も効果的でした。特定のパターンを識別することで、パターンを単に無視したり、パターンを模倣したり、優れた方法をまとめて開発したりできます。
実際、微積分を使用する可能性はほとんどありません。ただし、実質的に他のすべての科学分野は微積分を使用しており、科学の学位に取り組んでいます。大学の科学の学位が何を意味するかについての特定の期待があり、それらのことの1つは微積分を知っていることです。使用しない場合でも。
微積分学がうまくいかなくても大丈夫ですが、離散数学にある程度の努力を払ってください。離散的な数学が作用する現実世界のプログラミングの問題が多くあり、その原理を知らないと他のコーダーの前で恥ずかしくなります。
多くの人々がすでにCSでアプリケーションを提供しています。ただし、予想以上の場合にCalculusが見つかることがあります。
オートマトンを知っているなら、このpdfは読む価値があるかもしれません。
より具体的な例:
これらの他の優れた答えに、この点を追加します:テストの厳密さ。
一部のアプリケーションのテストケースの作成では、計算を使用して、予想される実行時間、メモリサイズを予測し、データ構造を調整するときに最適なパラメーターを選択する必要がありました。これには、予想される丸め誤差の理解などが含まれます。
統計については他の回答でも言及されていますが、最適化アルゴリズムや、微積分を含む数学的原理に基づく質素なストリーミングアルゴリズムなど、モンテカルロアルゴリズムについて具体的に言及したいと思います。
微積分が必要な場所で私が働いた特定の産業は次のとおりです。
ファイナンス(取引プラットフォームの作成)
保険(what-ifシナリオにおける保険契約の数値統合による予想保険金の損失の計算)
物流(輸送ルートの統合の最適化)
信号処理
積分-積分部分-は、CSで加算について考えるための基盤として直接使用されます。集計に関するKnuthの具象数学セクションのいずれかの部分を操作すると、計算に共通の規則をすぐに認識できます。連続ケースの一部を理解すると、離散を考慮するためのツールが得られます。
CSスタディの多くの用途には、変化を監視するプログラミングシステムが含まれ、場合によっては未来を予測しようとします。これらのシステムの周りの数学は微分方程式と線形代数に根ざしており、微分方程式は...計算です。微分方程式の部分により迅速に移行することを提唱するGibert Strangのような教師がいますが、それはまだ微積分のサブセットです。変化がシステムの変化に依存する場合、直感的でなく非常によく理解されている方法で不安定(および安定)になり始めます。賢明な線形システムが非線形に振る舞う理由を理解するには、微積分のツールが必要か、問題空間のためにそれらを再発明する必要があります。
そして最後に、CSはしばしば他の人の仕事を読んで理解することを必要とし、微積分は多くの共有語彙、慣習、および歴史への最初の露出です。