计算机科学

验证引用
虽然已尽一切努力遵循引用风格规则,但可能会有一些差异。如果您有任何问题,请参考相应的样式手册或其他资料。
选择引用格式
反馈
修正?更新?遗漏?让我们知道如果你有建议来改进这篇文章(需要登录)。
谢谢您的反馈

我们的编辑将审阅你所提交的内容,并决定是否修改文章。

打印打印
请选择要列印的部分:
验证引用
虽然已尽一切努力遵循引用风格规则,但可能会有一些差异。如果您有任何问题,请参考相应的样式手册或其他资料。
选择引用格式
反馈
修正?更新?遗漏?让我们知道如果你有建议来改进这篇文章(需要登录)。
谢谢您的反馈

我们的编辑将审阅你所提交的内容,并决定是否修改文章。

上面的问题

什么是计算机科学?

谁是最著名的计算机科学家?

你能用计算机科学做什么?

电子游戏中使用计算机科学吗?

我如何学习计算机科学?

总结

阅读关于这个主题的简要摘要

计算机科学,研究电脑计算,包括它们的理论和算法基础,硬件而且软件,以及它们处理信息的用途。的纪律的电脑科学包括研究算法以及数据结构、计算机和网络设计、数据和信息过程建模等人工智能.计算机科学的一些基础来源于数学而且工程因此,它结合了排队理论等领域的技术,概率统计,电子电路设计。计算机科学也大量使用假设检验在概念化、设计、测量和改进新算法、信息结构和计算机体系结构期间进行实验。

计算机科学被认为是五个独立但又相互关联的学科家族的一部分:计算机工程,计算机科学,信息系统、信息技术以及软件工程。这个家族被统称为计算学科。这五个学科在某种意义上是相互关联的,计算是他们的研究对象,但他们是分开的,因为每个人都有自己的研究视角和课程重点。(自1991年以来,计算机协会[ACM], IEEE计算机协会[IEEE- cs]和信息系统协会[AIS]已经成立合作开发和更新分类世界各地的教育机构在本科、研究生和研究项目中使用的这五个相互关联的学科和指导方针。)

计算机科学的主要子领域包括传统的研究计算机体系结构编程语言,以及软件开发。然而,它们还包括计算科学(使用算法技术对科学数据建模),图形和可视化,人机交互,数据库信息系统、网络以及计算机科学实践中所特有的社会和专业问题。很明显,这些子领域中的一些与其他现代领域的活动重叠,例如生物信息学和计算化学.这些重叠是结果在计算机科学家中有一种趋势,即认识到他们领域的许多跨学科联系并采取行动。

计算机科学的发展

电脑科学在20世纪60年代初成为一门独立的学科数字计算机它的研究对象是大约20年前发明的。计算机科学的根源主要在于的相关领域数学,电气工程,物理,以及管理资讯系统。

数学是计算机发展过程中两个关键概念的来源——所有信息都可以用0和1的序列来表示的想法,以及一个抽象的概念。存储程序”。二进位数制的序列表示数字二进制数字0和1的表示方式与我们熟悉的十进制系统中数字0到9的表示方式相同。两种状态(例如,高电压和低电压)可以在电气和电路中实现的相对容易程度电子设备自然导致了二进制数字比特,成为数据存储和传输的基本单位计算机系统

电气工程提供电路设计的基础知识,即输入到电路的电脉冲可以结合使用布尔代数产生任意的输出。(19世纪发展起来的布尔代数提供了一个形式主义的二进制输入值为0和1[分别为假或真]的电路设计术语(逻辑的)以产生任何想要的0和1的组合作为输出。的发明晶体管电路的小型化,以及用于存储和传输信息的电子、磁和光媒体的发明,都是电气工程和物理学进步的结果。

获得大英百科yabo亚博网站首页手机全书高级订阅并获得独家内容。现在就订阅

管理信息系统,原名数据处理系统提供了早期的思想,各种计算机科学概念,如排序,搜索,数据库信息检索,图形用户界面进化而来的。大公司拥有储存信息的计算机,这些信息对企业经营活动至关重要——工资、会计、库存管理、生产控制、运输和收货。

始于20世纪30年代的可计算性理论工作提供了所需扩展在整个机器设计的这些进步中;一个里程碑是1936年的规范图灵机(一种理论计算模型,执行以一系列0和1表示的指令)阿兰·图灵和他的证明模型的计算能力。另一个突破是存储程序计算机,通常认为是匈牙利裔美国数学家约翰·冯·诺依曼.这些都是计算机科学领域的起源,后来被称为体系结构和组织。

在20世纪50年代,大多数计算机用户要么在科研实验室工作,要么在大公司工作。前集团使用计算机来帮助他们进行复杂的数学计算(例如,导弹轨迹),而后者使用计算机来管理大量的数据企业数据(如工资和存货)。两组人很快就学会了用电脑编写程序机器语言0和1是不实际也不可靠的。这一发现导致了汇编语言在20世纪50年代早期,它允许程序员使用符号作为指令(例如,ADD用于加法)和变量(例如,X).另一个程序,被称为汇编程序他把这些符号程序翻译成等价的二进制程序,计算机可以执行这些二进制程序的步骤。

其他被称为链接加载器的系统软件元素被开发用于组合已组装的部件代码然后把它们加载到计算机的内存中,在那里它们可以被执行。的概念将独立的代码段链接起来是很重要的,因为这样可以重用执行共同任务的程序“库”。这是计算机科学领域发展的第一步软件工程。

后来在20世纪50年代,汇编语言被发现非常麻烦,以至于高级语言(更接近自然语言)的开发开始支持更简单、更快的编程。FORTRAN作为科学编程的主要高级语言出现,而COBOL成为了商业编程的主要语言。这些语言需要不同的软件,称为编译器它可以将高级语言程序转换为机器代码。随着编程语言变得越来越强大和抽象,构建编译器可以创建高质量的机器代码,并且在执行速度和存储方面都是有效的消费成为了一个具有挑战性的计算机科学问题。高级语言的设计和实现是计算机科学领域编程语言的核心。

20世纪60年代早期计算机的日益普及提供了动力为发展第一操作系统它由系统内置软件组成,自动处理输入和输出,以及被称为“作业”的程序的执行。对更好的计算技术的需求导致了对数值方法及其分析的兴趣的复兴,这一活动扩展得如此广泛,以至于被称为计算科学。

20世纪70年代和80年代出现了强者计算机图形学设备,用于科学的建模以及其他视觉活动。(计算机化的图形设备在20世纪50年代初被引入,用于在纸上显示粗略的图像阴极射线管(CRT)屏幕)。昂贵的硬件和有限的软件使得该领域直到20世纪80年代初才开始发展计算机内存所需位图图形(图像由小的矩形像素组成)变得更加实惠。位图技术,加上高分辨率显示屏和图形标准的发展,使软件对机器的依赖性降低,导致了该领域的爆炸性增长。对所有这些活动的支持演变成了计算机科学领域,即图形学和视觉计算。

与该领域密切相关的是与执行各种计算任务的用户直接交互的系统的设计和分析。这些系统在20世纪80年代和90年代得到广泛使用,当时与用户的行编辑交互被图形用户界面(gui)。GUI设计,这是由施乐公司后来被苹果(Macintosh)最后由微软窗户),很重要,因为它构成人们在与计算设备交互时看到和做什么。为所有类型的用户设计适当的用户界面已经发展到计算机科学领域,称为人机交互(HCI)。

