计算机导论胡小鹏,xphu@dlut.edu.cnMSC(USTC),PhD(ImperialCollegeLondon)Professor,SchoolofComputerScienceandTechnology用户与专业人员的区别使用洗衣机的人(用户)没有必要懂得洗衣机的原理,只需要了解使用知识。从事洗衣机的研究、发展、设计和制造的人(专业人员,Professionals)不仅要懂得洗衣机的原理,还要懂得洗衣的原理。计算机导论计算机科学与技术专业的培养目标:研究、发展、设计、制造和应用计算机系统的创造型人才。计算机系统专业人员不仅要懂得计算机系统的原理,还要懂得计算的原理。问题:什么是计算机系统?我们专业的培养目标计算机导论第1章概述第2章信息表示与运算第3章计算科学与计算机基本工作原理第4章计算机硬件系统第5章计算机软件系统第6章计算机网络系统第7章人工智能计算机导论了解计算的基本概念;了解计算机系统的基本组成;了解计算机硬件、软件、网络、应用的基础知识;了解将要学习的主要课程对实现培养目标所起的作用。第1章概述第1章概述1.计算机简史2.计算科学基础3.计算机应用领域4.计算机发展趋势1.计算机简史人类处理信息方式的历史变迁计算机的发展历程早期计算工具(商业活动)人类社会最早使用手指、结绳、算筹等工具进行计算。随着生产的发展和交流的增加,又发明了更先进的计算工具——算盘。人类处理信息方式的历史变迁(1)图0.2西汉年间的金属算筹人类处理信息方式的历史变迁(1)早期机械传动计算工具(钟表业及纺织业)法国人巴斯卡尔(B.Pascal)于1642年基于齿轮技术制造了一台能够进行加法和减法运算的计算器。(为了纪念巴斯卡尔,一种高级程序设计语言取名为Pascal)1672年,德国人莱布尼兹(G.W.Leibniz)提出了不用连续相加进行机械乘法的思想。人类处理信息方式的历史变迁(2)1821年,英国数学家巴贝奇(C.Babbage)设计了差分机,这是第一台可自动进行数学变换(程序控制计算思想)的机器。19世纪,英国杰出的数学家布尔(G.Bool)。布尔代数实现了从一组逻辑公理出发,依靠代数演算来推导逻辑定律或定理。人类处理信息方式的历史变迁(3)1935年代,英国数学家图灵(AlanTuring)提出“图灵机”,通过引入机器状态使用了具有指令特点的运算操作,奠定了计算机的理论基础。第二次世界大战中,Turing领导的小组制造出了破译德军Enigma密码的计算机,并成功地完成了任务。人类处理信息方式的历史变迁(3)1946年2月,美国宾夕法尼亚大学莫尔电工学院的莫克莱(J.W.Mauchly)等人,为实现弹道计算,研制成功了ENIAC(“电子数字积分计算机”,ElectronicNumericalIntegratorandComputer),用了19000个电子管,重13吨,耗电200千瓦。1952年,冯·诺依曼等人完成了EDVAC机的建造工作。EDVAC方案的主要内容是确定了计算机由运算器、控制器、存储器、输入、输出等5部分组成(VonNeumann体系结构)。人类处理信息方式的历史变迁(4)1948年发明的晶体管改变了计算机的建造方式。采用晶体管研制第二代电子计算机的工作就在美国的一些著名实验室进行。1958年,当第二代计算机还处于刚刚准备批量生产的时候,美国得克萨斯州仪器公司制成了第一块半导体集成电路。三年后,得克萨斯州仪器公司在军方的支持下,研制成功了第一台试验性的集成电路计算机。1967年,由于大量的编程语言得到应用,IBM公司决定该公司的计算机系统成为“非捆绑式”。即以前,用户需要购买计算机及其系统上运行的各种语言的翻译程序,而现在可只购买需要的翻译程序。由此形成了语言翻译程序的竞争,开创了软件产业。人类处理信息方式的历史变迁(5)60年代后期,出现高级语言的发展、出现了进程的概念和分时操作系统。70年代初,半导体集成电路技术取得了飞速进步。体积不断地缩小,价格逐年下降,采用大规模集成电路的计算机系统,电子计算机的发展进入了第四代。从80年代起,网络计算机系统的出现,支持了分布式信息处理。在计算机网络上进行信息处理的计算活动被称作分布式计算。目前,支持高性能计算的计算机体系结构技术、并行与分布式算法、计算机网络与通信等成为发展方向。计算机的发展历程第五代(1991~目前):以互联网(Internet)为标志的信息系统2.计算机科学什么是计算科学计算科学的学科体系什么是计算科学计算科学:研究描述和变换信息的算法过程,包括理论分析、设计,效率分析、实现和应用系统的研究。基本问题:什么能(有效地)自动进行,什么不能(有效地)自动进行。人们将计算机在各行各业的具体应用与研究计算机应用与具体领域的共性理论、方法和技术的研究区分开来。前者叫计算机具体应用,后者称为计算机应用或计算机基本应用技术,属于计算科学范畴。计算机科学的学科体系(1)1.离散结构:主要内容包括:集合论、数理逻辑、近似代数、图论和组合数学等。2.程序设计基础:主要内容包括:程序设计结构、算法、问题求解和数据结构等。3.算法与复杂性:主要内容包括:算法的复杂度分析、典型的算法策略、分布式算法、并行算法、可计算理论、P类和NP类问题、自动机理论、密码算法以及几何算法等。计算机学科的主要内容分为14个主领域:计算机科学的学科体系(2)4.体系结构:主要内容包括:数字逻辑、数据的机器表示、汇编级机器组织、存储技术、接口和通信、多道处理和预备体系结构、性能优化、网络和分布式系统的体系结构等。5.操作系统:主要内容包括:操作系统的逻辑结构、并发处理、资源分配与调度、存储管理、设备管理、文件系统等。6.网络计算:主要内容包括:计算机网络的体系结构、网络安全、网络管理、无线和移动计算以及多媒体数据技术等。计算机科学的学科体系(3)7.程序设计语言:主要内容包括:程序设计模式、虚拟机、类型系统、执行控制模型、语言翻译系统、程序设计语言的语义学、基于语言的并行构件等。8.人—机交互:主要内容包括:以人为中心的软件开发和评价、图形用户接口设计、多媒体系统的人机接口等。9.图形学和可视化计算:主要内容包括:计算机图形学、可视化、虚拟现实、计算机视觉等。计算机科学的学科体系(4)10.智能系统:主要内容包括:约束可满足性问题、知识表示和推理、Agent、自然语言处理、机器学习和神经网络、人工智能规划系统和机器人学等。11.信息管理:主要内容包括:信息模型与信息系统数据库系统、数据建模、关系数据库、数据库查询语言、关系数据库设计、事物处理、分布式数据库、数据挖掘、信息存储与检索、超文本和超媒体、多媒体信息与多媒体系统、数字图书馆等。12.软件工程:主要内容包括:软件过程、软件需求与规格说明、软件设计、软件验证、软件演化、软件项目管理、软件开发工具与环境、基于构件的计算、形式化方法、软件可靠性、专用系统开发等。计算机科学的学科体系(5)13.社会和职业的问题:主要内容包括:计算的历史、计算的社会背景、分析方法和工具、专业和道德责任、基于计算机系统的风险与责任、知识产权、隐私与公民的自由、计算机犯罪、与计算有关的经济问题、哲学框架等。14.科学计算:主要内容包括:数值分析、运筹学、模拟和仿真、高性能计算。3.计算机应用领域计算机的分类计算机应用信息高速公路——社会的信息化计算机的分类1.巨型机:超级计算机,“银河-Ⅲ”百亿次计算机和“曙光”千亿次计算机。2.大型机:运算速度和存储容量仅次于巨型机。3.小型机:规模较小,它结构较简单、操作简便、维护容易、成本较低。4.微型机:个人计算机或微机。5.工作站:实际上是一台高档微机,它是配有大容量主存,具有高速运算能力。计算机应用(1)1.科学计算:解决科学技术和工程设计中存在的大量的数学计算问题。例如,求解上千阶的微分方程组、几百个方程的线性方程组、大型矩阵运算等.2.数据处理:数据处理泛指任何形式的计算机管理和操纵数据的过程,例如,企业管理、库存管理、帐目计算、信息情报检索等。3.实时控制:计算机的速度不断提高,计算机的指令周期已降到几ns级,使得许多生产过程的实时控制成为可能。例如,化工生产过程中的压力、流量、温度等参数的控制。计算机应用(2)4.计算机辅助设计和制造:CAD/CAM系统已发展成为更高级的计算机集成制造系统(CIMS)。5.人工智能:是探索和模拟人的感觉和思维过程的科学,它是在控制论、计算机科学、仿生学、生理学等基础上发展起来的新兴边缘学科。6.通信和文字处理:包括文字信息的产生、修改、编辑、复制、保存、检索、传输等,通信和文字处理是实现办公自动化、电子邮件、计算机会议和计算机出版等新技术的必由之路。7.多媒体技术:图形、声音、静态图像、动画、动态图像等多媒体技术。计算机应用(3)8.网络技术与信息高速公路:把分布在不同地域的独立的计算机系统用通信设施连接起来,以实现数据通信和资源共享。网络从地域范围大小上分为局域网和广域网。9.教育:包括计算机辅助教学、知识信息系统、自然语言处理等。计算机辅助教学生动、形象、易于理解,是提高教学质量的重要手段之一。10.军事:包括军队自动化指挥系统、计算机作战模拟、军事信息处理武器的自动控制、精确制导武器、军用机器人、数字化部队、后勤保障等。信息高速公路社会的信息化(高性能技术)1991年,美国政府提出了为期五年的高性能计算与通信计划。高性能计算与通信:高性能计算机系统,先进软件技术和算法,国家研究与教育网络,基础研究与人才资源。高性能计算机与高速通信网络:缩短了地域之间的距离,使地球变得越来越小,许多人开始把我们生活的地球称为“地球村”。4.计算机发展趋势巨型化微型化网络化智能化巨型化社会在不断发展,人类对自然世界的认识活动也越来越多,很多情况要求计算机进行大量数据的运算,如,数学命题的证明、行星轨迹的计算以及航天飞机、宇宙飞船的设计等等。这些应用对计算机速度的要求也越来越高。“巨型化”在这里并不是通常意义上的大小,主要是指机器的性能——运算速度等。微型化一方面,随着计算机的应用日益广泛,在一些特定场合,需要很小的计算机(如航天飞机,由于燃料的关系,设计原则是为了减少每一克而奋斗),所以计算机的重量、体积都变得越来越小,但功能并不减少。另一方面,随着计算机在世界上日益普及,个人电脑正逐步由办公设备变为电子消费品。人们要求电脑除了要保留原有的性能之外,还要有时尚的外观、轻便小巧、便于操作等特点,如平板电脑、手持电脑等。今后个人电脑在电脑中所占的比重将会越来越大,使用也将会越来越方便。网络化因特网的建立正在改变我们的世界,改变我们的生活。网络具有虚拟和真实两种特性,网上聊天和网络游戏等具有虚拟特性,而网络通信、电子商务、网络资源共享则具有真实的特性。我们可以通过因特网购买生活必需品,交纳各种费用、教学、管理个人账务等等。智能化计算机在我们的生活中扮演的角色将会更加重要。计算机应用将具有更多的智能特性,能够帮助人们解决一些自己不熟悉或不愿意做的事。智能家居:智能家电、烹调等。电子计算机,诞生于20世纪40年代,它是人们采集、识别、转换、处理信息的工具。总结:电子计算机Havelimitedcapabilities.Candobasicmathematicsandlogicalcomparisons.Mustbeinstructedwithprogramswhattodo.定义1:Computersareelectronicdevicesthatcanfollowinstructionstoacceptinput,processtheinputandthenproduceinformation.定义2:Acomputerisanelectronicmachinethatacceptsdata(input),manipulatesthedataaccordingtoso