zoukankan      html  css  js  c++  java
  • [导入]计算机科学

      计算机科学是一门包含各种各样与计算和信息处理相关主题的系统学科,从抽象的算法分析、形式化语法等等,到更具体的主题如编程语言、程序设计、软件和 硬件等。作为一门学科,它与数学、计算机程序设计、软件工程和计算机工程有显著的不同,却通常被混淆,尽管这些学科之间存在不同程度的交叉和覆盖。
      计算机科学研究的课题是:
      计算机程序能做什么和不能做什么(可计算性);
      如何使程序更高效的执行特定任务(算法和复杂性理论);
      程序如何存取不同类型的数据(数据结构和数据库);
      程序如何显得更具有智能(人工智能);
      人类如何与程序沟通(人机互动和人机界面)。
      计算机科学的大部分研究是基于“冯·诺依曼计算机”和“图灵机”的,它们是绝大多数实际机器的 计算模型。作为此模型的开山鼻祖,邱奇-图灵论题(Church-Turing Thesis)表明,尽管在计算的时间,空间效率上可能有所差异,现有的各种计算设备在计算的能力上是等同的。尽管这个理论通常被认为是计算机科学的基 础,可是科学家也研究其它种类的机器,如在实际层面上的并行计算机和在理论层面上概率计算机、oracle 计算机和量子计算机。在这个意义上来讲,计算机只是一种计算的工具:著名的计算机科学家 Dijkstra 有一句名言“计算机科学之关注于计算机并不甚于天文学之关注于望远镜。”。
      计算机科学根植于电子工程、数学和语言学,是科学、工程和艺术的结晶。它在20世纪最后的三十年间兴起成为一门独立的学科,并发展出自己的方法与术语。
      早期,虽然英国的剑桥大学和其他大学已经开始教授计算机科学课程,但它只被视为数学或工程学的 一个分支,并非独立的学科。剑桥大学声称有世界上第一个传授计算的资格。世界上第一个计算机科学系是由美国的普渡大学在1962年设立,第一个计算机学院 于1980年由美国的东北大学设立。现在,多数大学都把计算机科学系列为独立的部门,一部分将它与工程系、应用数学系或其他学科联合。
      计算机科学领域的最高荣誉是ACM设立的图灵奖,被誉为是计算机科学的诺贝尔奖。它的获得者都是本领域最为出色的科学家和先驱。华人中首获图灵奖的是姚期智先生.他于2000年以其对计算理论做出的诸多“根本性的、意义重大的”贡献而获得这一崇高荣誉。
      目录
      1 计算机系统
      1.1 硬件
      1.2 计算机系统组织
      1.3 软件
      1.4 数据和信息系统
      2 主要的研究领域
      2.1 形式化基础
      2.2 理论计算机科学
      2.3 计算方法学
      2.4 计算机应用
      2.5 特定技术
      3 计算科学史
      4 相关学科
      5 卓越的先驱者
      6 参见
      7 外部链接
      计算机系统
      计算机系统可划分为软件系统与硬件系统两大类。
      硬件
      结构控制和指令系统
      算法和逻辑结构
      存储器结构
      冯·诺伊曼结构
      哈佛结构
      输入/输出和数据通信
      数字逻辑
      逻辑设计
      集成电路
      计算机系统组织
      计算机系统结构
      计算机网络
      分布式计算
      网络安全
      计算机系统实现
      软件
      系统软件
      操作系统
      编译器
      应用软件
      计算机游戏
      办公自动化
      网络软件
      CAD软件
      计算机程序
      程序设计和程序设计实践
      面向对象技术
      程序设计语言
      软件工程
      软件复用
      驱动程序
      计算机模拟
      程序设计方法学
      数据和信息系统
      数据结构
      数据存储表示
      数据加密
      数据压缩
      编码与信息论
      文件
      信息系统
      管理信息系统
      决策支持系统 - 专家系统
      数据库
      信息存储和数据存取
      信息交互与表达
      主要的研究领域
      形式化基础
      逻辑学
      谓词逻辑
      模态逻辑
      时序逻辑
      描述逻辑
      数学
      泛代数
      递归论
      模型论
      概率论和数理统计
      逻辑代数
      布尔代数
      离散数学
      组合数学
      图论
      网论
      信息论
      理论计算机科学
      形式语言
      自动机
      可计算性
      算法
      计算复杂性
      描述复杂性
      编译器
      程序设计理论
      信息论
      类型理论
      指称语义
      微程序
      遗传算法
      并行计算
      计算方法学
      人工智能
      计算机图形学
      图像处理与计算机视觉
      模式识别
      语音识别
      文字识别
      签名识别
      人脸识别
      指纹识别
      仿真与建模
      数字信号处理
      文档与文本处理
      计算机应用
      数值计算
      数值分析
      定理机器证明
      计算机代数
      工程计算
      计算机化学
      计算机物理
      生物信息论
      计算生物学
      非数值计算
      工厂自动化
      办公室自动化
      人工智能
      信息存储与检索
      符号语言处理
      计算机辅助科学
      计算机辅助设计
      计算机辅助教学
      计算机辅助管理
      计算机辅助软件工程
      机器人学
      多媒体技术
      人机交互
      电子商务
      特定技术
      测试基准
      机器视觉
      数据压缩
      软件设计模式
      数字信号处理
      文件格式
      信息安全
      国际互联网络
      超大规模集成电路设计
      网络传输协议
      网络处理器技术
      整数运算器
      浮点运算器
      矩阵运算处理器
      网格
      计算科学史
      计算机历史
      软件业历史
      编程思想
      相关学科
      计算机科学与另外的一些学科紧密相关。这些学科之间有明显的交叉领域,但也有明显的差异。
      信息科学 - 软件工程 - 信息系统 - 计算机工程 - 信息安全 - 密码学 - 数学 - 工程学 - 语言学 - 逻辑学
      卓越的先驱者
      艾伦·图灵
      参见
      计算机科学课程列表
      计算机科学家
      图灵奖
      冯·诺依曼奖
      中国计算机产业
      中国计算机科学大事年表
      程序设计语言列表
      操作系统列表
      ASCII艺术 计算机科学
      computer science
      研究计算机及其周围各种现象和规律的科学,亦即研究计算机系统结构、程序系统(即软件)、人工 智能以及计算本身的性质和问题的学科。计算机是一种进行算术和逻辑运算的机器,而且对于由若干台计算机联成的系统而言还有通信问题,并且处理的对象都是信 息,因而也可以说,计算机科学是研究信息处理的科学。计算机科学分为理论计算机科学和实验计算机科学两个部分。后者时常称为“计算机科学”而不冠以“实验 ”二字。前者还有其他名称,如计算理论、计算机理论、计算机科学基础、计算机科学数学基础等。在数学文献中所说的计算机科学,一般是指理论计算机科学。实 验计算机科学还包括有关开辟计算机新的应用领域的研究。学科起源 计算机科学中的理论部分在第一台数字计算机出现以前就已存在。20世纪30年代中期,英国数学家A.M.图灵和美国数学家E.L.波斯特几乎同时提出了理 想计算机的概念(图灵提出的那种理想机在后来的文献中称为图灵机)。40年代数字计算机产生后,计算技术(即计算机设计技术与程序设计技术)和有关计算机 的理论研究开始得到发展。这方面构成了现在所说的理论计算机科学。至于图灵机理论,则可以看作是这一学科形成前的阶段。至于“计算机科学”一词则到60年 代初才出现,此后各国始在大学中设置计算机科学系。学科内容 计算机科学是一门年轻的科学,它究竟包括哪些内容,还没有一致公认的看法。一般认为,计算机科学主要包括理论计算机科学、计算机系统结构、软件工程的一部 分和人工智能。理论计算机科学 理论计算机科学是在20世纪30年代发展起来的。40年代机电的与电子的计算机出现后,关于现实计算机及其程序的数学模型性质的研究以及计算复杂性(早期 称作计算难度)的研究迅速发展起来,形成自动机论、形式语言理论、程序设计理论、算法设计与分析和计算复杂性理论几个领域。计算机系统结构 50年代以来,计算机的性能在计算速度和编址空间方面已提高了几个数量级。但大部分是通过元件更新而获得的。在系统结构方面基本上仍是属于40年代后期形 成的存储程序型,即所谓诺伊曼型机器。这种结构的主要特点是它属于控制流型。在这种结构中,一项计算先做什么后做什么是事先确定了的,程序中指令的顺序是 事先确定了的。为了在计算机的性能方面取得大的进展,需要突破这种旧的形式。计算机系统结构方面的重要课题之一,是探索非诺伊曼型机器的设计思想。在非诺 伊曼型机器中,有一种是70年代初提出的数据流机器(又名数据驱动机器)。美国、苏联和英国都已制成这种机器。这种机器的特点是,在一项计算中先做什么后 做什么不是事先确定,所执行的指令是动态排序的。排序的原则是操作数已准备就绪的先做,因而称作数据驱动机器。这种类型的机器更便于实现并行计算。软件工 程 程序设计在相当长的时间内是一种类似“手艺”而不是类似现代工程的技术。60年代以来出现了大程序。这些大程序的可靠性很难保证。到60年代后期,西方国 家出现了“软件危机”。这是指有些程序过于庞大(包含几十万条以至几百万条指令),成本过高而可靠性则比较差。于是提出了软件工程的概念,目的在于使软件 开发遵守严格的规范,使用一套可靠的方法,从而保证质量。现代软件工程的方向是形式化和自动化,而形式化的目的在于自动化。这里所说的自动化就是将程序设 计中可以由机器来完成的工作,尽量交给机器去做。中心课题之一是程序工具和环境的研究。程序工具是指辅助人编程序的程序,如编译程序、编辑程序、排错程序 等;程序环境则是指一套结合起来使用的用来辅助人编程序的程序工具。人工智能 用计算机模拟人的智能,特别是模拟思维活动的技术及其有关理论。由于人的思维活动离不开语言,而且人对于某一类问题进行思索和探索解法时,总是需要以关于 这一类问题的基本知识(专业知识或常识)作为出发点。于是,知识表示和机器对自然语言的理解就构成人工智能的两个重要领域。所谓知识表示,是指将原来用自 然语言表示的知识转换成用符号语言表示的,从而可以储存在机器内供机器使用的知识。人工智能的研究角度有探索法的角度和算法的角度。通常所说的解题算法是 指机械的和总是有结果的方法,而这里所说的算法却是广义的,包括那些机械的而在使用时不一定有结果的算法。这种方法时常称作半可判定的方法。人在解决问题 时,时常采用探索法。这种方法具有“试错法”的性质,也就是说,试验若干条途径,一条路走不通时再试另一条,直到问题得到解决时为止。机器可以模拟人用探 索法解题的思维活动。但由于可能途径的数目非常之大,不可能进行穷举式的探索。人一般是只选出一些最有希望得到结果的途径去进行探索。人的这种能力,就是 进行创造性思维的能力。这是机器极难模拟的事情。采用算法角度,使用特定的解题算法或半可判定的方法时,会遇到另一方面的困难。那就是当问题的复杂程度较 高时(比如说是指数的),即使问题是有结果的,机器也无法在实际可行的时间内得到结果。在计算机出现的初期,人们曾寄希望于机器的高速度,以为在模拟人的 思维时,机器可能用它的高速度来换取它所不具有的创造性思维。但通过“组合性爆炸”问题(“组合性爆炸”是指一些组合数学中的问题,在参数增大时,计算时 间的增长率时常是指数的,甚至高于指数),人们认识到,单纯靠速度不能绕过组合性爆炸所产生的障碍。有无办法来克服这种困难,尚有待于进一步研究。与其他 学科的关系 计算机是由物理元件构成的,迄今主要是由电子元件构成的。因此,物理学的一些分支和电子工程便构成计算机科学的基础。同时,计算机科学在一定意义上是算法 的科学,而算法是一个数学概念。因此,数学的某些分支如算法理论(即可算性理论,又名递归函数论)也构成计算机科学的基础。但计算机科学已发展成为一门独 立的技术科学,既不是电子学的一个分支,也不是数学的一个分支。这是就这个学科的整体而言。至于理论计算机科学,由于它可以看作是计算机科学的数学基础, 在一定意义上,可以看作是数学的一个分支。另一个与计算机科学有密切关系的学科是控制论。控制论作为应用数学方法来研究机械系统和生命系统中的控制和通信 现象的学科,同计算机科学有内容上的交叉,但后者不是它的一部分。自从40年代制成数字计算机以来,计算机的性能有了很大的提高。但在系统结构方面变化不 大。一些计算技术发达国家正在研制新一代的计算机。这种计算机的系统结构将与过去40年的机器很不相同,所用的程序设计语言也将是新型的。计算机科学将研 究由此出现的新问题,如有关并行计算的问题。对计算的数学性质的研究大都还是关于串行计算的,对并行计算性质的研究自70年代才发展起来,预计将成为计算 机科学的中心课题之一。另一个问题是程序设计的自动化问题。在程序设计方面,明显的趋势是将机器能做的尽量交给机器去做。程序环境的研究构成了软件工程的 一个中心课题。形式化方法越来越受到重视,因为它是提高自动化程度所必需的。
      在计算机科学领域排名世界前五的大学
      麻省理工大学
      斯坦福大学
      加州大学伯克利分校
      卡耐基梅隆大学
      康奈尔大学
      UIUC


    文章来源:http://henrya2.blog.163.com/blog/static/75451419200891954317140
  • 相关阅读:
    new的实现原理
    call, apply, bind的内部实现原理
    redux基础第二讲——react-redux
    redux基础第一讲
    React组件的数据
    ES6中的super
    ES5和ES6中实现对象和继承的方法对比
    react组件的生命周期
    浅谈js继承的几种方法
    LeetCode 5274. Number of Ways to Stay in the Same Place After Some Steps
  • 原文地址:https://www.cnblogs.com/Henrya2/p/1344250.html
Copyright © 2011-2022 走看看