• 计算机的重要性

计算机是当今世界的命脉,如果现在关闭世界上所有的计算机,输电网会关闭,车辆撞在一起,飞机会坠毁,水处理厂会关闭,证券市场会停止运作,雇员们也会得不到薪水等等,计算机已经几乎改变了我们生活中的方方面面,我们每一个人都离不开计算机,我们生活的时代也被叫做“信息时代”,简称「 IT 」。

  • 计算机的复杂性

如果只看你手机中那数十亿晶体管的话,计算机可能看起来会相当复杂,但是幸运的是,它们只是通过许多层的抽象结构,表现复杂行为的简单机器,在小编的这个「 计算机学科那些事儿 」系列中,我会剥开那些复杂的抽象层,从底层用“1”和“0”来构建逻辑门,CPU,操作系统,整个互联网,等等。我们会了解bits,bytes,晶体管与逻辑门,一直到操作系统,虚拟现实与机器人、自动驾驶汽车等新领域。这个系列会带领你以一项学科和技术的角度来纵览一系列计算机话题。

在我们了解这一切之前,我们应该从计算的起源讲起。。。

1. 计算的起源

人类历史上最早被认可的计算设备,是「  算盘 」。算盘大约公元前2500年发明于美索不达米亚文明,它本质上是一个手动计算器,用来帮助人们做加减数字,它还能存储当前的计算状态,类似于如今的硬盘做的事。

算盘有许多的变种,但让我们来看看一个基本的版本。

其每一行代表着10的不同次方,因此最底部那行的每个柱子表示 1 ,也就是(10 ^ 0),在它上面的那行的每个珠子代表10,也就是10 ^ 1,再上面的是 100,也就是10 ^ 2,依次类推。

所以如果我们要表示1251,我们只是在底行加1,第二行加5,第三行加2,第四行加1。

在接下来的4000年中,人类开发了各种聪明的计算设备:如星盘,可以使船只在海上计算其纬度;如计算尺,用于辅助乘法和除法;如时钟,可以用来计算日出,潮汐,天体的位置,或者只是计算时间。

这些设备使之前费力的运算计算得更加快速, 更加简便和精确,这降低了计算的门槛,同时也加强了我们处理信息的能力。

然而, 这些设备都不叫“计算机”。

2. 莱布尼茨乘法器

最早的“计算机”可以追溯到莱布尼茨(就是和牛顿争微积分的发明权的历史上罕见的通才!)1694年建造的乘法器,

这个设备有一系列转动的齿轮,每个齿轮有十个齿,表示从0到9的数字,每当一个齿轮转过9时,它便会旋转回到0并使相邻的齿轮前进1个齿。

莱布尼茨乘法器可以自动实现这种操作,而且它也是第一台能做到加减乘除四种运算的机器。这个设计是很成功,但是许多现实问题仍需要许多步骤来确定。此外,这些手工制作的机器十分昂贵,大多数人承担不起。

3. “人力计算器”

由于莱布尼茨乘法器的实用性不强,在20世纪之前,大多数人通过预先计算的计算表来计算,这些计算表由“人肉”编撰。

典型应用 比如在19世纪,如何准确地射击炮弹是一个特别困难的问题,这些炮弹的射程可以达到一公里以上,加上风力条件,温度和大气压力的变化,即使要打中像一艘船一样大的东西也是非常困难的,人们便制作了「射程表」来让炮手通过查询环境条件和他们希望炮弹飞过的距离,便会告诉他们需要设置的角度,这些射程表工作得很好,它们被很好地用于第二次世界大战。

4. 巴贝奇发明了差分机

射程表问题是,如果你改变了大炮或炮弹的设计,人们就得计算一张全新的表,这样做非常耗时并且会不可避免地导致错误。

为了解决这个问题,英国发明家巴贝奇提出了「  差分机 」的设计,这是一个可以近似多项式的更加复杂的机器,多项式描述了几个变量之间的关系,例如射程和大气压力。多项式也可以用于近似对数和三角函数。

巴贝奇用了20年时间试图制造和组装25000个零件,这些零件总重接近15吨。不幸的是,该项目最终被放弃了,但在1991年,历史学家根据巴贝奇的草稿,建成了一个差分机 而且它能正常使用!

并且,英国数学家Ada Lovelace为差分机编写了假想程序,因为她的成果,Ada被认为是世界上第一位程序员,而且是第一位女程序员!

巴贝奇也被认为是“计算之父”!

5. IBM的兴起

计算设备在19世纪末广泛被用于科学和工程领域中,但在商业,政府和家庭生活中很少见到。

美国政府在其1890年的人口普查中就面临了一个严重的问题,这种问题需要只有计算机可以提供的那种效率,问题是这样的:美国人口因移民而迅速增长,如果还采用手工编制,那么人口普查需要13年的时间来手工计算,这就失去了人口普查的意义了,因为等到完成时,人口已经不精确了。

人口普查局找到了Herman Hollerith,因为他发明了打孔卡片制表机,他的机器是“电动机械的”,类似于莱布尼茨的乘法器,但它使用电动结构连接其他组件,它的机器使用一种带有网格并用打孔来表示数据的纸卡。

如下图:

这有一系列表示婚姻状况的孔,如果你结婚了,你会在“结婚”的位置打孔,然后当卡插入Hollerith的机器时,小金属针会经过整张卡片,如果一个点被打孔,针会穿过纸上的孔,并进入一小瓶汞,并联通电路,这个已联通的电路由电动机驱动,在这种情况下,它变成了一个齿轮,给“已婚”总数值加一。

Hollerith机器的速度大约是手动制表的10倍,并且人口普查在短短两年半内便完成了。各个企业开始认识到计算的价值,为此,Hollerith成立了制表机器公司,这家公司后来于1924年与其它机械制造商合并成为了国际商业机器股份有限公司(IBM),大名鼎鼎的「 IBM 」就这样成立了!

6. 后期展望

这些电子机械的“商业机器”取得了巨大的成功,改变了商业和政府,但到了20世纪中叶,随着世界人口的爆炸和全球化贸易的兴起,要求更快,更灵活的工具来处理数据,「  电子计算机 」便在时代背景下出现了!

关于这个话题,我们下一期再讲~

PS: 本系列文章首发于同名公众号,关注并回复关键字「 1024 」,你懂得!

计算机学科那些事儿(1)-早期计算相关推荐

  1. 计算机学科的三大科学形态,华中科技大学 计算机科学与技术方法论 3计算学科中的三个学科形态.ppt...

    华中科技大学 计算机科学与技术方法论 3计算学科中的三个学科形态 第3章 计算学科中的三个学科形态 文坤梅 E-Mail:kunmei.wen@ 智能与分布计算实验室 Intelligence and ...

  2. 内地计算机科技学校,23所内地顶尖高校盘点!计算机学科哪家强?

    随着科技发展,计算机类专业人才受到越来越多企业的青睐,还没毕业offer就已到手.就业机会多.到手薪资高.发展前景好,在市场的导向下,计算机科学与技术专业成为高校的热门专业. 计算机学科主要分为三大研 ...

  3. 【历史上的今天】3 月 18 日:香农发表划时代论文;微软发布 IE5;早期计算设备先驱出生

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 3 月 18 日,在 19 年前的今天,2003 年 3 月 18 日,第一台便携式计算机的发明者亚 ...

  4. 图论在计算机中的应用与发展,离散数学在计算机学科中的应用探究

    摘 要 随着知识经济时代的到来及科技的发展,离散数学的思想逐渐对计算机学科中的影响越来越突出,并且离散数学作为计算机学科研究应用的有效工具,对于计算机学科的持续发展产生了重要影响,本文就离散数学在计算 ...

  5. 计算机学科的方法论三个过程,第章--计算机学科方法论.ppt

    第章--计算机学科方法论 第9章 计算机学科方法论 内容来源 中国计算机学会计算机学科教程研究组发布 中国计算机科学与技术学科教程2002. 教育部计算机教学指导委员会编制 高等学校计算机发展战略研究 ...

  6. 北邮计算机发展,北邮计算机学科前景怎样?升学就业如何?26日教授亲自来解读...

    原标题:北邮计算机学科前景怎样?升学就业如何?26日教授亲自来解读 各位家长,同学 2020年高考百日誓师时吹响的号角早已过去--于即将面对高考考验的学子而言,时间的流逝感日渐强烈,手中的纸笔也越攥越 ...

  7. 处于计算机学科的基础地位,谈谈离散数学在计算机学科中的地位和作用(原稿)...

    <谈谈离散数学在计算机学科中的地位和作用(原稿).doc>由会员分享,可免费在线阅读全文,更多与<谈谈离散数学在计算机学科中的地位和作用(原稿)>相关文档资源请在帮帮文库(ww ...

  8. 清华发布新版计算机学科推荐学术会议和期刊列表,与CCF有何不同?

    点击我爱计算机视觉标星,更快获取CVML新技术 最近,清华大学计算机学位评定分委员会针对其负责的计算机科学与技术.软件工程.网络空间安全三个一级学科(简称"相关学科"),制定了&q ...

  9. 895计算机专业基础,2017北京工业大学895计算机学科专业基础考研入学考试大纲...

    2017北京工业大学895计算机学科专业基础考研入学考试大纲 考试科目名称:计算机学科专业基础 考试科目代码:895 一.考试要求 计算机学科专业基础考试大纲适用于北京工业大学信息学部(0812)计算 ...

最新文章

  1. Check the value configured in 'zookeeper.znode.parent'
  2. 使用sublime text 执行 tcl 出错
  3. Nginx与php的整合
  4. POJ 1182 食物链
  5. linux ubuntu/deepin安装tengine(nginx增强版)2.3.2
  6. Docker核心组件的关系
  7. JavaScript学习笔记(六)--数组
  8. vivado MMCM/PLL IP使用
  9. C# asp.net页面通过URL参数传值中文乱码问题解决办法
  10. ie中加入html代码,IE中HTML编辑器的修改与使用
  11. 【百度地图-安卓SDK】从头开始写android程序
  12. c语言中头文件iostream,程序中为什么要包含头文件iostream.h?
  13. 数据库周刊45丨易鲸捷4.2亿订单创记录;10月Oracle补丁发布;巨杉SequoiaDB v5.0发布;MySQL卡死案例……
  14. android 汉字拼音转换工具
  15. mysql查询时 全外連接_MySQL数据库左外连接、右外连接、全外连接
  16. [AC自动机]luoguP3966
  17. 【现代信号处理】 07 - 正则化
  18. 山东理工ACM【1147】求绝对值最大值
  19. 实验吧——安全杂项之“A记录”详解
  20. 使用pip来对相应的版本进行降低的过程的

热门文章

  1. 客服系统的电话录音功能作用
  2. 10月份Github上最热门的开源项目
  3. 开博记录-二零一捌零柒二捌
  4. SyntaxHighlighter要怎么去除右侧滚动条
  5. Linux测试环境搭建步骤
  6. input输入框非空验证
  7. KEPServerEX 6实现opcua与西门子plc通讯
  8. 携手吉林农信社 赛门铁克引备份新变革
  9. 北京车展直击:广汽新能源以AI打造“更聪明的陪伴”
  10. 夏普shl25刷机救砖实战指南