我被激动地通过我在Software Engineering Videos上看到的一个问题的答案提出这个问题 . 这是答案:
顺便说一句,请注意你在这里链接的内容 . 软件工程和计算机科学是非常不同的学科 . 软件工程包括软件开发生命周期(包括方法和过程),建模,通信,企业SE文化等,并且更少关注代码,算法,效率等 . JoshJordan于5月12日回答
这是我的评论:
我有点不同意 . 软件工程是计算机科学的一门子学科 . 软件工程的一个子领域是构建,它是关于代码的 . 请参考SWEBOK .
我认为算法不属于软件工程,但面向对象编程,安全编程等都没有 .
有人说这是重复的,但计算机工程是关于硬件和软件工程是关于软件 .
8 回答
在最简化和简单化的术语中: computer science is theory, and software engineering is practice . 这类似于例如化学(键,价壳,周期表,量子理论)和化学工程(工业 生产环境 ,纯度产率,在给定一组约束下找到最佳材料)之间的关系 .
我只是通过/读了一篇文章 . 关于这个话题:Software Engineering ≠ Computer Science
文章中的这张图片总结得很好:
正如伟大的计算机科学着名的那样,“计算机科学不再是关于计算机而不是天文学是关于望远镜的 . ”因此,说软件工程(与计算机有关)是计算机科学的一门子学科,就像说什么光学(与望远镜有关)是天文学的子学科;-) .
我,我关心望远镜,oops我的意思是计算机,所以很明显我不是天文学家,哎呀我的意思是计算机科学家;-) [无论wikipedia坚持说我;-)],就像我曾经写过my blog .
计算机科学更多的是理论而不是实践;软件工程仍然是理论,但更多的是动手;计算机信息系统更具实践性和理论性,而且管理信息系统完全没有理论 .
对于堆栈溢出的精神:
http://en.wikipedia.org/wiki/Computer_science
http://en.wikipedia.org/wiki/Software_Engineering
那么,所有这些学科都只是Phylosophy的一个分支学科 .
计算机科学:它涵盖了如何使计算机做某事所涉及的核心概念和技术 . 学习通过编写软件来编程计算机是必不可少的,并且计算机编程在大多数计算机科学课程中使用 .
软件Engineering:SE是关于设计和开发软件的 . 技术,技术,良好实践,测试等 . 举个例子,您的浏览器是由Software Engineers开发的 .
我会说计算机科学是整个理论和应用领域,涉及在计算机上进行计算以及包含计算机的工作方式 . 它是计算机的完整科学 .
软件工程是计算机科学的一个小得多的子集,它与编写实际程序的理论,概念和应用程序有关 .
计算机科学不仅仅指编写程序的内容 .