「アルゴリズム、複雑性、計算可能性理論とプログラミング言語」に焦点を当てて修士号を取得しようとしているコンピューター科学者として、離散数学は非常に重要だと思います。
離散数学は、プログラミング言語よりも焦点の「アルゴリズム、複雑さ、および計算可能性理論」の部分を支援します。集合論、確率、組み合わせの理解により、アルゴリズムを分析できるようになります。アルゴリズムのパラメーターと制限を正しく識別し、問題/ソリューションがいかに複雑かを理解することができます。
プログラミング言語に関する限り、離散数学は実際にプログラムする方法には触れません。むしろ、ソフトウェアシステム設計仕様に使用できます。大学では「ZED」を使い、集合論を使ったシステムの設計をしていました。最近では、ソフトウェアシステムの何パーセントが集合論で設計されているかわかりません。
離散数学を理解するための最後の重要な概念はブール代数です。これは論理的なソリューションを作成するだけでなく、プログラミングにも非常に役立ちます。ソフトウェアは、その中のブール論理で簡単に作成/破壊できます。
全体として、離散数学はほとんどの場合、数値クラスではありません。それはあなたが他のクラスがしない方法であなたの脳を使うようにします。これは論理的思考のクラスであり、証明/論理計算を行うのが簡単ではない場合は、忍耐力が必要です。コースを通過するのに十分に「抽象的に」考えることができなかったため、メジャーを変更する人を見てきました。
要するに、私は、離散数学がコンピュータサイエンティスト/ソフトウェアエンジニアにとって重要なクラスになるというスタンスをとります。