自20世纪50年代第一台存储程序计算机问世以来,计算机体系结构和组织领域也发生了巨大的变化。所谓的分时系统出现于20世纪60年代,它允许几个用户在不同的终端上同时运行程序,这些终端都与计算机相连。20世纪70年代出现了第一个广域计算机网络广域网),协议用于在相隔较远的计算机之间高速传输信息。随着这些活动的发展,它们合并成计算机科学领域,称为网络和通信。这一领域的一个主要成就是发明了互联网

指令和数据都可以存储在计算机的内存中,这一想法对理论行为的基本发现至关重要算法.也就是说,诸如“什么可以/不能计算?”的问题,已经用这些抽象的概念得到了正式的解决。这些发现就是被称为算法和复杂性的计算机科学领域的起源。的研究和应用是该领域的一个关键部分数据适用于不同应用程序的结构。数据结构,以及在这种结构中插入、删除和定位数据的最佳算法的开发,是计算机科学家的主要关注点,因为它们在计算机软件中被大量使用,最显著的是在编译器、操作系统、文件系统和搜索引擎

在20世纪60年代发明了磁盘存储提供了对位于磁盘任意位置的数据的快速访问。这一发明不仅导致了更巧妙设计的文件系统,而且还导致了数据库信息检索系统,后来成为存储,检索,和传输互联网上大量和种类繁多的数据。计算机科学的这一领域被称为信息管理。

计算机科学研究的另一个长期目标是创造计算机器和机器人可以执行通常认为需要的任务的设备人类的智慧.这些任务包括移动、看、听、说、理解自然语言、思考,甚至展示人类的情绪。计算机科学领域的智能系统,最初被称为人工智能(人工智能),实际上早于第一个电子20世纪40年代的计算机,尽管这个术语人工智能直到1956年才被创造出来。

21世纪早期计算的三个发展:移动计算,客户机-服务器计算,以及计算机黑客技术——为计算机科学的三个新领域的出现做出了贡献:基于平台的开发,并行和分布式计算,以及安全和信息保证.基于平台的开发是对移动设备、操作系统和应用程序的特殊需求的研究。并行和分布式计算关注的是体系结构和编程语言的开发,它们支持算法的开发,这些算法的组件可以同步和异步(而不是顺序)运行,以便更好地利用时间和空间。安全和信息保证涉及计算机系统和软件的设计,以保护信息安全完整性以及数据的安全,以及以这些数据为特征的个人的隐私。

最后,计算机科学在其整个历史中特别关注的是伴随计算机科学研究和技术进步的独特社会影响。例如,随着20世纪80年代互联网的出现,软件开发人员需要解决与信息安全、个人隐私和系统可靠性相关的重要问题。此外,计算机软件是否构成的问题知识财产和相关的问题“谁拥有它?”产生了一个全新的许可和许可标准的法律领域,适用于软件和相关产品工件.这些问题和其他问题构成了计算机科学的社会和专业问题的基础,它们几乎出现在上述所有其他领域。

因此,总结一下,计算机科学的学科已经发展成以下15个不同的领域:

  • 算法和复杂性
  • 架构和组织
  • 计算科学
  • 图形与视觉计算
  • 人机交互
  • 信息管理
  • 智能系统
  • 网络和沟通
  • 操作系统
  • 并行和分布式计算
  • 基于平台的发展
  • 编程语言
  • 安全和信息保障
  • 软件工程
  • 社会和专业问题

计算机科学继续拥有强大的数学和工程根基。计算机科学学士、硕士和博士学位课程通常由高等院校提供,这些课程要求学生完成适当的数学和工程课程,这取决于他们关注的领域。例如,所有计算机科学专业的本科生都必须学习离散数学(逻辑,组合,和基本图论).许多课程也要求学生完成课程微积分统计数据数值分析在他们学习的早期就开始学习物理学和工程学原理。