软件工程与计算机科学的关系

软件工程中的"工程"二字也大有来历,人们把下面的活动称之为工程:

创造性地运用科学原理,设计和实现建筑、机器、装置或生产过程;或者是在实践中使用一个或多个上述实体;或者是实现这些实体的过程。远古时期,人们互相协作建成了不少工程奇迹,其中有些现在还能看到(例如希腊雅典的帕特农神庙、古罗马帝国的罗马水道、中国的长城等),我们想象这些工程在设计和建造的过程中一定牵涉到了大量的计算、计划、各类角色的协作,以及成百上千的人,动物、机械的劳作。这些因素在后来出现的各种"工程"(如化学工

程、土木工程)中依然存在。中国大陆的高校中大致有下面三种讲计算机软件的机构:

计算机科学与技术系或学院

软件学院

软件工程系、软件工程学院

很多同学在报名时不知道它们的区别,进去之后发现除了收费高低不同,学的科目差不多,毕业后大部分同学都是写程序,似乎差别不大13?其实,它们的区别还是挺大的。和数理化相比,计算机科学是一内相当年轻的学科,虽然我们可以追溯到巴贝奇(Charles Babbage:1791-1871)、埃达(AdaLovelace,1815-1852)、图灵(AlanTuring,1912-1954)等计算机科学的先驱,但是"ComputerScience"这个学科的名字是1959年才正式提出,综合维基百科中"计算机科学"的词条和微软学术搜索(Microsoft Academic Search)注释9对于计算机科学子领域的划分,计算机科学(Computer Sci-ence)这一学术领域可以分为下面这些领域:

计算理论(Theoretical Computing

信息和编码理论(Information and Coding The-ory)算法和数据结构(Algorithm and Data Struc-ture,形式化方法(Formal Methods)

程序设计语言(Programming Language)偏实践的领域:计算机体系结构(Computer Architecture)

并行计算和分布式系统(Concurrent,Parallel and DistributedSystem)

实时系统和嵌入式系统(Real Time and Embed-ded System)

操作系统(Operating System)

计算机网络(Networking)

科学计算(Scientific Computing)

安全和密码学(Security and Cryptography)

人工智能(Artificial Intelligence)

这个领域酒盖了许多相关的领域,如模式识别(Pattern数据挖掘(DataRecognition)、机器学习(MachineLearning)Mining)、信息提取(Information Retrieval)等。

计算机图形学(Computer Graphics)、计算机视觉(ComputerVision)

多媒体(Multimedia)

数据库和大规模数据处理(Database and Large Scale DataProcessing)

·万维网(World wide Web)

自然语言处理和语音(Natural Language Pro-cessing and Speech)人机交互(Human Computer Interaction)

软件工程(Software ngineering

根据我们对软件特性及工程这一概念的了解,可以看到,计算机科学中的理论研究部分,大多可以从形式上证明,与数学、离散数学、数理逻辑密切相关;计算机科学中与实践相关的部分,都和数据以及其他学科发生关系;软件工程则和人的行为、现实社会的需求息息相关。软件工程的研究目标(软件的开发、运营和维护)都有"人"出现,这些"人"可以是项目需求的提供者,可以是软件的开发人员,还可以是软件的用户。这一特征与其他计算机科学的子领域明显不同。其实,在任何科学领域中,都有偏理论的子领域和偏应用的子领域(例如数学与应用数学),当偏应用的领域得到长足发展之后,就会更多地被大家所熟知,甚至成为一内独立的学科,这并不说明相对应的两方面有高低或优劣之分。

相关推荐
LDR0066 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术6 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园6 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob6 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享6 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.6 天前
C语言--day30
c语言·开发语言
何以解忧,唯有..6 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽6 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
云水一下6 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
飞天狗1116 天前
零基础JavaWeb入门——第五课第二小节:九大内置对象 · 第2个:response(响应对象)
java·开发语言