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

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

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

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

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

软件学院

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

很多同学在报名时不知道它们的区别,进去之后发现除了收费高低不同,学的科目差不多,毕业后大部分同学都是写程序,似乎差别不大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

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

相关推荐
ajsbxi2 小时前
【Java 基础】核心知识点梳理
java·开发语言·笔记
阿珊和她的猫3 小时前
深入理解与手写发布订阅模式
开发语言·前端·javascript·vue.js·ecmascript·状态模式
懷淰メ3 小时前
python3GUI--模仿百度网盘的本地文件管理器 By:PyQt5(详细分享)
开发语言·python·pyqt·文件管理·百度云·百度网盘·ui设计
新子y3 小时前
【小白笔记】普通二叉树(General Binary Tree)和二叉搜索树的最近公共祖先(LCA)
开发语言·笔记·python
重整旗鼓~3 小时前
28.redisson源码分析分布式锁
java·开发语言
爱学习的uu3 小时前
CURSOR最新使用指南及使用思路
人工智能·笔记·python·软件工程
哼?~3 小时前
C++11标准 上 (万字解析)
开发语言·c++
VB.Net4 小时前
C#循序渐进
开发语言·c#
楼田莉子4 小时前
C++学习:C++11扩展:constexpr特性
开发语言·c++·学习