内容正文:
第一章
信息技术导论(第3版)
信息技术概论
1
02
信息处理装置的发展
2
机械式计算装置
01
机械式计算装置
为了适应人类社会生产发展的需要,人类发明了各种计算工具,以适应社会生产力的发展。中国唐末发明的算盘是人类历史上最早的一种计算工具。直到现在,算盘在我国还在使用。法国科学家帕斯卡(B.Pascal)于1642年发明了齿轮式加、减计算器。在当时,这个计算器很有影响。德国著名数学家莱布尼兹(W.Leibniz)对这种计算器非常感兴趣,在帕斯卡研究的基础上提出了进行乘、除法计算的设计思想,并用梯形轴作为主要部件,设计了一个计算器。它是一个能够进行四则运算的机械式计算器。齿轮式加、减计算器和机械式计算器都没有自动计算的功能。
3
机械式计算装置
01
机械式计算装置
20世纪,电工技术的发展使得一些科学家和工程师意识到可以用电气元件来制造计算机。德国工程师楚泽(K.Zuse)于1938年设计了一台纯机械结构的计算机Z1,后来他用电磁继电器对其进行改进,并于1941年研制成功一台机电式计算机Z3,这是一台全部釆用继电器的通用程序控制的计算机。事实上,美国哈佛大学的艾肯(H.Aiken)于1936年就提出了用机电方法来实现巴贝齐分析机的想法,并在1944年制造出了MARKI计算机。
4
图灵机
在现代计算机的发展过程中,世界上许多科学家都做出了很大的贡献。其中,英国数学家艾兰•图灵(A.Turing)是最杰出的代表之一,他提出的抽象计算模型,用来精确定义可计算函数,后来被称为图灵机(TuringMachine)的模型。
图灵的基本思想是用机器来模拟人用纸笔进行数学运算的过程。他将人的计算过程看成下列两种简单的动作:①在纸上写上或擦除某个符号;②把注意力从纸的一个位置移动到另一个位置,而每次的下一步动作走向依赖于人当前所关注的纸上某个位置的符号及人当前的思维状态。为了模拟人的这种运算过程,图灵构造出一台假想的机器,称为“图灵机”。
图灵机
5
图灵机
图灵机由一个状态寄存器、一条可无限延伸的纸带和一个在纸带上左右移动的读写头组成,如图1.1所示。
纸带被划分为一个接一个的方格,每个格子中可包含一个来自有限字母表的符号,字母表中有一个特殊的符号表示空白,纸带上的方格从左到右依次被编号为0、1、2、…,纸带的右端可以无限伸展。读写头可以在纸带上左右移动,既能读出当前所指的方格中的符号,也能改变当前格子中的符号。状态寄存器用来保存图灵机当前所处的状态。
图灵机
6
现代计算机发展史
01
第一台电子计算机的诞生
第一台电子计算机的诞生
1946年初,在美国宾夕法尼亚大学,由物理学家莫克利等人研制的世界上第一台电子计算机ENIAC(ElectronicNumericalIntegratorAndCalculator)正式投入使用。ENIAC计算机是一台公认的“大型”计算机。它的体积为90m3,重30t(吨),占地约120m2,耗电约150kW,使用了约18800只电子管、70000多个电阻、1000多个电容器、6000多个开关。它的加法运算速度为5000n/s,能在30s内计算出从发射到击中目标飞行1分钟的弹道轨迹,计算速率比人工计算提高了8400多倍,比当时最快的机电式计算机要快1000倍。这台计算机完全是为了军用而研制的。
7
现代计算机发展史
01
第一台电子计算机的诞生
第一台电子计算机的诞生
ENIAC虽然极大地提高了运算速度,但它需要在解题前根据计算的问题连接外部线路,而这项工作在当时只能由少数计算机专家才能完成,而且当需要求解另一个问题时,必须重新进行连线,使用极不方便。与此同时,对计算机做出巨大贡献的美籍匈牙利著名数学家冯•诺依曼(JohnVbnNeumann)发表了《电子计算机装置逻辑初探》的论文,第一次提出了存储程序的理论,即程序和数据都事先存入计算机中,运行时自动取出指令并执行指令,从而实现计算的完全自动化。根据这一思想,他设计出了世界上第一台“存储程序式”计算机EDVAC(TheElectronicDiscreteVariableAutomaticComputer,电子离散变量自动计算机),并于1952年正式投入运行。
8
现代计算机发展史
02
计算机的四个发展阶段
计算机的四个发展阶段
第一代计算机(1946—1957年):采用电子管作为逻辑元件,其主存储器采用磁鼓、磁芯,外存储器釆用磁带、纸带、卡片等;存储容量只有几千字节,运算速度为每秒几千次;主要使用机器语言编程,用于数值计算。这一代计算机的体积大,价格高,可靠性差,维修困难。
第二代计算机(1958—1964年):釆用晶体管作逻辑元件,其主存储器使用磁芯,外存储器使用磁带和磁盘;开始使用高级程序设计语言;应用领域也由数值计算扩展到数据处理、事务处理和过程控制等方面。相对第一代计算机,这一代计算机的运算速度更高,体积变小,功能更强。
9
现代计算机发展史
02
计算机的四个发展阶段
计算机的四个发展阶段
第三代计算机(1965—1970年):逻辑器件釆用了中、小规模集成电路,其主存储器开始逐渐釆用半导体器件,存储容量达几兆字节,运算速率可达每秒几十万至几百万次;体积更小,成本更低,性能进一步提高;在软件方面,操作系统开始使用,计算机的应用领域逐步扩大。
第四代计算机(1971年至今年):逻辑元件采用大规模和超大规模集成电路,集成度大幅度提高,运算速率可达每秒几百万次至几百万亿次,具有高集成度、高速度、高性能、大容量
和低成本等优点;在软件方面,系统软件功能完善,应用软件十分丰富,软件业已成为重要的产业;计算机网络、分布式处理和数据库管理技术等都得到了进一步的发展和应用。
10
计算机的发展趋势
01
计算机的发展趋势
(1)巨型化
巨型化是指发展高速、大存储容量和功能更强大的巨型机,以满足尖端科学的需要。并行处理技术是研制巨型计算机的基础,巨型机能够体现一个国家计算机科学水平的高低,也能反映一个国家的经济和科学技术实力。
(2)微型化
发展小、巧、轻、价格低、功能强的微型计算机,以满足更广泛的应用领域。近年来,微机技术发展迅速,新产品不断问世,芯片集成度和性能不断大幅度提高,价格越来越低。
11
计算机的发展趋势
01
计算机的发展趋势
(3)网络化
计算机网络是计算机技术和通信技术结合的产物,是计算机技术中最重要的一个分支,是信息系统的基础设施。目前,世界各国都在规划和实施自己的国家基础设施(NationalInformationInfrastructure,Nil),即国家的信息网络。Nil将学校、科研机构、企业、图书馆、实验室等部门的各种资源连接在一起,供全体公民共享,使任何人在任意时间、地点能够将文字、图像、音频和视频等信息传递给在任何地点的任何人。
(4)智能化
智能化是指用计算机模拟人的感觉和思维过程,使计算机具备人的某些智能,能够进行一定的学习和推理(如听、说、识别文字、图形和物体等)。
12
计算机的发展趋势
01
计算机的发展趋势
(5)多媒体化
多媒体化是指计算机能够更有效地处理文字、图形、动画、音频、视频等形式的信息,从而使人们更自然、有效地使用信息。
长期以来,计算机只能提供以字符为主的信息,难以满足人们的需要;多媒体技术的发展使计算机具备了综合处理文字、声音、图形和图像的能力,而在现实生活中人们也更乐于接受图、文、声并茂的信息。因此,多媒体化将成为未来计算机发展的一个重要趋势。
硅芯片技术高速发展的同时,硅技术越来越接近其物理极限。为此,人们正在研究开发新型计算机,以使计算机的体系结构与技术产生一次量与质的飞跃。新型计算机包括量子计算机、光子计算机、分子计算机、纳米计算机等。
13
03
计算思维
14
计算思维的基本概念
01
计算思维的基本概念
2006年,美国卡内基•梅隆大学的JeannetteM.Wing(周以真)教授首次提出了计算思维(ComputationalThinking)的概念。她认为,计算思维是运用计算机科学的基础概念进行问题求解、系统设计、人类行为理解等涵盖计算机科学之广度的一系列思维活动。
15
计算思维的基本概念
01
计算思维的基本概念
计算思维具有以下特征:
①计算思维是概念化的抽象思维而不只是程序设计。
②计算思维是基本的而不是死记硬背的技能。
③计算思维是人的而不是计算机的思维方式。
④计算思维是数学和工程思维的互补与融合。
⑤计算思维是思想而不是人造品。
⑥计算思维面向所有的人和所有地方。
⑦计算思维关注依旧亟待理解和解决的智力上极具挑战性的科学问题。
16
计算思维的基本概念
01
计算思维的基本概念
计算思维不仅是计算机专业工作者必须具备的技能,如同人们应具备基本的读、写和计算技能一样,每个现代人都应该具备。计算思维最根本的内容是抽象(Abstraction)和自动化(Automation)o与数学和物理科学相比,计算思维中的抽象显得更丰富,也更复杂。计算思维中的抽象超越物理的时空观,并完全用符号来表示。
17
计算思维的基本概念
01
计算思维的基本概念
虽然计算思维是近年提出的理念,但计算思维其实早在各学科领域甚至各行各业中发挥着重要的作用,而且随着计算技术的发展,这种作用将会不断增强。探讨计算思维的目的是使人们在学习和应用计算机过程中有意识地培养计算思维,更有效地利用计算机分析和解决现实问题。
18
(1)抽象(Abstraction)
抽象是指抽取事物的共同的本质性特征,即忽略一个主题中与当前问题无关的因素,以便更充分地考虑与当前问题相关的因素。抽象是简化复杂问题的有效途径,如网络协议就是运用抽象思维解决复杂问题的典型代表。
计算思维的典型方法
19
(2)分解(Decomposition)
在计算机科学中,将大规模的复杂问题分解成若干个规模较小的、更简单并容易解决的问题加以解决,是一种常用的思维方式。问题分解首先需要明确描述问题,并对问题的解决方法做出决策,把问题分解成相对独立的子问题,再以相同的方式处理每个子问题,并得到每个子问题的解,直到最终获得整个问题的解。
计算思维釆用了抽象和分解处理复杂的任务或者设计庞大的系统。通过选择合适的方式陈述问题,或者对一个问题的相关方面进行建模,从而简明扼要刻画复杂系统,能够在不必理会每个细节的情况下安全地使用、调整和影响一个大型复杂系统的信息。
计算思维的典型方法
20
(3)并行(Parallel)
并行是指无论从微观还是宏观,事件在系统中同时发生,是一种重要的计算思维方法。并行计算(ParallelComputing)一般指许多指令得以同时执行的模式。在计算机系统设计中,应用并行技术提高系统的效率,如指令流水线技术和多核处理器技术,前者属于时间并行,后者属于空间并行。这两种技术体现了运用并行方法解决问题的不同思路。如果各并行活动独立进行(即以完全平行的方式进行),问题就相对简单,只需要建立单独的程序来处理每项活动即可;如果并行活动之间有交互影响,就需要加以协调,因此设计并行系统较困难。
计算思维的典型方法
21
计算思维的典型方法
(4)缓存(Cache)
在计算机系统中,缓存将未来可能用到的数据存放在高速存储器中,使将来能够快速得到这些数据,从而提高系统的效率。在计算机的硬件结构设计和操作系统等软件的设计中,预取(Prefetching)和缓存技术都被用来提高系统的效率。
预取和缓存技术基于程序的局部性原理,即程序总是趋向于使用最近使用过的数据和指令,其访问行为不是随机的,而是相对集中的。计算机系统充分利用局部性原理,通过预存数据和动态调整策略,提高系统在缓存中命中数据的概率,从而以较多的低速大容量存储器、配合较少的高速缓存,以得到与高速存储器差别不大的存取效率,并在存储容量、速度和成本上获得较好的平衡。
22
计算思维的典型方法
(5)排序与索引(Sort&Index)
排序是信息处理中经常进行的一种操作,将一组元素从“无序”序列调整为“有序”序列。高效的排序算法是提高信息处理效率的基础保障。
索引是指对具有共性的一组对象进行编目,从而根据数据的某一属性能够快速访问数据。在数据库中,使用索引可以快速访问数据库表中的特定信息。
排序和索引技术并非计算机科学独有,在图书和出版行业早就利用排序和索引进行文献的管理。例如,每本图书的目录就是该书的一个索引。索引也是Web搜索引擎的核心技术之一。
23
计算机问题求解过程
(1)分析问题
分析问题是使用计算机进行问题求解的第一步。分析问题的目的就是明确拟解决的问题,并写岀求解问题的规格说明。因此,准确、完整地理解和描述问题是解决问题的关键。一个问题通常会涉及需求、对象和操作三方面的信息,所以问题的规格说明通常包括要求用户输入、输出的数据及形式、问题求解的数学模型或对数据处理的需求、程序的运行环境等。数学模型是用数学语言(符号、表达式与图像)描述的现实问题,是现实问题的公式化表示。用计算机解决问题必须有合适的数学模型,对实际问题加以提炼和抽象,并建立数学模型的过程称为数学建模。
在软件的开发过程中,需求分析完成后,形成软件的需求规格说明书,程序员要根据需求规格说明进行开发软件。
24
计算机问题求解过程
(2)算法设计
算法设计是把问题的数学模型或处理过程转化为计算机的解题步骤。算法设计的好坏直接影响着程序的质量。对于大型软件的开发,算法设计是一个非常复杂又重要的阶段,通常分为概要设计和详细设计两个阶段。概要设计阶段主要是根据需求规格说明建立软件系统的总体结构,设计全局数据结构,规定设计约束,制定组装测试计划等。详细设计阶段主要是逐步细化概要设计所生成的各模块,并详细描述程序模块内部的细节,如工作流程、数据结构、算法等,详细设计的结果应能方便地转换成程序。
25
计算机问题求解过程
(2)算法设计
算法设计是把问题的数学模型或处理过程转化为计算机的解题步骤。算法设计的好坏直接影响着程序的质量。对于大型软件的开发,算法设计是一个非常复杂又重要的阶段,通常分为概要设计和详细设计两个阶段。概要设计阶段主要是根据需求规格说明建立软件系统的总体结构,设计全局数据结构,规定设计约束,制定组装测试计划等。详细设计阶段主要是逐步细化概要设计所生成的各模块,并详细描述程序模块内部的细节,如工作流程、数据结构、算法等,详细设计的结果应能方便地转换成程序。
26
计算机问题求解过程
(3)程序编码
程序编码的主要任务是用某种程序设计语言,将前一步设计的算法转换为能在计算机上运行的程序。在软件开发过程中,编码需要按照需求规格说明进行。
程序编码涉及一系列的工作,包括:①准备输入数据,制作算法流程图,测试、调试及验证程序等;②检查每个执行步骤;③保存工作的准确记录。程序设计者要养成保存历史文档的习惯,如应保存问题的描述与分析文档、原始图、数据描述与数据结构、算法源程序和调试运行的过程记录等。
27
计算机问题求解过程
(4)测试
一般来说,编写程序很难做到一次成功,还需要通过测试和调试等步骤获得可正确运行的程序。测试和调试的主要目的在于发现(通过测试)和纠正(通过调试)程序中的错误。调试可分为程序调试和系统调试两阶段。在程序编码阶段对程序调试完毕,要进行系统的整体测试,以便检测所有的功能是否都正确实现,程序的可靠性如何。
软件测试分为两种:白盒测试和黑盒测试。黑盒测试是对功能的测试,只关心输入和输出的正确,而不关注内部的实现。白盒测试是测试程序的内部逻辑结构,也称为结构测试。
28
算法与程序的概念
01
算法
算法是对特定问题求解步骤的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。算法应当满足以下特性。
•输入:零个或多个由外界提供的输入量。
•输出:至少产生一个输出量。
•确定性:每个指令都有确切的语义,无歧义。
•有限性:在执行有限步骤后结束,且每一步都可在有穷时间内完成。
•可行性:通过执行有限次运算可以实现算法中描述的操作。
算法的描述有多种方法,一般用自然语言、流程图和伪代码进行描述。
自然语言描述是指用人们日常生活中使用的语言(本国语言)描述算法,优点是容易理解。流程图描述是算法的一种图形化表示方法,也称为程序框图。它描述的算法形象、简洁、直观。
29
算法与程序的概念
01
算法
伪代码描述是介于自然语言和计算机程序语言之间的一种算法描述方法,是专业软件开发人员常用的方法。
一个“好”的算法应达到以下目标。
①正确性:算法应当满足具体问题的需求。
②可读性:算法便于阅读、理解和交流。
③健壮性:当输入数据非法时,算法应能适当地做出反应或进行处理,而不会产生莫明其妙的输出结果。
④执行效率高与存储需求少:效率指的是算法的执行时间。对于同一个问题如果有多个算法可以解决,执行时间短的算法效率高。存储需求是指算法执行过程中所需的存储空间。
30
算法与程序的概念
02
程序
程序是为实现特定目标或解决特定问题,用计算机程序设计语言编写的指令序列集合。通过运行相应问题算法的程序实现使问题得以解决。算法是程序实现的基础,程序是某一算法的具体实现。一个程序应包括对数据的描述和对运算的操作两方面的内容。著名的计算机科学家沃思(NikiklausWirth)就此提出一个公式:数据结构+算法=程序。
31
感谢观看
信息技术导论(第3版)
32
$$