コンピュータ科学者にとって離散数学はどのくらい重要ですか?[閉まっている]


8

タイトルの通り、

コンピュータ科学者にとって離散数学はどのくらい重要ですか? 背景:私は、並列計算の分野で働くための優れた基盤を得るために、アルゴリズム、複雑性、計算可能性理論、プログラミング言語などの基礎に焦点を合わせて修士号を取得しています。

もう少し背景:私の大学では、修士号のコースの選択に多くの自由を与えています。正式には「ソフトウェアエンジニアリング」と呼ばれていますが、幅広い選択科目があるため、別の焦点が可能です。興味深いことに、選択科目のどれも数学の講義ではありません!学位として使えなくても、半学期を成功裏に修了する離散数学のコースを考えています。この質問で、私は努力が正当であるかどうかを調べようとしています。


1
私は学士号で離散数学を持っていました...コンピュータグラフィックスと人工知能で私を助けました。
K ...

回答:


27

「アルゴリズム、複雑性、計算可能性理論とプログラミング言語」に焦点を当てて修士号を取得しようとしているコンピューター科学者として、離散数学は非常に重要だと思います。

離散数学は、プログラミング言語よりも焦点の「アルゴリズム、複雑さ、および計算可能性理論」の部分を支援します。集合論、確率、組み合わせの理解により、アルゴリズムを分析できるようになります。アルゴリズムのパラメーターと制限を正しく識別し、問題/ソリューションがいかに複雑かを理解することができます。

プログラミング言語に関する限り、離散数学は実際にプログラムする方法には触れません。むしろ、ソフトウェアシステム設計仕様に使用できます。大学では「ZED」を使い、集合論を使ったシステムの設計をしていました。最近では、ソフトウェアシステムの何パーセントが集合論で設計されているかわかりません。

離散数学を理解するための最後の重要な概念はブール代数です。これは論理的なソリューションを作成するだけでなく、プログラミングにも非常に役立ちます。ソフトウェアは、その中のブール論理で簡単に作成/破壊できます。

全体として、離散数学はほとんどの場合、数値クラスではありません。それはあなたが他のクラスがしない方法であなたの脳を使うようにします。これは論理的思考のクラスであり、証明/論理計算を行うのが簡単ではない場合は、忍耐力が必要です。コースを通過するのに十分に「抽象的に」考えることができなかったため、メジャーを変更する人を見てきました。

要するに、私は、離散数学がコンピュータサイエンティスト/ソフトウェアエンジニアにとって重要なクラスになるというスタンスをとります。


1
答えるつもりだったが、これは本質的に私の答えです。
Eliot Ball

数年になりますが、離散数学が言語に移行したことを覚えています。クラスの前半はブール代数とセットで、後半は言語とオートマトンでした。2つのクラスを組み合わせるだけでしたか?
Chris

クラスのペースにもよりますね。それがたくさんの理論について学んでいるなら、私はあなたがそれが一つのクラスであると言って逃げることができると思う。しかし、Set言語を使用してオートメーション仕様のようなものを作成している場合は、2つのクラスの組み合わせになります。離散数学は、理論を詳しく説明するためだけに理論を教え、例(つまり宿題)を使用するだけの十分に広いトピックです。
Kcvin

2

実際、離散数学はコンピュータサイエンスのバックボーンであり、私は理論的なコンピュータサイエンスと言っています。離散数学の研究なしでは、コンピュータサイエンス-ロジック開発の核心を逃します。それはあなたのソリューションに合理的な明快さと問題を分析する正式な方法をもたらします。

コンピュータサイエンスのすべての分野は、データベース、ニューラルネットワーク、コンピュータ組織、コンパイラ、ネットワークプログラミングなど、個別のオブジェクトに関連しています。私はそれがコンピュータサイエンスの「親主題」であり、誰もがこの主題を研究する必要があると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.