现代软件工程 第一章 概论 第5题——韩婧
我所在的学校有计算机科学以及软件工程专业。
计算机科学是系统性研究信息与计算的理论基础以及它们在计算机系统中如何实现与应用的实用技术的学科。它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域,有些强调特定结果的计算,比如计算机图形学;而有些是探讨计算问题的性质,比如计算复杂性理论;还有一些领域专注于怎样实现计算,比如编程语言理论是研究描述计算的方法,而程序设计是应用特定的编程语言解决特定的计算问题,人机交互则是专注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
从名字上看,计算机科学重点在“科学”,软件工程重点在“工程”。计算机学科特点就是干净,在每个方面都有较为清晰的定义,每一个结果都是建立在早期的证明中,更加注重严谨的理论学习。而软件工程学科经常用到如“一般来说”、“通常”等具有不确定性的词汇,软件开发而言几乎没有系统严谨的理论支撑,多靠实际经验。
计算机科学涉及的面比较广,而软件工程是其中必不可少的一部分,软件在计算机领域所占的比重很大。计算机更偏向于理论,而且会开设很多和硬件相关的课程,培养的一般是搞研究的人才,而软件更偏重于动手和结合实际,与企业结合比较紧密,基本不涉及硬件,培养的一般为高级开发人员,还有一些是做软件工程管理的人才,在学科课程上多接触软件开发方面。比如软件工程专业大多开设软件需求分析、UML建模语言、软件体系结构、软件项目管理、软件测试等课程,而计算机科学课程较广泛,出去软件工程所涉及的部分课程外,还会学习汇编语言、数字电路与逻辑设计、计算机组成原理、嵌入式系统等。
在毕业出路方面,我的看法是两者的区别并不太大,根源同为计算机学科,该掌握的知识大多有所涉及,只是软件工程专业毕业后从业软件开发较多,而计算机科学专业的学生则除了软件开发外可能还会从事硬件的工作。
总之,通俗而谈,计算机科学是学习计算机是什么样的,为什么是这样。而软件工程学习的是计算机能够做什么,怎么做的。
(引用百度百科计算机科学、软件工程;果壳网http://www.guokr.com/question/251117/)