计算机科学的领域

    作为一个学科,计算机科学涵盖了从算法的理论研究和计算的极限,到如何通过硬件和软件实现计算系统。CSAB(以前被叫做Computing Sciences Accreditation Board),由Association for Computing Machinery(ACM)和IEEE Computer Society(IEEE-CS)的代表组成,确立了计算机科学学科的4个主要领域:计算理论,算法与数据结构,编程方法与编程语言,以及计算机元素与架构CSAB还确立了其它一些重要领域,如软件工程,人工智能,计算机网络与通信,数据库系统,并行计算,分布式计算,人机交互,计算机图形学,操作系统,以及数值和符号计算。

理论计算机科学

广义的理论计算机科学包括经典的计算理论和其它专注于更抽象、逻辑与数学方面的计算。

计算理论

按照Peter J. Denning的说法,计算机科学的最根本问题是“什么能够被有效地自动化?”计算理论的研究就是专注于回答这个根本问题,关于什么能够被计算,去实施这些计算又需要用到多少资源。为了试图回答第一个问题,递归论检验在多种理论计算模型中哪个计算问题是可解的。而计算复杂性理论则被用于回答第二个问题,研究解决一个不同目的的计算问题的时间与空间消耗。著名的“P=NP?”问题,千禧年大奖难题之一,是计算理论的一个开放问题。

 

信息与编码理论

 

信息论与信息量化相关,由Claude E. Shannon创建,用于寻找信号处理操作的根本极限,比如压缩数据和可靠的数据存储与通讯。编码理论是对编码以及它们适用的特定应用性质的研究。编码(code)被用于数据压缩,密码学,前向纠错,近期也被用于网络编码。研究编码的目的在于设计更高效、可靠的数据传输方法。

算法

算法指定义良好的计算过程,它取一个或一组值作为输入,经过一系列定义好的计算过程,得到一个或一组输出。算法是计算机科学研究的一个重要领域,也是许多其他计算机科学技术的基础。算法主要包括数据结构、计算几何、图论等。除此之外,算法还包括许多杂项,如模式匹配、部分数论等。

程序设计语言理论

程序设计语言理论是计算机科学的一个分支,主要处理程序设计语言的设计、实现、分析、描述和分类,以及它们的个体特性。它属于计算机科学学科,既受影响于也影响着数学、软件工程和语言学。它是公认的计算机科学分支,同时也是活跃的研究领域,研究成果被发表在众多学术期刊,计算机科学以及工程出版物。

形式化方法

形式化方法是一种特别的基于数学的技术,用于软件和硬件系统的形式规范、开发以及形式验证。在软件和硬件设计方面,形式化方法的使用动机,如同其它工程学科,是通过适当的数学分析便有助于设计的可靠性和健壮性的期望。但是,使用形式化方法会带来很高的成本,意味着它们通常只用于高可靠性系统,这种系统中安全或保安(security)是最重要的。对于形式化方法的最佳形容是各种理论计算机科学基础种类的应用,特别是计算机逻辑演算,形式语言,自动机理论和形式语义学,此外还有类型系统、代数数据类型,以及软件和硬件规范和验证中的一些问题。

并发,并行和分布式系统

并行性(concurrency)是系统的一种性质,这类系统可以同时执行多个可能互相交互的计算。一些数学模型,如Petri网、进程演算和PRAM模型,被创建以用于通用并发计算。分布式系统将并行性的思想扩展到了多台由网络连接的计算机。同一分布式系统中的计算机拥有自己的私有内存,它们之间经常交换信息以达到一个共同的目的。

数据库和信息检索

数据库是为了更容易地组织、存储和检索大量数据。数据库由数据库管理系统管理,通过数据库模型和查询语言来存储、创建、维护和搜索数据。

应用计算机科学

尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。[25] 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。

著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。

计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。[21] 早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。

计算机科学和软件工程的关系是一个有争议的话题,随后关于什么是“软件工程”,计算机科学又该如何定义的争论使得情况更加混乱。David Parnas从其它工程和科学学科之间的关系得到启示,宣称计算机科学的主要重点总的来说是研究计算的性质,而软件工程的主要重点是具体的计算设计,以达到实用的目的,这样便构成了两个独立但又互补的学科。

人工智能

这个计算机科学分支旨在创造可以解决计算问题,以及像动物和人类一样思考与交流的人造系统。无论是在理论还是应用上,都要求研究者在多个学科领域具备细致的、综合的专长,比如应用数学,逻辑,符号学,电机工程学,精神哲学,神经生理学和社会智力,用于推动智能研究领域,或者被应用到其它需要计算理解与建模的学科领域,如金融或是物理科学。人工智能领域开始变得正式源于Alan Turing这位人工智能先驱提出了图灵试验,以回答这样一个终极问题:“计算机能够思考吗?”

计算机体系结构与工程

计算机系统结构,或者数字计算机组织,是一个计算机系统的概念设计和根本运作结构。它主要侧重于CPU的内部执行和内存访问地址。这个领域经常涉及计算机工程和电子工程学科,选择和互连硬件组件以创造满足功能、性能和成本目标的计算机。

 

计算机图形与视觉

 

计算机图形学是对于数字视觉内容的研究,涉及图像数据的合成和操作。它跟计算机科学的许多其它领域密切相关,包括计算机视觉、图像处理和计算几何,同时也被大量运用在特效和电子游戏。

计算机安全和密码学

计算机安全是计算机技术的一个分支,其目标包括保护信息免受未经授权的访问、中断和修改,同时为系统的预期用户保持系统的可访问性和可用性。密码学是对于隐藏(加密)和破译(解密)信息的实践与研究。现代密码学主要跟计算机科学相关,很多加密和解密算法都是基于它们的计算复杂性。

计算科学

计算科学(或者科学计算)是关注构建数学模型和量化分析技术的研究领域,同时通过计算机分析和解决科学问题。在实际使用中,它通常是计算机模拟和计算等形式在各个科学学科问题中的应用。

 

信息科学

 

 

软件工程

 

软件工程是对于设计、实现和修改软件的研究,以确保软件的高质量、适中的价格、可维护性,以及能够快速构建。它是一个系统的软件设计方法,涉及工程实践到软件的应用。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值