计算思维(Computational Thinking)是指运用计算机科学的基础概念进行问题求解、
系统设计及人类行为理解等涵盖计算机科学之广度的一系列思维活动。计算思维的核心是抽象(Abstraction)和
自动化(Automation)。其中,“抽象”是指用符号(例如数字)来表示客观事物,“自动化”是指让计算机解决问题而不需要人的干预。
————周以真(Jeannette M.Wing)教授,美国卡内基。梅隆大学
在公元前7世纪,算筹开始用于辅助计算。
公元8世纪,我们的祖先又发明了算盘,并提出了基于算盘的珠算。
15世纪后,算盘及珠算传至日本,并影响欧洲,激励了各国对计算工具的研究。
在1642年,年仅19岁的法国科学家帕斯卡发明了第一台机械计算器Pascaline.这台手摇转动的齿轮进位式计算机器是帕斯卡为他担任税收官员的父亲设计的,能够完成6位数字的加减法运算。Pascaline的最大贡献就是解决了自动进位这个关键问题,体现了计算思维的核心概念——自动化。
德国科学家莱布尼茨对Pascaline进行了改进,于1673年研制出具有加,减,乘,除功能的手摇式机械计算器。
最早研究自动计算工具的科学家是英国剑桥大学教授巴贝奇。1822年,他首先设计制造出“差分机”。“差分机”是为计算航海数据表而设计的,只能运行一个算法,即用多项式计算有限差分。
1854年,英国数学家布尔出版了《布尔代数》,为计算机采用二进制来进行信息的表示与运算奠定了理论基础。
19世纪末20世纪初,一批基于上述研究成果的手摇计算机、电动计算机和卡片式计算机被相继发明出来,如美国国际商业机器IBM公司推出的“插销继电器计算机”。这些辅助计算工具,为人们解决繁琐的数据处理问题提供了很大的帮助。
1937年,致力于研究数学机械化的英国数学家图灵在《关于可计算的数及其对判定问题的应用》学术论文中提出了一个被后人称为“图灵机”的计算模型,这就是现代计算机的理论模型。
鉴于图灵对计算科学杰出的贡献,美国计算机协会于1966年设立了“图灵奖”,以纪念这位杰出的科学巨匠。
1938年,德国大学生朱斯成功地制造出第一台二进制计算机Z-1.此后,他又继续研制Z系列计算机,其中Z-3型计算机是世界上第一台通用程序控制机电式计算机,它的开关元件为继电器,采用浮点计数法和带数字存储地址的指令形式。
1944年美国哈佛大学的研究生艾肯成功地研制了一台机电式计算机Mark-I.
1946年2月14日,世界上第一台通用电子计算机ENIAC诞生了。这是人类文明史上的一个重要里程牌。
电子计算机的发明是20世纪最杰出的科学成就之一。
第一台电子计算机是电子管计算机。他的特征是采用电子管作为逻辑元件,能够处理的数据类型只有定点数,用机器语言合或汇编语言来编制程序。第一台电子计算机的应用仅仅局限于科学计算。
第一台电子计算机ENIAC是由美国宾夕法尼亚大学莫尔学院的物理教授莫克利和工程师埃克特领导的科研小组研制成功的。
1946年,莫克利和埃克特开始研究“离散变量自动电子计算机EDVAC”但是最终没有研制出来。
ENIAC项目的顾问,美籍匈牙利科学家冯.诺依曼与他的同事在普林斯顿大学高等研究院IAS设计他们自己的EDVAC(IAS机)。为了实现自动连续地工作,冯诺依曼在IAS机的设计中提出了“存储程序”的思想,因此,冯诺依曼被誉为“现代计算机之父”。
1946年莫克利和埃克特离开莫尔学院,创办了电子控制公司ECC,这是世界上第一家计算机公司。
1947年,ECC开始研制UNIVAC-I计算机。这台计算机首次采用磁带作为外存储器,采用奇偶校验和双重运算线路来提高系统可靠性。
1954年,第一个高级程序设计语言Fortran问世了。Fortran语言的问世一举奠定了高级程序设计语言在程序设计中的地位,并成为世界上应用最广泛,最有生命力的高级程序设计语言。Fortran语言的设计者巴克斯也因此荣获了1977年度的图灵奖。
第二代电子计算机是晶体管计算机。他的特征是采用晶体管代替电子管作为逻辑元件,用磁芯作为主存储器;采用磁带,磁鼓,纸带,卡片穿孔机和阅读机作为输入/输出设备;在软件方面有了很大的发展,相继出现了Algol,COBOL等一系列高级程序设计语言。其中,Algol 60语言的诞生更是标志着对计算机程序设计语言的研究正式成为一门专门的学科,它的设计者诺尔荣获了2005年度的“图灵奖”。
第三代电子计算机是集成电路计算机。它的特征是采用集成电路代替分立的晶体管元件,半导体存储器逐渐取代磁芯存储器;控制单元设计开始采用微程序控制技术。
第四代电子计算机的特征是采用大规模集成电路和半导体存储器,UNIX操作系统逐渐成为主流。
第五代电子计算机的特征是采用超大规模集成电路的电子计算机。