首先,软件工程是一门学科,用于研究用工程化方法构建和维护有效的、实用的和高质量的软件;而计算机科学是一门科学领域,用于研究计算机及其周围各种现象和规律的科学,亦即研究计算机系统结构、程序系统(即软件)、人工智能以及计算本身的性质和问题。所以从本质上来说,我认为计算机科学包含了软件工程,而软件工程只是计算机科学其中的一个分支。
具体的来说,计算机科学分为理论计算机科学和实验计算机科学两个部分。后者时常称为“计算机科学”而不冠以“实验”二字。前者还有其他名称,如计算理论、计算机理论、计算机科学基础、计算机科学数学基础等。在数学文献中所说的计算机科学,一般是指理论计算机科学。实验计算机科学还包括有关开辟计算机新的应用领域的研究。 就目前而言,计算机科学是一门年轻的科学,它究竟包括哪些内容,还没有一致公认的看法。一般认为,计算机科学主要包括理论计算机科学、计算机系统结构、软件工程的一部分和人工智能。
培养目标,主要为具有计算机应用技术的基础理论知识,具备计算机及相关设备的维护与维修、行业应用软件、平面图像处理、广告设计制作、动画制作、计算机网络及网站建设与管理、数据库管理与维护等应用能力和操作能力的高等技术应用性人才。
而软件工程,《计算机科学技术百科全书》中给出的定义为软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。一般用于在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。
两者之间,虽然都是计算机的相关科目,但计算机科学主要用于人们对计算机这门学科的了解和实现,软件工程则更多的用于软件产品上,所以两者之间有本质上的区别,相互联系,但针对的对象不同。