数学のトピックまたはコンピュータープログラミングの習熟度を高める分野ですか?[閉まっている]


14

一般に、数学者であるか、数学の背景を持つコンピュータープログラマーは、アルゴリズムとコンピュータープログラミング全般に関して非常に優れています。

私が言っていないこと:

優れたコンピュータープログラマーになるには数学が必要です。プログラミングには数学が必要です。優秀な数学者は優秀なプログラマーであり、その逆も同様です。

私が言っていること

数学を学びたいと思うのは、それが私をより良いプログラマーにすると信じているからです。数学のどの分野/トピックが私がより良いプログラマーになるのに役立ちますか?フォームの回答をmath topic - corresponding cs area歓迎します。

注意:トピック外と宣言されたStackOverflowでこれを尋ねました。暇なときに、コンピュータープログラミングでやっていた方法でそれを学びたいです。前もって感謝します。


1
StackOverflowがこの質問はトピック外であると宣言して驚いた。私(退職したプログラマー)の観点からすると、この質問はSOにとって最も重要な質問の1つであるはずです。
-scaaahu

1
StackOverflowには、特定のプログラミングの問題に関する詳細があります。これはCSEducatorsに最適であり、SoftwareEngineeringに取り組んだかもしれません。
ナット

1
以前にもこのような質問がありましたが、それらはすべて同じ問題を抱えています。それらは広すぎ、主観的すぎます。唯一のコンセンサス答えは:それのすべて
ラファエル

@Raphaelまず、私はModの決定を尊重します。しかし、私はOPに代わって質問をしたいと思います。とにかく質問を改善して、再開できるようにしますか?それを改善する方法がない場合、OPがこの質問をするために行くことができる他のSEがありますか?(明らかに、OPは既にSOを試行しました。アカ​​デミアとは密接に関連していないため、アカデミアSEに適合しない可能性があります。)
scaaahu

特定の問題に対する正式な解決策を尋ねる質問は問題ありません。学習アドバイスの質問は、一般にSE形式には適していません。「意見に基づく」密接な理由はすべてのサイトに適用されます!
ラファエル

回答:


19

そのため、CSの科学に関連する数学の多くの分野がありますが、具体的にはプログラミング用です。

  • グラフ理論:これは大きなものです。グラフとツリーはどこにでもあります。ネットワーク、マップ、ビデオゲームのパス。ルービックキューブの解法のようなものでさえ、グラフアルゴリズムとしてモデル化し、A *で解くことができます。

  • 離散数学:グラフ理論は別として、この領域を一般的に知っていると役立ちます。それは帰納法による証明でいっぱいで、再帰を理解するのに非常に役立ちます。これはプログラミング、特にデータ構造で非常に役立ちます。セット、カウント、包含/除外、ブ​​ール論理などについて知ることは、時々役立つことがあります。

  • 型理論:驚くことではありませんが、型理論を知っていると、型付き言語でのプログラミングを理解するのに役立ちます。サブタイピングの理論を知ることは、Javaに似た言語の共分散と反分散を理解するのに役立ちます。HaskellやPurescriptのような型の多い言語を学習する場合、パラメトリック多型のようなものを知ることは明らかに役立ちますが、Scala、TypeScript、Rustのような言語は業界で一般的になりつつあり、型はその中心にあります。

    これを極端なものにすると、Coq、Agda、およびIdrisのようなものが得られます。これらは、プログラムに関する非常に正確な正確さの特性を証明するために使用できます。

  • 計算可能性と複雑性の理論:問題を解決できないか、NP困難であるかを知ることは便利です。同様に、NP困難な問題を本当に解決する必要がある場合、近似アルゴリズム、固定パラメーターの扱いやすさ、または低ベース指数アルゴリズムの背後にある理論のいくつかを知っておくと役立ちます。

  • オートマトン理論:多くの問題はさまざまな状態マシンでモデル化できるため、それらの特性を理解することは有用です。

フィールド固有の領域もいくつかあります。

  • 統計:機械学習またはビッグデータを実行している場合、これは必須です。

  • 線形代数/ベクトル計算:これらの両方は、機械学習、グラフィックス、シミュレーション、または画像/音声処理に重要です。

  • 格子理論:コンパイラーやプログラムの最適化で作業をしている場合、これは常に発生します。どこでも固定点!

  • カテゴリ理論:コーディングする必要はありませんが、型理論に深く浸されているものには役立ちます。

編集:私が忘れていたとは信じられない:

  • 暗号化:セキュリティ、ハッシュ、デジタル署名などに興味がある場合は、数論、群論、場の理論、楕円曲線理論などを学んでください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.