ソフトウェア工学とコンピューターサイエンスは別々の専攻ですか?[閉まっている]


19

何十年もの間、ソフトウェア開発者になるために受け入れられた学位は「Compter Science」でした。その学位が本当にソフトウェアを開発する準備をしているかどうかについて、すでにいくつかの質問
あり ました。

過去8年ほどで、いくつかの学校はプログラミングの複数の異なる専攻を提供し始めました。私の学校のカリキュラムを使用する:

  • コンピューターサイエンス。最初の1年はイントロプログラミングコースから始まり、その後、理論的なコンピューターサイエンス、アルゴリズム、およびOSの一部に焦点を当てます。ほとんどのクラスには、ソロまたはペアで行われるいくつかの小規模なプロジェクトと宿題が含まれます。
  • 同じイントロプログラミングコースから始まるソフトウェアエンジニアリングは、いくつかのクラスの理論を実行し、ソフトウェア開発プラクティス(テスト、プロセス方法論、ソフトウェアメトリック、要件収集)およびソフトウェア設計(分散システム設計、情報システム設計)に進みます、リアルタイム/組み込み設計、サブシステム設計など)

学校によってその方法は異なります。したがって、上記は私がよく知っている実世界の例にすぎません。私が尋ねるのは、プログラミングに明確な専攻が必要なのでしょうか?


1
あんまり。これらのスキルを習得する方法は、それらのコースを教えることではなく、実際のプロジェクトの仕事を与えること
です-Casebash

なぜそうではないと思いますか?RITは両方を学位として提供します。
アンディ

Andy:わかった。RITに行ってSEの学位を取得した。私は、それらが現在分離されているかどうかでなく、分離すべきかどうかを尋ねていました。:)
フィッシュトースター

回答:


28

はい、そうでなければなりません。

コンピュータサイエンスとソフトウェアエンジニアリングの関係は、物理学と機械工学の関係と同じです。1つは理論的背景を提供し、もう1つはそれらの理論と優れたエンジニアリング原則を取り入れ、ソフトウェアの設計と実装に適用します。

新しいより優れたソフトウェアを作成するには、両方が必要です。優れたコンピューターサイエンス教育は、新しい優れたアルゴリズム、データ構造、プログラミング言語とパラダイム、コンパイラー、およびソフトウェアシステムを強化するために使用できる他の多くのものを生み出すように人々を訓練します。一方、優れたソフトウェアエンジニアリング教育では、計算の科学的研究を通じて得られたこれらのツールと知識、およびソフトウェア開発ライフサイクルとプロセスモデルの知識を活用して、顧客が望んで必要とするシステムを実際に構築するように訓練します。


2
物理学/工学の類推は私がよく使うものです。ブリッジを設計および構築するために物理学者を雇わないのに、プログラムを設計および構築するためにコンピューター科学者を雇うのはなぜですか?
HerbN

1
コンピューターサイエンスプログラムは、典型的な物理学プログラムよりもプログラムの構築方法についてもう少し多くを教えるためです;)
ウェインワーナー

2
@WayneWerner:いいえ、彼らは本当にそうではありません。
-DeadMG

3

一般的なCSカリキュラムでは、業界向けのカリキュラムが用意されていないことはよく知られています。そのため、ソフトウェアエンジニアリング専攻が必要であり、この2つは明確に区別する必要がありますが、同じ学部に所属することは間違いありません。


1

それらは異なる学問分野であるべきですが、学部レベルではありません。学部課程でソフトウェアエンジニアリングに必要なものをすべて詰め込む方法がわかりません。システムエンジニアリングの学士号(EE、CE、Mechanical Eng、またはCSで学位を取得した後にMSを取得する)が表示されないのと同じように、ソフトウェアエンジニアリングでも同様です。

これは、コンピューターサイエンスやMISに大きく基づいた学際的なアプローチです。分野での高度なコースワークや実務経験を追求した後、人々は実際にソフトウェアエンジニアになります(タイトルだけでなく)。

ほとんどの人はソフトウェアエンジニアリングの肩書きを持っていますが、コーディングを超えて実際に進歩したことはありません。これは彼らの意見ではありませんが、観察です-彼らはコーディングを超えた仕事の経験を蓄積するのに役立つ仕事の種類に十分にさらされていません。さらに悪いことに、ほとんどの仕事と組織はひどく運営されており、適切なソフトウェアエンジニアリングを行うことはできません。

さらに、仕事や学力がある程度なければ、ソフトウェア工学の教材はほとんどの学部生の頭上を飛ぶだけです。


あなたは、彼らが「学士号にソフトウェアエンジニアリングのために必要なものをすべてアップけいれん」方法を知りたい場合は、米国で最初の学部SEプログラムを見てみましょう:se.rit.edu
トーマスオーウェンズ

私が何かを逃さない限り、彼らはそれをcr屈にしませんでした。彼らは単に192単位の拡張カリキュラムを作成しました。これは、CSおよびMISで見られる一般的な60〜80単位の学部課程カリキュラムを超えています。私は、上級年のフローと他のエンジニアリング分野の統合が好きです。従うことができる完璧なカリキュラムです。しかし、一般的な学部課程のコースだけではSEを取得できないというのが、私の論点を証明しているだけです。
luis.espinal

そして、私がここで見る1つの警告は、あなたがとても多くの労力を費やし、単一の非学位を取得するだけであるということです(ダブルメジャーまたは学部と卒業の学位を取得するための同様のコースワークを完了するのとは対照的に)。たぶん、そのようなSE学位がより広範になれば、その懸念はそれほど重要ではないでしょう。
luis.espinal

これは4分の1のシステムです。つまり、同じ大学のCS学位(または他の学部学位)とまったく同じワークロードです。最終的には、4年間のクラス(10週間のクラス、四半期ごとに1週間の試験、年間3四半期)、1年間の協力です。
トーマスオーエンズ

あんまり。作業負荷に関しては同等ではありません。現在、WPIで2番目のマスター(CE + EE)を追求しています。これは、同様の形式(3四半期、10週間のクラス+試験の1週間)です。経験から、これらのプログラムはより厳格で、通常の学部生の60〜80度以上を対象としています。プログラムを批判するものではありません。私は、学部レベルでソフトウェア工学を本当にカバーする必要があると思います。(典型的なCSは、もはや今日で十分なハンズオン、学際的な実習を覆っているため。)と同様のアプローチはまた、CSのために必要ではないはず
luis.espinal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.