导航菜单
首页 >  考研软件工程和计算机技术的区别  > 软件工程VS.计算机科学与技术

软件工程VS.计算机科学与技术

 

随着互联网行业的飞速发展,越来越多的学生想要进入这一热门领域。权威调研数据显示:2020年填报计算机类志愿的中国理科高中毕业生高达42.3%,高居专业“热度榜”之首。

图1艾媒咨询2020H1中国理科高考志愿填报热门专业调研数据

然而,想要填报IT计算机类志愿的学生在选择具体专业时普遍感到疑惑:软件工程跟计算机科学与技术专业到底有何区别有没有差别?哪一个更适合我?今天今天就让小编明确地告诉你:肯定有区别!且听我一一为你道来!来为你答疑解惑!

 

PART 1 软工计术科,唇齿相依

计算机科学与技术(Computer Science and Technology,简称CST)研究计算机的设计与制造以及与之相关的信息表示、收发、存储、处理、控制等的理论方法和技术。

软件工程(Software Engineering,简称SE)研究用工程化方法构建和维护有效的、实用的、高质量的软件,涉及数学模型、算法、程序设计语言,、数据库,、软件开发工具,、系统平台,、标准,、设计模式等多方面。

有人做了这样的类比:软件工程与计算机科学与技术就像是专科医院与综合性医院。而事实上,这两个专业的差异程度远超出这两种医院之间的差异。

众所周知,计算机科学与技术专业一般都有一门叫“软件工程”的课程。你没有听错,堂堂软件工程一个专业仅仅是计算机科学与技术专业的一门课而已。软件工程也往往因此被误认为是一个小的专业。

图12 华南理工大学某高校2020级计算机科学与技术课课程表(节选)

实际上,几乎所有专业都有一门名为“计算机基础”的课程。所以,虽然软件工程在计算机科学与技术专业里只是一门课,但这并不代表软件工程只是一个小的专业,更不代表软件工程不重要!目前在利用计算机专业知识进行实际项目开发的过程中,软件工程知识越来越成为保证项目的成功率与健壮性不可缺少的关键。因此,软件工程课程在部分院校的计算机专业课程中的地位逐渐提升,从选修课程变成必修课程。

此外,软件工程领域也会用到很多计算机科学与技术的知识与工具。这两个专业之间的相互支持与应用导致它们总被人们误认为是几乎一样的专业。事实上,软件工程除了涉及计算机科学与技术的许多知识与工具之外,还涉及了管理、经济、工程方面的知识,以及数学建模与设计的方法等。例如,大众印象中的程序员在写软件时一般会考虑数据结构、程序语言、操作系统与编译原理等计算机科学与技术相关内容;而软件工程的专业人士在写软件时除了考虑上述内容之外,还会考虑软件范围与需求、软件系统架构 (开发技术)、软件评审与测试(质量保证)、软件运行与维护、软件估算与成本控制、项目管理、软件配置管理(包含文档规范和版本管理)、团队建设等。可见,“码农”一词并不足以刻画一名合格的软件工程专业人士。

图23 SE软件工程专业人员在开发软件时要用到很多计算机技术以外的知识与CST专业的开发者写软件的脑洞对比

从专业的特点来看,计算机科学与技术是一门侧重工具和技术的学科,而软件工程是一门侧重工程能力培养的学科。因为计算机科学与技术有计算机软件的分支,软件工程更是以软件为核心,两者在“软件”这一词上有所交集。简单来说,计算机科学与技术为软件工程提供了软件开发、运行的载体与支撑工具,而软件工程则是为计算机软件的分析、设计与开发等提供了方法与标准。如果说土木工程是人类设计与建筑物及其配套设施落实的“桥梁”,那么软件工程则是人类逻辑与计算机科学与技术载体表示与执行的“桥梁”,主要体现在建模方法(如何表示人类的逻辑)与工程标准(如何高质量地实现人类的逻辑)上。

图34 软件工程专业人员在设计软件时需要用到许多计算机的工具一般情况下从CST和SE角度看软件设计与开发

 

PART 2 软操计论,和而不同

对于学生来说,课堂内容是汲取知识的重点环节,那么软件工程和计算机科学与技术在教学内容上有什么区别呢?以某双一流大学华南理工大学计算机科学与技术专业与软件工程专业的本科生培养方案为例,两个专业的学生都需要学习的专业基础课包括算法分析与设计、数据结构、编程语言、离散数学等。但“君子和而不同”, 计算机科学与技术和软件工程也都有自己的特色。计算机科学与技术有

相关推荐: