第一篇:认识计算机程序和算法

认识计算机程序和算法

1. 人类发展史

在人类的历史长河中,一颗火的种子结束了石器时代
从遥远的外太空飘来的陨石带来的一种元素结束了青铜时代进入了铁器时代
詹姆斯·瓦特对蒸汽机的改进,推进了第一次工业革命(18世纪60年代)开启了蒸汽机时代
有一个时代人们开始天马行空,不用煤油就可以点亮的灯、没有翅膀就可以飞的人、不用走路就可以日行千里、相隔万里就可以通信......这个时代就是电气时代,被誉为第二次工业革命(19世纪80年代中期)功不可没的还有发明交流电的伟大科学家尼古拉·特斯拉;
1946年世界上第一台通用计算机横空问世,1969年阿帕网(互联网前身)拉近了人与人之间的距离,使人类进入了信息时代
在这伟大的时代交替期,我们即将迎来人类发展的天花板:智能时代
每次人类的发展都是对生产力劳动力的一次解放,不知不觉中我们已经忘记了原始的记忆,其实我们能做的远不止如此。

人类发展史

2. 计算机发展史

好了言归正传,说好的计算机发展史怎么聊到人类的发展史了,
这里小编也是感慨一下啦。
计算机可以看到是人类发展史信息时代的产物,而且至今还是延续冯诺依曼体系结构

冯诺依曼与埃尼阿克

现在使用的通用计算机都是围绕这五大基本结构来优化设计的:


冯诺依曼计算机体系

2.1 CPU发展

运算器、控制器可以集成到一起就变成了CPU(就像人的大脑负责思考和控制):期初先电子管后有晶体管、集成电路、超大规模集成电路。就是在一定的面积内集成了更多的电路,越来越精密越来越复杂。

CPU内部电路图
CPU发展史

2.2 存储器发展

存储器(记忆单元,将计算好的结果进行存储):
因为速度和价格问题分为寄存器、内存、硬盘等。
寄存器是最快的在cpu内部存取很快,
内存是cpu和硬盘之间的过渡区,cpu太快、硬盘太慢,这里就体现出计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。

  1. 1725年打孔卡(PUNCHED CARD)和打孔纸带(PUNCHED TAPE),最早的机械化信息存储形式


    打孔卡的提花织机

    打孔纸带
  1. 1928年磁带(MAGNETIC TAPE),磁性存储时代的开始


    磁带
  1. 1932年磁鼓内存(DRUM MEMORY),硬盘驱动器(HDD)的前身


    磁鼓内存,硬盘的前身

看着是不是挺小的,其实很大。


体积很大哟
  1. 1946年SELECTRON管,第一个随机存取数字存储器


    Selectron管,静电记忆管
  2. 1947年延迟线存储器(DELAY LINE MEMORY),一种顺序存取的内存形式


    UNIVAC计算机上的延迟线存储器g
  1. 1947年磁芯存储器(MAGNETIC-CORE MEMORY),随机存取存储器(RAM)的早期版本


    一个存储1024位,32x32大小的磁芯存储器
  1. 1951年磁带(MAGNETIC TAPE),首次被用于计算机上存储数据
1/4英寸盒式磁带是由3M于1972年推出的一种磁带数据存储格式,一直流行至今
  1. 1956年硬盘驱动器(HARD DRIVE),磁盘存储时代开始了
世界上第一个硬盘驱动器IBM 350
  1. 1965年只读式光盘存储器(CD-ROM)/数字多用途光盘 DVD(FLOPPY DISK)
hilip发明的世界上第一台CD播放器
  1. 1971年软盘(FLOPPY DISK)
索尼Sony 3.5英寸软盘(1.44MB)
  1. 1999年SD存储卡(SECURE DIGITAL MEMORY CARD)
64G SD存储卡
  1. 2000年USB闪存驱动器(U盘)
U盘内部构造图
  1. 2006年云存储

2.3 输入设备

