2

私は現在、ソフトウェア工学を勉強しています。私のコースには、計算理論とアルゴリズムの分析が含まれています。たとえば、チューリング マシンをソフトウェア エンジニアリングや単純なプログラミングに関連付けるのは難しいと思います。だから私の質問は:

コンピューター サイエンスで重要な役割を果たす理論的な科目をソフトウェア エンジニアリングの分野に含めるのはなぜですか? または、PDA、TM、P、NP などの知識をソフトウェアの開発にどのように適用できますか? 2つの間のリンクが表示されません。

4

3 に答える 3

5

多少の理論は常に必要です。正しい方法で考えるのに役立ちます。最初のアプローチでは非常に孤立しているように見えるかもしれませんが、その真の意味を理解することができれば、特にあなたの分野でその特別な活力を得ることができます.

たとえば、あなたが言及したチューリングマシンは、アルゴリズムの複雑さの研究だけでなく、機械的計算の限界と可能性を理解するための古典的な論理および数学モデルです。
もちろん、ソフトウェア エンジニアは科学者よりも理論が少なくて済み、より多くの技術を必要としますが、ここでは、必要なすべての理論的基礎について話しています。

于 2013-05-30T10:01:09.197 に答える
2

これらのテーマが含まれている理由は 2 つあります。

  1. Gengiolo が言うように、これらは、ほぼ間違いなく、私たち全員が持つべき理論的基礎を形成します。

  2. これらの基本原則を理解しようとすることで、私たちは推論スキルを開発し、それらを複雑な学際的な問題に適用することができます。

私は、ソフトウェア エンジニアリングを学んでいる間に学んだ理論的な、または実践的な科目をそのままの形で使用することはめったにありません。しかし、これらの原則の基本的な知識があれば、私はより優れたエンジニアになり、採用しやすくなると信じています。

于 2013-05-30T13:42:13.407 に答える
1

まあ、ソフトウェア工学教育には問題があります。そしてコンピューターサイエンスも。

チューリング マシンを研究することで、アルゴリズムの複雑さや計算の限界についてより多くの洞察が得られるとは思いません。しかし、それらは私たちの歴史の一部です。少なくとも私たちはアラン・チューリングを知っているべきです:-)

そして、ソフトウェア工学や計算機科学の「理論的根拠」について語ることは難しい。また、誰かがあなたに NP 難しい問題を解くように頼むのも現実的ではありません。多くのソフトウェア開発者は、「ルーチン開発」タスクを実行します。

だからあなたは「あなたの気持ちに合っている」のです。しかし、ソフトウェア開発は「コードを書くこと」や「新しいバズ技術を学ぶこと」だけではありません。やるだけだと思考ツールが「鈍い」ものになってしまいます。それらを鋭く保つために、アルゴリズムの複雑さ、NP などの問題分類、およびその他のコースを思考練習として検討してください。想像力を育むために、「ひも理論」[物理学] などの他の学部の興味深いコースを受講するか、人間の本性を理解するために「人類学」コースを受講してみてはいかがでしょうか。:-)

真実は、私たちの教育は私たちからスイスのナイフを作ろうとして いるということです.あらゆることから少し知ることですが、本物のナイフや本物の缶切りなどではありません.[深い知識はありません]彼らは、あなたが「 「本物の缶切り」から始められる「ミニチュア缶切り」をお教えします。

于 2013-05-31T20:21:21.253 に答える