世界上第一个鼠标是用木头做的,而且最早的专利名字叫做“显示系统X-Y位置指示器”。 1964年,在斯坦福研究院工作的道格拉斯·恩格尔巴特,制作出了世界上第一个鼠标。

鼠标发展史

19世纪初意大利人佩莱里尼·图里为其盲人女友发明的打字机,后面才演变成了键盘。

打字机
键盘

2.4 输出设备

第一阶段:CRT 小时候常见的大屁股电脑。
第二阶段:LCD 等离子、液晶显示器等。
第三阶段:OLED 曲面屏、可折叠的屏幕。

电视机
显示器发展史

3. 计算机程序发展史

正所谓一阴一阳之谓道,有了硬件就必定会有对应的软件加以辅助。
那程序的发展史是什么样的呢?
我们一起来探讨一下吧。

计算机程序发展史概况

3.1 机器语言

对于计算机来说最简单最直接的语言就是机器语言(0和1)
因为现今的计算机都是按二进制来设计的,只能识别高低电平也就是0和1。
虽然这个是语言对于计算机来说效率最高,但是对于人类来说实在是太难了,你想想所有的信息都用0和1来表示对于我们的记忆来说实在是太痛苦了。

满脑子都是0和1

其实也有其他进制的计算机,而且在前苏联的科学家研究所知三进制(真、假、不知道)计算机信息处理能力是效率最高的。那为什么在价格比二进制更便宜,编程更方便的三进制计算机为啥没有得到发展呢?这就要说命运造化弄人了,也许在另一个平行世界“我们”正在使用三进制计算机吧。

前苏联发明的三进制计算机

3.2 汇编语言

能不能像翻译一样将特定字符指定对应的二进制,做一次翻译,对人类更友好编程呢?20世纪50年代人们就发明了汇编语言来替代机器语言进行愉快的编程了。它就像助记符,但是可移植性比较差了。

汇编语言代码

3.3 高级语言

1956年FORTRAN语言座位世界上第一个被正式推广使用的高级语言开启了高级语言的启蒙,后面的高级语言如雨后春笋一般疯狂发展。
其中高级语言大致可以分为面向过程面向对象语言,也有在此之间游荡的。

高级语言蓬勃发展
语言 类型 年代
C语言 面向过程 1972
SQL语言 面向过程 1978
C++ 语言 面向过程/对象 1980
MATLAB语言 面向对象 1984
Python语言 面向对象 1991
Visual Basic语言 面向对象 1991
Ruby语言 面向对象 1993
Lua语言 面向对象 1993
Java语言 面向对象 1995
JavaScript语言 面向对象 1995
PHP语言 面向对象 1995
C#语言 面向对象 2001
Scala语言 面向对象 2003
Go语言 面向对象 2009

计算机编程语言只是一种工具,就像锤子、螺丝刀、美工刀等,各有优势和特点。

4. 算法的发展史

公元前4000年,远古的苏美尔人使用一周七天,一年十二个月的等历算法,算是开启了算法史。
我们来看看算法的定义:

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度时间复杂度来衡量。
------来自百度百科

最重要的五个特性:有穷性、确切性、输入、输出、可行
常用的方法:递推法、穷举法、贪心算法、分治法、动态规划法、迭代法、分支界限法、回溯法等。

其实说白了就是对已有问题的解决方案且可行:
比如我想从杭州东站到华为研究所,可以坐地铁也可以坐公交也可以自己开车或者骑自行车,每种方案都是可行的就是最终可以到达但是需要的时间(时间复杂度)和钱财(空间复杂度)是不同的。如果我高兴也可以绕地球一圈。。。
这样看来是不是算法并没有那么神秘和高大上了吧,每天我们都在使用着算法就是没有注意到而已。

路线图

学习一样东西了解一下历史还是有必要的,因为在每个时代的使命和任务是不同的,在变化的过程中多多思考不变的是什么?
让我们愉快的开启算法之旅吧~

参考文档:
程序员上下50年
计算机存储历史
作为程序员必须知道的编程语言编年史
算法的发展史
如有错误请大佬指正~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容