计算机科学基础(双色)(txt+pdf+epub+mobi电子书下载)


发布时间:2021-03-01 01:37:53

点击下载

作者:陆汉权

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

计算机科学基础(双色)

计算机科学基础(双色)试读:

前言

有一种说法认为,传统的教育是读、写和算术(Reading,Writing and Arithmetic),今天的教育是读、写和计算(Reading、Writing and Computing),由此可见计算的重要性。计算的机器是计算机,因此,计算机科学最简单的解释是——关于计算机的科学,但实际上它的内涵远远超过了计算机本身。从今天的社会形态已经成为信息社会这一事实,可以理解计算机及其网络给人类社会、生活和学习等方面带来的巨大影响。

目前我国大学计算机基础类课程主要分为3个部分:计算机基础、程序设计及计算机应用。前两门被大多数高校列为基础类课程,后一门(也许是多门)是和专业相关的课程。如果想在专业方面有所成就,就应该重视计算机,学好计算机基础和程序设计课程。

问题是,要把计算机用好,究竟该学习些什么呢?现在的学生从中学阶段的信息基础课程中,已经学习了如何打开、关闭机器,学习了使用Windows、Office软件(初步的),也学会了上网,这些都是使用计算机的基本技能。有这些技能当然很好,不过还远远不够。计算机知识之丰富,内涵之复杂,远远超出我们的想象。如果希望把计算机看得更清楚一点,那么最好的方法是站得更高些。因此本书基本上不涉及计算机操作方面的内容,而展现给读者的是有关计算机科学的基础知识,包括其系统、软件、算法、数据及通信。

一般来说,基于计算机和计算机科学的所谓信息技术,由四部分组成:一是计算机系统,这大多是指计算机的硬件;二是软件;三是数据处理;四是网络。本书也是按照这个结构进行编排的。

在第1、2、3章中,重点介绍有关计算机模型和计算机中使用的数制、编码等内容。通过计算机模型可以对计算机的基本原理有一个概貌性的认识。在此基础上,还介绍了计算机的硬件系统。虽然本书没有、也不可能枚举所有类型的计算机硬件的组成部分,但是大部分常用的硬件都介绍了。

第4、5、6章分别介绍计算机的核心软件——操作系统和计算机科学的核心之一——算法,以及实现算法的程序设计语言、程序和软件方面的知识。

第7章介绍数据库相关知识。

第8章介绍网络,包括因特网的基本知识。

第9章介绍有关计算机的一些高级主题,包括高性能计算、人工智能和计算理论。如果说,人类对计算机的期望是“速度更快、体积更小和性能更强”的话,那么就更需要了解计算机能够做什么和不能做什么。有一点很清楚:希望本书的读者明白,哪些是计算机能够做的,哪些是计算机做不到的,在专业方面也是如此。只有知道哪些是可以做的,且如何能够使其做得更好,这才是科学的态度。

最后,第10章讨论有关信息社会的问题,包括有关法律、版权、环境、健康、计算机安全、病毒、黑客等。

本书是浙江大学计算机基础课程建设成果,是浙江大学执教计算机基础课程的教学团队教师的集体贡献。浙江大学从2002年就开始将计算机科学作为大学计算机基础课程的核心,其教材也经过几次修改,本书就是近十年来教学实践的成果。

作者

一直坚持认为,大学不应该把如何操作计算机作为教学内容,而应该引导学生去认识计算机的原理,这样才能更好地在学习和专业中使用好计算机。例如,学习程序设计的目的,不是成为程序员,而是认识程序原理。一个非计算机专业的学生,肯定是计算机的用户,知道计算机能够做什么、不能够做什么,这应该是最基本的专业素质。因此任何专业的同学都需要学习计算机科学基础,这也是其专业需要。

本书作者近似固执地认为,课程不能通过“工程”的方法去建设,而是要依靠教师引导学生去思考。大学提供给大学生发现问题、讨论问题、争论问题、解决问题的平台,所以作者要说的是:教课及教师并不是教学的核心,特别在计算机课程中,需要“发现、讨论、争论”的问题很多,收获也更多。

本书为任课教师免费提供电子课件,有需要者可登录华信教育资源网http://www.hxedu.com.cn注册下载。

毫无疑问的是,由于计算机科学的特点,其概念和某些名词的定义可能随着时间流逝而变化,并不像数学、物理科学那样有极为严格的、不变的定义,甚至,从不同的角度表达问题可能有完全不同的说法,这些在书中是常见的。当然,由于作者的水平所限,错误肯定难免,希望使用本书的教师和学生能够不吝赐教。

教育部计算机基础教学指导委员会副主任委员、国家名师、西安交通大学冯博琴教授为本书的编写提供了极为细致的指导,并亲自担任本书的主审,在此作者深表感谢。也借此感谢作者在浙江大学的同事,他们为本书提供了许多宝贵的意见。电子工业出版社的章海涛策划编辑,他为本书的写作和出版付出了很多,在此仅以此文字表示真诚的谢意。同时也十分感谢本书的责任编辑冉哲为本书的顺利出版所付出的辛劳。

陆汉权

浙江大学计算机学院,luhq@zju.edu.cn

2011年于浙大玉泉

第1章 引论

计算机科学(Computer Science)是一个宽泛的概念,它涵盖了计算机的方方面面。这里讨论的,并不是计算机的全部,而是介绍作为科学的计算机和作为工具的计算机所需要的一些基本知识。本章从“计算机是什么”这个问题开始,介绍数据处理机模型、现代计算机模型和计算机系统、信息系统等基本概念,使读者对计算机有初步的、整体的概念。更为详细的相关知识将在后续章节中讨论。

1.1 计算机是什么

在17世纪,英文计算机(Computer)一词是指从事计算工作的人。到20世纪40年代的第二次世界大战时期,为破译通信密码和解决新型火炮弹道的复杂计算,美国开始研制自动计算机装置,从此开始,计算机被赋予了机器的含义。

计算机已经被公认为是人类科学史上发展最快、影响最大的新学科,计算机科学(Computer Science)、计算机技术(Computer Technology)、计算机工程(Computer Engineering)等术语越来越多地出现在各种学科的文献中,相应而生的信息技术产业(Information Technology,IT)在20世纪90年代成为了全球第一大产业。

今天的计算机和60多年前相比,其外在形式和内涵都发生了巨大的改变,但它仍然建立在最早的模型基础上。从技术上讲,使用大规模集成电路的计算机的体积越来越小,功能却越来越强。从用途上看,过去昂贵的计算机从被放置在专用机房,到今天已摆放在办公桌上、甚至握在手上了;计算机不但是科研、通信、工业生产中重要的设备,也是学习和交流的工具,它进入了家庭,成了消费品,而且是最大的消费类电子产品。

计算机和计算(Computation)是密切相关的,计算是数学的基础,也是计算机的基础。最初人们期望计算机实现数学意义上的“自动计算”,但是随着计算机科学和技术的迅速发展,人们对计算机的巨大潜能开始有了新的认识:客观世界的许多形态都能够被“数字化”,也就是说,我们生存的这个世界上各种形态都能够被计算机所存储、处理、交换以及分析运用。如今,工程师使用计算机进行产品的设计、制造,导演使用计算机帮助拍摄电影、电视,科学家使用计算机进行研究,学生使用计算机帮助学习,等等。

不论你将来从事什么工作,都离不开计算机。只有很好地利用计算机,才能把工作做得更好。因此你不但需要知道计算机究竟能够帮助你做什么,还应该知道它是如何做到的。有科学家把这个问题归结为“计算思维”(Computation Thinking),也就是说,对客观世界中的问题进行抽象表示,再由计算机处理。

这里,我们的第一个问题是,计算机是什么?有许多种回答,几乎每一本教科书的答案都是不同的。按照《计算机科学技术百科全书》中的说法:计算机是一种现代化的信息处理工具,它对信息进行处理并提供结果,其结果(输出)取决于所接收的信息(输入)及相应的处理算法。

按照上述定义,计算机科学与技术的核心,包括计算机的设计、制造,以及运用计算机进行信息的获取、表示、存储、处理、控制等的相关理论、原则、方法和技术。计算机科学研究现象和揭示其规律,而计算机技术则侧重研制计算机和使用计算机进行信息处理的方法和手段。

1.2 数据处理机模型

理解计算机的最好方法是创建一个模型。有多种计算机模型,最典型的是黑盒模型和具有程序处理能力的处理机模型。

根据上述我们所引用的计算机的定义,计算机被看做信息处理机。信息(Information)和数据(Data)是计算机的两个重要概念,一般认为信息是对数据进行处理后得到的,因此可以认为数据是“原材料”,而信息是“制成品”。但在很多情况下,信息和数据这两个词被不加区分地使用着。

1.2.1 黑盒模型

先不考虑计算机的内部结构,从功能的角度,可以把计算机看做一个特殊的黑盒子,如图1-1所示,这个黑盒子就是数据(信息)处理机。图1-1 黑盒模型

黑盒模型也称数据处理机模型,是计算机原理的经典模型之一,也是对计算机定义的诠释。这个模型指出,数据输入到计算机中后,经过计算机的处理,输出结果。该模型指出,计算机在数据处理过程中,如果输入的数据相同,那么输出结果将能够重现;如果给出不同的输入数据,输出结果也能够随之改变。

数据处理机模型定义了计算机的功能,给出了计算机的基本属性,即计算机就是处理数据的机器。对非计算机专业的用户而言,他们并不需要考虑计算机处理数据的过程和复杂的细节,只需要理解计算机能够进行数据处理、得到用户期望的处理结果即可。因此这个模型能够帮助普通用户理解计算机。

数据处理机模型描述了计算机数据处理的过程,但并没有给出过程的“算法”,因此计算机的复杂性、灵活性在数据处理机模型中并没有被反映出来。同时,数据处理机模型既没有给出机器所处理数据的类型,也没有给出基于这个模型的计算机能够完成的操作类型和数量。另外,这个模型也没有明确定义这种机器是专用或通用的。不过,现在的计算机一般都是通用的。因此,计算机的数据处理能力是如何被体现出来的需要用新的模型进行定义和说明。

1.2.2 具有程序能力的数据处理机

考虑黑盒模型所存在的问题,一个改进的计算机模型如图1-2所示,它在图1-1模型的基础上增加了一个部分——程序。程序(Program)是计算机中一个非常重要的概念,它可以简单地被理解为按照预定的步骤进行工作。程序是处理数据的算法的具体实现。图1-2 具有程序能力的计算机模型

在这个模型中,计算机的输出结果取决于程序。在同一个程序的控制下,相同的数据能够得到的输出结果也是相同的,这就是所谓的“一致性”。反之,如果程序不同,那么,相同的输入数据得到的输出结果也可能不同。例如,对一组输入数据进行求和计算,得到的结果是累加和。如果程序变成了对同一组数据进行排序,那么输出结果就与求和计算完全不同了。进一步地,不同的数据采用不同的程序也可能产生相同的输出结果。

显然,具有程序能力的处理机模型赋予了计算机极大的灵活性,也使得计算机的数据处理能力得到了极大提升。这个模型与黑盒模型相比,更好地诠释了计算机的定义。由于计算机执行了不同的程序,使它既能够服务于物理学家探索浩瀚的宇宙和细微的粒子,也能帮助儿童学习语言。计算机之所以如此灵活,是因为它能够按照“程序”进行工作,而程序是事先编制好并存放在计算机内部的。

增加了程序功能,使得计算机处理数据的能力得到了充分体现。只要让计算机执行不同的程序,就可以得到各种期望的数据处理结果,这就是极为重要的“程序原理”。

中文文献中使用“计算机”作为正式名称,但另一个通俗的词是“电脑”。在本书中,我们主要使用专业名词“计算机”。

1.3 现代计算机模型

数据处理机模型对帮助人们理解计算机的基本原理是有意义的。事实上,计算机模型需要回答的问题还有很多,如计算机接收的数据是什么形式,在其内部以什么形式存储,如何存储,如何长久保存数据,输出结果如何能够让用户理解等。

计算机的模型不但要有功能性定义,还需要定义其内部结构。因此能够进一步表述现代计算机原理模型如图1-3所示。与前述的数据处理机模型相比,现代计算机模型更为精准地诠释了计算机的定义。①很长时间以来,这个模型被叫做冯·诺依曼模型,在一些文献和教材中,还是沿用了“冯·诺依曼计算机”这一说法。图1-3 现代计算机原理模型

现代计算机模型不但给出了计算机的功能,还定义了计算机内部的结构,解决了数据处理机模型中许多未能解决的问题。

1.3.1 计算机的五个组成部分

在如图1-3所示的现代计算机模型中,定义了计算机由输入、运算器、存储器、控制器和输出五个部分组成。其中计算机的控制器(Controller)对计算机的所有部件实施控制,协调整个系统有条不紊地工作,输入设备(Input)负责输入数据和程序,输入的数据和程序被存放到存储器(Memory)中。运算器是执行各种算术和逻辑运算的部件,也叫做算术逻辑单元(Arithmetic Logic Unit,ALU),程序的执行结果通过输出设备输出(Output)。

最早提出类似于如图1-3所示模型的是19世纪初英国数学家查尔斯·巴贝奇(Charles Babbage,1792—1871年),他设计的叫做差分机的计算机的原理为IPOS(Input,Processing,Output and Storage)。今天的计算机原理源于IPOS,因此巴贝奇被称为计算机之父。

图1-3中包含了运算器和控制器的虚线部分,在今天的计算机系统中被称为CPU(Central Processing Unit,中央处理器),大规模集成电路技术将CPU设计成单个芯片。计算机中的输入/输出(Input and Output,缩写为I/O)也被看做一个整体。因此,现代计算机也被认为由三个子系统组成:处理器子系统、存储器子系统和输入/输出子系统。

还有另外一种计算机结构模型叫做“哈佛结构”(Harvard Architecture),它的系统组成也可以用图1-3表示。哈佛结构与现代计算机模型所不同的是它的存储器,图1-3所示的模型将程序和数据存放到一个存储器中,而哈佛结构则将数据和程序分开存放。在今天的计算机中,这两种结构都在使用,不过哈佛结构多用于某些专用处理器系统和通用CPU芯片的内部,以提升CPU的处理效率。

我们已经介绍过几种计算机模型,实际上还有很多种模型用于不同类型、不同规模的计算机,例如多处理器的流水线结构、并行结构等,就其基本原理而言应该是类似的。在许多文献和教材中,为了将现代计算机模型和流水线、并行结构等模型加以区别,前者使用“传统计算机模型”一词,后者则冠以“非计算机传统模型”。

① 业界曾认为现代计算机模型的提出者是冯·诺依曼,但现在认为发明权属于阿塔纳索夫(John Atanasoff)和贝里(K·Berry),即ABC计算机(Atanasoff Berry Computer)的发明人。以前一直认为“程序存储”的发明者是冯·诺依曼,但现在已经知道,最早提出这个概念的是美国宾西法尼亚大学Moore电子工程学院的J·P·Eckert(第一台电子计算机ENIAC的发明者之一),而冯·诺依曼首先公开发表了这个概念。

1.3.2 程序存储原理

现代计算机模型要求程序在执行前存放到存储器中,还要求程序和数据采用同样的格式,这就是著名的程序存储原理。这一原理是冯·诺依曼最早发表在其论文中的。现代计算机模型还要求程序的长度(指令序列,详见第5章)必须是有限的。计算机执行程序时,只要给出程序所在的存储器位置,程序将自动运行直到任务完成。

现在看来,程序存储是一个简单的、显而易见的原理,然而在计算机发展的开始阶段,这一直是困扰计算机科学家的难题,即如何使计算机自动执行程序。早先的计算机,在机器启动后通过面板上的开关组合成操作命令,一个命令执行后,再拨动开关组成下一个操作命令。可以想象,当时使用计算机是一件多么枯燥且容易出错的事情。

使用程序存储的另一个重要的理由是程序的“重用”。对许多计算任务,往往只需要改变输入的原始数据,而计算过程本身是相同的。如果每一个计算机的任务都需要重新编制程序,那么计算机的使用和程序编制本身都将是很难的事。同时,在程序执行之前就将数据存放好,不但有效地提高了计算机的运行效率,也使得程序的执行过程实现了自动化。

1.4 计算机系统

前面介绍了计算机的定义、模型和数据、信息等概念。事实上,今天的计算机其复杂程度远远超过了这些定义和模型所能表达的。计算机不仅仅是“计算”,尽管它最初是为了“计算”而被研究和研制的。计算机能够执行各种任务,所以人们通常认为它肯定是非常复杂的。事实正是如此,如果你对计算机了解得越多,你就会发现它变得越来越复杂。

首先,计算机不仅是一台机器,而是被称为一个系统,即计算机系统(Computer System)。我们知道,被称为“系统”的,肯定是由多个部分组成的,单一的东西是不能称为系统的,因此计算机系统是一个大概念。

简单地说,计算机系统是由计算机硬件和软件组成的,进一步地,计算机的硬件和软件也是“系统”。再深入就会发现,计算机也只是计算机系统中的一部分而已,计算机系统还包括所处理的数据以及使用计算机的用户(User)。

表1-1概略地给出组成计算机系统的硬件系统和软件系统。在第3章中将对硬件系统进行更详尽的介绍,其后的第4、5、6、7章将对软件系统中的几个组成部分进行讨论。表1-1 计算机系统的组成

1.4.1 硬件系统

组成计算机的物理设备称做硬件(Hardware),也称做硬件系统(Hardware System)。计算机的主要元器件是电子的,由实现计算机操作过程及输入、输出功能的各种电子设备互连组成。术语计算机设备(Device)既可以指一个价值数亿的巨型计算机系统,也可以指一个只有数十元的鼠标器。

1.计算机硬件史

在计算机问世的初期,计算机就是指计算机硬件。由于硬件是计算机的物理体现,因此在计算机发展史中,主要是依据其硬件的技术特征作为标志。

一般来说,20世纪40年代前的各种计算机器如算盘、手摇计算机、机械式计算机等,都不被认为是计算机,因为这些计算装置不能实现“自动计算”。人们把1946年的ENIAC(Electronic Numerical Integrator And Computer,电子数字积分计算机)作为第一台现代计算机,也是第一代计算机的典型代表,它采用电子管作为主要元件。这一阶段后期,开始使用磁记录设备作为计算机的存储器。到了20世纪50年代后期,计算机开始使用晶体管,被称为第二代计算机(1959—1963年)。与电子管相比,晶体管不但体积小、功耗低,且速度快、可靠性高,成本低廉,适宜大批量生产。这一时期,计算机发展开始提速,逐步用于科学计算之外的事务处理。这一时期开始使用电话线进行计算机的数据通信,这就是计算机网络的萌芽阶段。与此同时,集成电路(Integrated Circuits,IC)诞生,它开始被用于计算机制造,也就是所谓的第三代计算机(1963—1975年)。这一时期的另外一个和计算机相关的重大事件是发射了同步通信卫星,由此在地面和空间卫星之间实现数据通信。

1970年有了把计算机的运算器和控制器集成在一个硅片上的CPU集成电路,由此计算机进入了大规模集成电路的第四代(1975年—至今)。20世纪80年代开始发展起来的微型计算机(Microcomputer),也叫做个人计算机,即PC机(Personal Computer),使计算机从实验室走到了办公室的桌面上,由此开创了计算机发展的全新时代。这个时代,计算机网络也得到迅猛发展,今天的Internet不但连接了全世界数十亿计的计算机和网络设备,也创造了被称为继报纸、杂志、广播及电视之后的“第四种媒体”,而且是影响最大的新型传媒。

2.计算机的类型

大多数人现在使用的计算机,无论是桌面机或手持式的,都被称为微型计算机。计算机还有其他不同类型。

通常按计算机的规模及销售价格进行划分,有价值千万美元以上的巨型计算机(Supercomputer,超级计算机),这类机器通常用于极为复杂的、海量的数据处理领域,例如地震模拟、核武器试验、气象分析、生物信息处理等;有价值数百万美元的大型计算机(Mainframe Computer),这类计算机通常用于跨国企业的信息系统,例如银行、航空公司等;也有价值数万至数十万美元的小型计算机,这类机器通常作为企业、政府、学校等机构的网络服务器,或者用于研究机构或较大型工程设计领域。

巨型机、大型机、小型机的价格较为昂贵,而价格低廉的微型计算机,即PC机,不但具有最大的用户群,也是占有计算机市场份额最大的一类机器。

今天的大多数实验室仪器、工业生产设备都带有数据处理能力,这种处理能力依赖于嵌入其中的计算机CPU芯片,这类系统被称为嵌入式系统。事实上,一些高档的家用电器,例如电视机、电冰箱等也内嵌处理器,以实现更高级的功能。随着移动通信开始取代传统的语音通信业务,所谓的“智能手机”也大行其道。本质上,智能手机就是内嵌计算机芯片并使用了计算机技术的个人通信设备。当然,这里的“智能”只是一种商业名词而已,并没有真正意义上的智能。

3.硬件的三个子系统

不管哪种类型的计算机,都是由表1-1所列的那些设备和软件组成的。根据现代计算机模型的定义,计算机都是由处理器、存储器和输入/输出三个子系统构成的。

大型的计算机系统,其主机系统可能是由很多个处理器组成的。例如,2010年公布的排名世界第一、由我国国防科技大学研制的天河-1A超级计算机,其主机的处理器达到186368个,运算速度达到了每秒2570万亿次。而价格低廉的PC机一般使用的是单个处理器芯片,最新的微机开始使用多核处理器芯片,例如双核或四核。这里的核(Core)不一定是多个处理器芯片,多是指一个CPU芯片上集成了多个处理器。

计算机系统中的存储器系统也是一个较为复杂的子系统,它的任务是存储数据、程序和参与运行程序。价格昂贵的机器的存储器容量(Size)是巨大的,而微机的存储器通常“比较小”,当然这是与大型机的比较。尽管如此,今天的微机存储器容量也很大,足以存放多部百科全书。存储器分为:基于电子学原理的半导体存储器,它直接与处理器互连,承担运行程序的任务,因此被称为内存或者主存;使用磁性材料(磁盘)、光学原理(光盘)保存数据和信息的存储设备,这类设备有机械部件,通常被设计成一个独立的部件置于外部,使用电缆连接,因此也被叫做外存。

计算机的输入/输出设备有很多种类型,最常见的输入设备有键盘和鼠标器,输出设备有显示程序界面的各种显示器和输出程序运行结果的打印机等。

研究计算机硬件相关的互连以使计算机更有效、更高速、更可靠的学科称为计算机体系结构,当然它也包括研究如何使机器的体积更小等内容。更多更详细的硬件知识将在第3章中重点介绍。

1.4.2 计算机软件

计算机的另一个重要组成部分是软件(Software)。我们把计算机“看得见”的那一部分称为硬件,把使计算机运行以完成任务的程序称为软件。这一部分是“看不见”的,却是不可或缺的。

1.软件系统

我们把除了计算机硬件之外的所有与计算机相关的文档、程序、语言等都可以归类为软件,因此软件也是一个系统,而且是非常复杂的一个系统。

按照表1-1所述,软件系统是计算机所有软件的总称,它由系统软件和应用软件两个部分组成。我们把服务于计算机本身的那些软件称为“系统软件”(System Software),它包括管理计算机资源和为使用计算机提供帮助的操作系统(Operating System)、计算机语言系统,以及对计算机硬件进行检测、管理的一些工具软件。例如,大多数微机上安装的微软公司开发的Windows就是操作系统软件。我们将在第4章中深入地讨论操作系统,在第6章中将介绍有关计算机语言、程序和软件等更多的概念。

另一类软件被称为应用软件(Applications Software),它是解决特定问题的一类软件。例如常见的办公系统,如字处理软件、Internet浏览器等。很多计算机应用都需要专门的软件,例如学校的教务管理系统软件能完成课程安排、成绩记载、打印和学籍管理等工作。

2.软件的进化

软件也是随着计算机科学的发展和技术的进步而“进化”的,计算机从完全由专业人员操纵到今天的普及应用,在很大程度上应归功于软件。

第一代计算机使用的是二进制代码语言编写的程序,它是内置在机器内部、被计算机处理器直接执行的指令代码。这一时期并没有“软件”概念,只有“编程”(Programming)概念。当时的计算机主要用于科学计算,处理数值数据,程序员需要非常熟悉机器指令代码。这个时代的程序员多为数学家和计算机专业工程师。

机器码编程不但设计和编码工作繁杂、费时,而且极易出错。后来开始使用符号化的汇编语言,它使用英文缩写表示机器代码。汇编语言仍然和机器相关,而且最初还需要人工翻译成机器代码,这个翻译工作也被发展为用程序来实现,编写这类语言翻译程序的程序员就是最早的“系统程序员”。

到了20世纪50年代后期的第二代计算机时期,计算机的硬件功能变得强大,对程序的要求自然随之提高。这一时期,类似于英文表达的程序设计语言被开发出来,称为计算机高级编程语言。当时典型的高级语言有两个:FORTRAN语言和COBOL语言。

第二代计算机时期,系统程序员仍然致力于计算机语言工具,而使用计算机语言开发应用程序的程序员被称为“应用程序员”。随着语言系统功能的不断强大,程序开发开始逐步脱离硬件的限制。这个时期的另一个重要的变化是,计算机业界巨头IBM公司放弃了软件随硬件捆绑的政策,使得应用软件的开发步入快速发展轨道,有更多的软件公司进入计算机市场。而在这之前,软件的开发一直被硬件供应商独占。

20世纪60年代中期到70年代初,也就是第三代计算机时期,出现了操作系统。最初是因为输入时只有输入设备工作,其他设备需要等待;处理数据时,输入/输出设备也都处于等待状态,硬件资源利用率很低,而那时的硬件是极为昂贵的。为此需要对计算机程序的运行过程进行调度,提升系统硬件的利用率,例如计算机调度运行多个程序以减少等待时间等。完成这个调度的程序就是“操作系统”。

第三代软件除了操作系统,也出现了大量的程序设计高级语言和专门求解某一问题的软件包,例如著名的统计软件SPSS(Statistical Package for the Social Sciences,社会科学统计程序包)就是这个时期开发出来的。在这一时期,使用计算机的人不再必须是计算机专业人员,因此,“计算机用户”这个重要的角色出现了。

在第四代计算机时期,软件的产业特征开始显露。特别是20世纪70年代末以后,面向过程的结构化编程方法被提出,推进了程序设计技术的发展。结构化编程语言,如BASIC、C语言等的出现,加快了各种系统软件、应用软件的开发速度。作为操作系统标准的UNIX系统以及运行在PC机上的DOS系统都开始朝着标准化方向发展。在操作系统支持下的应用软件,如文档处理、电子表格、数据库系统的大量出现,极大地推动着计算机应用的发展。

到了20世纪80年代中期,面向对象程序设计技术发展起来,编程语言的发展也非常迅速,大多数新的语言都是基于面向对象程序设计(OOP)概念的。PC机的快速普及,带来的最明显变化是非专业人员成为计算机的主要用户群。

自20世纪90年代以来,以图形界面为特征的Windows取代之前的字符界面的DOS(Disk Operating System)操作系统,成为PC机的主流操作系统。用户再也不需要记忆复杂的命令,而只需通过鼠标对屏幕上的图形标记(图标)单击操作来使用计算机。这不仅仅是一种操作方式的变化,而是出现以图形用户接口(GUI)技术为特征的新的面向对象的编程技术,使得程序设计不再从代码开始。另一方面,计算机硬件性能的不断提升,机器的价格越来越便宜,软件的功能越来越强,计算机的应用面也深入到生产、社会、管理、制造甚至娱乐业等许多新领域,软件作为产业已经超过了硬件,因此出现了一个新的行业名词:服务。这个商业模式也是IBM公司首创的。

1.4.3 计算机是如何运行的

前面简单介绍了有关计算机系统、计算机硬件、计算机软件的知识,在此我们应该考虑一下:计算机究竟是如何运行(Operating)的?

以PC机为例,无论是桌面机还是便携机,只要连接上电源,按下电源开关,就会在显示器的屏幕上看到不断滚动显示的信息,最后给出一个像飘扬着的旗子的微软公司的商标(见图1-4),表示Windows被加载和运行。图1-4 微软公司的商标

事实上,只要通电启动,机器就开始执行程序,直到被关机为止。如上所述,计算机执行的程序,要么是系统软件,要么是应用软件。前者是为了帮助用户使用计算机,后者是为了让计算机执行用户需要让它执行的任务。图1-5给出了计算机运行的示意图。图1-5 计算机运行示意图

我们假设程序和数据已经存放在磁盘存储器中。计算机通电后,CPU执行启动程序BIOS(Basic Input and Output System,基本输入/输出系统),BIOS的基本任务就是把存放在磁盘中的操作系统调入内存执行,此后将在操作系统的管理下直接操控计算机的硬件。BIOS完成引导任务后,计算机就由操作系统管理和控制,为用户使用计算机提供帮助和运行各种应用程序。

在程序执行过程中,显示器显示程序的各种状态以及程序执行需要输入数据的提示,由输入设备(如键盘、鼠标器)完成输入操作(图1-5中没有画出输入设备)。如果需要的话,可以在程序的控制下,将程序运行的结果输出到打印机上。

如图1-5所示,CPU处于中心位置,因此也被认为是计算机的核心。带有箭头的连线表明了CPU与其他部件进行数据和信息交换的方向,例如可以从外存和内存中存取程序或数据,但它对输出设备如显示器、打印机往往都是单一方向的数据输出(Out)。为了接收来自打印机等外设的打印请求等,虽然也有来自于外设的输入信号,但就数据传输方向而言,它是单向的。同理,如果CPU与输入设备相连,则数据方向是“输入”(In)。

1.5 信息系统

今天使用网络是一件很平常的事情,例如我国的高考已经使用“网络”了,考生信息、考试成绩、填报志愿、录取信息,都是通过网络处理和查询的,包括录取过程也在网上进行。对考生的各种信息进行存储和处理的计算机及网络就是一个信息系统(Information System)。这类信息系统已经遍及社会生活的各个方面,例如,超市、商场的销售系统,车站、机场的票务系统,学校的教务系统,银行的账务系统,证券公司的交易系统……不胜枚举。

信息系统是一个基于计算机的复杂系统。一个大型的信息系统,其复杂程度可以与大型的工业制成品相匹敌,甚至有过之而无不及。现代的工业制造也是在计算机控制下进行的,且它本身也由相关的信息系统所管理。信息系统的基本功能是为需要者提供特定的信息,支持用户迅速、有效地输入、存储、处理和获取信息。

今天的信息已经被认为是人类的重要资源,因此对信息资源的开发、运用也成为社会生活、经济活动的重要组成部分,并且成为衡量一个国家现代化程度的标志,有效地开发、运用和拥有信息资源已经被上升到国力的高度。

在一个信息系统中,计算机是必要的组成部分。从计算机的角度看,信息处理是一个“计算过程”,一般认为信息系统有6个要素。

①硬件。这是指计算机或包含计算机的装置。

②软件。软件指示硬件完成特定的工作任务。

③数据/信息。例如,一个商场销售系统对各种商品的批零价格和销售数据进行处理,就可以得到销售额、盈亏等有用的信息数据。

④人,也叫做用户(People or User)。计算机有两类用户,一类是以计算机为职业的,这类用户从事与计算机相关的技术工作,如软件设计、信息系统管理等;另一类用户主要是使用计算机,大多数用户属于这一类。

⑤ 过程,或称为处理。这一要素反映了信息系统完成处理任务,以及与用户在执行任务中的协调作用。简单地说,“过程”就是如何操作这个系统的一系列步骤。

⑥通信(Communications)。通信作为信息系统的组成要素,不但反映在硬件和软件之间、用户和机器之间,也反映在不同的计算机之间。例如,网络就是把多台计算机互连起来,网络中的信息交换就是通信。

今天计算机承担的“计算”任务只占很小的部分,而大部分任务是信息处理、事务处理、控制等。因此,实际上“计算机”这个名词被沿用是一个历史进程,而并不反映它真正的作用。

从使用计算机的角度观察,计算机本身也是一个信息系统,任何一个用户使用计算机都有一定的任务需要计算机去帮助完成,完成这些任务同样可以用这6个要素来归纳。

1.6 因特网和万维网

单台计算机,即使有很大的存储空间,有很快的运算速度,其作用总是有限的。尤其是别人的机器上有你需要、别人也愿意提供给你的信息,那么最简单的方法是把别人的机器和你的机器“连起来”。通俗地说,两台以上的计算机互连就可以认为是一个网络(Network)。目前连网类型有很多种,最大的网络就是因特网(Internet)。

1.6.1 因特网

全世界有数十亿台各种类型的计算机互连起来成为一个巨大的网络,使之能互相交换信息(专业术语是“资源共享”),那么这个网络的作用几乎是“无所不能”的。这个网络就是因特网(Internet)。因特网始建于20世纪60年代末,经过50多年的发展,已成为唯一覆盖全世界的、同时也是最大的计算机网络。

因特网是“网络的网络”,它已经是计算机应用领域的一个组成部分。

首先,从管理上而言,因特网没有“中央”,也就是说,它没有一个管理的核心,进入因特网的所有机器,不管属于机构、政府、企业还是个人,在因特网上都是“平等”的。也就是说,因特网是“不受控制”的。尽管有些专门机构和组织被冠以“互联网中心”的名头,但它的主要任务不是决定谁可以进网、进网之后能做什么,而只是给进网的机器分配所需要的地址及给予必要的技术指导和服务,使其能够正确使用因特网。

其次,因特网的开放特性,成为吸引无数用户的直接原因。今天的因特网上从一般的信息检索,到信息通信和社交活动,到网上买卖交易,已经是一个“虚拟社会”,现实社会的各种形态在这个虚拟社会上几乎都被复制。同样地,各种社会上的丑恶也在因特网上层出不穷。对因特网的争议并没有影响它以极快的速度发展。在我国,已经有世界上最大的因特网用户群和最多的入网机器,有数亿的中国因特网用户每天在网上发表数以亿万计的信息,并依托因特网进行各种活动,甚至赖以生存。

1.6.2 万维网

因特网为适应不同用户的应用需求,提供了多种不同的服务,例如World Wide Web(WWW,简称Web,中文名为万维网)不仅是因特网上最大的一种服务,多种其他服务如电子邮件(E-mail)、电子公告板(BBS)等也纷纷转移到Web平台上。对许多用户而言,因特网就是Web,尽管这个说法并不准确。

因特网的最初目的之一是建立一个计算机通信网,让连网的人员能够互相交换信息。1990年,欧洲粒子物理研究所(CERN)的技术员蒂姆·伯纳斯-李(Tim Berners-Lee),使用了一种标记格式,也就是后来制作Web的超文本置标语言(HyperText Markup Language,HTML),设计了一个程序,它能将分隔在不同地域、不同计算机上的文档“页面”联系起来(现在叫链接,英文Link),访问者通过“链接”能立即跳转到网上千里之外另一台计算机的“页面”(Webpage)上。李的这个程序供CERN使用,有人问他这是什么,他戏称是“World Wide Web”,万维网因此而得名,李也被冠以“万维网之父”。因特网的第一个网址是http://info.cern.ch。

1992年,美国伊利诺依大学超级计算中心(NCSA)的马克·安德里森(Mark Andresen)参照李的方法设计了因特网的Web浏览器软件Mosaic,这就是网景(Netscape)公司1994年推出的商业软件网络浏览器Navigator的前身。

Web为用户访问因特网提供了简单的方法。它是基于超文本技术的分布式的、用于浏览和检索信息的系统。超文本(Hypertext)除了文本之外,还包括视频、音频、动画、图片等其他数据类型。Web访问(Access)有许多实现技术,也有为支持Web服务通信的协议。

对大多数因特网用户而言,上网就意味着使用浏览器访问因特网上的Web网站,以获取自己需要的信息或者进行各种交互活动。Web网站(Website)就是承载很多Web页面的、构成多种Web资源的、为因特网用户提供访问服务的计算机。这类主机通常被叫做网络服务器。服务器类的计算机,对其运行速度要求较高,数据存储空间要求较大。有不少网站或者较大型的企业、机构用数百台的服务器构成一个服务器群,同时这些服务器还支持其他服务,例如协同工作、处理打印业务和特定用户群的事务处理。

进行Web访问时,即到期望的Web网站上获取需要的信息,桌面机、便携机都使用一种叫做浏览器的软件,例如微软公司的IE(Internet Explorer)浏览器。本质上,浏览器是用于解释超文本格式文档的软件,它按照格式标记的要求将Web文档以窗口的形式呈现在用户的显示器上。微机版的浏览器还有傲游(Maxthon)、火狐(Firefox)、Opera以及Google公司的Chrome等数十种,且大多数都是免费软件。在移动系统中,除了有上述软件的移动版本外,常用的还有优视科技公司的UC等。。

我们将在本书的第8章中更详细地介绍有关网络、因特网和Web的知识。

1.7 计算机文化和计算思维

计算机从一开始是一种装置,进而到一门学科,再发展成为一种“文化”,它对人类的影响力之大的确令人惊叹。计算机文化(Computer Literacy)是指能够理解计算机是什么,以及它如何被作为资源使用。

计算机走出了专业人员的实验室,步入家庭、办公室甚至伴随在人的身边,因此计算机科学家、社会学家等专业研究人员开始关注它对人、对社会的影响。结论是不言而喻的:计算机无所不在。因此,最近有科学家开始提出,无须关注计算机本身,而要关注计算机将为人、为社会所起的作用。当计算机和数学、语言一样从孩提时代开始伴随着人的一生时,我们在什么情况下需要使用计算机,或者说,我们遇到的哪些问题能够通过计算机以哪些方法给予解决,就像我们遇到问题就会习惯性地、自然性地考虑数学方法一样。例如,某个人准备远行,就要考虑距离,使用何种交通工具更为合算,需要携带多少现金等,这里面大量的问题是通过“数量”进行权衡、进行选择的。

同样,我们要撰写一篇课程学习报告,需要查找某些资料,汇总某些数据等,自然会想到应该用计算机。这还远远不够,当用户了解到计算机具有更多的功能,或者说了解到计算机能够做什么、不能够做什么时,那么在遇到需要解决的问题时,会有更多的选择,会知道即使很复杂的问题,也应该通过分解这些问题借助于计算机来帮助完成任务。如果用户能够有这样的能力,也就是说具有了“计算思维”。虽然这种说法未必准确,认识计算机,不但要知道计算机“如何工作”,更需要知道计算机“能够”做的工作。

按照专家的观点,计算思维(Computational Thinking)是指运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。计算思维建立在计算过程的能力和限制之上,由人或机器执行。计算思维的本质是抽象(Abstraction)和自动化(Automation)。如果说,数学思维是“对象与关系”,那么计算思维则表现在“状态和过程”上。所谓抽象,就是要求能够对问题进行抽象表示、形式化表达(这些是计算机的本质),设计问题求解过程达到精确、可行,并通过程序(软件)作为方法和手段对求解过程予以“精准”地实现,也就是说,抽象的最终结果是能够机械式地一步步自动执行。

表1-2中列出了计算思维倡导者之一的周以真教授(卡耐基·梅隆大学计算机系)所总结的有关计算思维是什么和不是什么的描述。可以看到,这里面提出的观点已经超越了计算机科学本身,也就是说,它成为一种自觉的、自然的思维方式。换句话说,具有计算思维能力,也就是人们理解计算机处理问题的能力应该成为一种常识,如同人们对数学的理解一样。表1-2 计算思维的特征

事实上,无论用什么观点进行分析和解释,一个儿童从对计算机的喜爱到离不开计算机,最终他对计算机的认识肯定会随着年龄的增长、阅历的提升和知识的积累,自然而然地知道如何运用计算机去帮助他解决遇到的各种问题。当然,理想的情况是,他使用计算机处理问题的选择每次都是正确的。

本章小结

本章介绍了有关计算机及其相关的一些基本知识。

计算机是一种现代化的信息处理工具,它对信息进行处理并提供结果,其结果取决于所接收的信息及其相应的处理算法。

计算机科学技术研究的内容包括计算机的设计、制造,以及运用计算机进行信息的获取、表示、存储、处理、控制等的相关理论、原则、方法和技术。计算机科学研究现象并揭示其规律,而计算机技术则侧重于研制计算机和使用计算机进行信息处理的方法和手段。

数据处理机模型指出,数据输入到计算机中后经过处理得到输出数据。而具有程序能力的处理机模型则指出,计算机处理后的输出结果还受程序的控制。

现代计算机模型将计算机分为输入、存储器、运算器、控制器和输出5个组成部分。最早的计算机采用的是IPOS原理。今天的计算机将运算器、控制器集成在一个芯片中,该芯片称为CPU。

计算机有处理器、存储器、输入/输出三个子系统。

程序存储原理要求程序和数据在执行前被存放到计算机的存储器中,且采用同样的存储格式。

计算机系统包括硬件系统和软件系统。

组成计算机的物理设备称为硬件,它的主要元件是电子器件。

第一代计算机采用的电子器件是电子管,第二代计算机采用的是晶体管,第三代计算机运用了集成电路技术,而第四代计算机采用的是大规模集成电路。

按照计算机的规模可将计算机分为巨型机、大型机、小型机,以及微型计算机、嵌入式设备和移动设备等。

计算机系统结构研究计算机硬件互连技术,使得计算机更有效、更高速和更可靠,当然也包括机器的体积更小。

计算机的软件系统包括系统软件和应用软件。

系统软件是管理计算机所需要的那些软件,如操作系统、程序设计语言系统、工具软件等。

应用软件是解决特定的应用问题所用的那些软件。

计算机是自动运行程序的,它从存储器加载程序并在CPU中执行,在执行过程中也从存储器中读取数据和保存数据,或者输出数据到外部设备上。

信息系统是计算机的一个重要应用领域,从计算机的角度看,构成信息系统有6个要素,分别是计算机硬件、软件、用户、数据、过程和通信。

计算机互连组成了网络,使用网络的主要目的是资源共享。因特网具有开放特性,因特网已成为一个虚拟的社会形态。

因特网上有各种应用服务,其中万维网是因特网上最广泛影响最大的一种服务。万维网使用超文本格式标记各种文档信息并使之相互链接。

计算机文化是指能够理解计算机是什么,以及它如何被作为资源使用。

人们应该如同使用数学思维那样去认识计算思维,能够运用计算机科学的基础概念、基本知识进行问题的求解、系统设计。它的本质是对问题进行抽象表示以及通过形式化表达,使得问题的求解达到精确、可行之目的。

习题1

一、填空题

1.计算机是一种现代化的信息工具,它对信息进行并提供结果。

2.计算机模型,一种是模型,它不考虑计算机的内部结构。改进的模型加入了一个部分,认为计算机对数据的处理是受到这个加入部分控制的。

3.现代计算机模型将计算机分成5个组成部分,它们是、、、和。

4.今天的计算机采用的是大规模集成电路技术,它的标志之一就是计算机的和集成在一个芯片中,这个芯片被称为CPU,即(这里回答CPU的中文名字)。

5.程序存储原理要求程序在执行前被存放到中,且要求程序和采用同样格式。

6.计算机系统是由和组成的。

7.第一代计算机采用的电子器件是,第二代计算机使用的电子器件是,第三代计算机使用的是IC即,第四代计算机使用了VLSIC,即。

8.计算机硬件,主要包括三个子系统,它们是、和。

9.计算机的外部设备分为设备和设备。最为常见的,前者是和鼠标器,后者是和打印机。

10.计算机系统结构研究计算机的硬件互连,使得计算机、和。

11.程序设计主要有面向的技术和面向设计技术。

12.Windows使用的是以GUI即为特征的一种最常见的、用于桌面机的操作系统软件。

13.只要计算机被加电开始进入工作状态,它就开始执行,直到关机为止。计算机在工作过程中,一直在控制下,运行各种应用系统完成用户任务。

14.信息系统是基于计算机的复杂系统,一般认为它有6个要素,分别是、、、用户及、。

15.Internet的中文名字是,它是“网络的网络”。Internet的特性是。

16.WWW,或者简称为,它的中文名字叫做,它已经是Internet上最大的应用,它使用了一种叫做HTML即的语言,能够将发布在不同地域的计算机上的文档进行链接以实现跳转访问。

17.超文本除了一般的文本格式之外,还包括视频、、和等多种数据格式。

18.计算机文化是指能够理解计算机是什么以及它是如何作为被使用的。

19.计算思维的本质是和。如果说,数学思维是“抽象和关系”,那么计算思维则是“状态和过程”。

20.运用计算机科学的基础概念和知识进行问题求解、系统设计,以及人类行为理解等一系列思维活动称为。

二、选择题

1.计算机的核心是CPU,它包含了计算机的处理器和。

A.存储器B.输入设备

C.控制器D.输出设备

2.程序存储是计算机的重要原理,它是指程序在执行之前被存放到中,且要求程序和数据采用相同的格式。

A.存储器B.控制器

C.磁盘D.光盘

3.采用数据处理机的黑盒模型描述计算机原理,认为输入相同的数据后,。

A.得到相同的输出数据B.能得到不同的输出结果

C.输出结果是不确定的D.以上都可能出现

4.具有程序概念的数据处理机,其输出结果取决于。

A.输入的数据B.控制处理的程序

C.处理机的类型D.处理机的规模

5.现代计算机模型所定义的计算机的5个组成部分,核心是处理器和。

A.存储器B.输入设备

C.控制器D.输出设备

6.在现代计算机中,系统依据存储原理进行工作,它是指程序和程序运行所需要的、已经产生的数据在存储器中以存储。

A.相同的格式B.不同的格式

C.机器要求的格式D.程序运行说要求的格式

7.我们可以定义计算机系统是指计算机的所有资源,它包括了计算机硬件及。

A.外围设备B.系统软件

C.应用软件D.B和C

8.计算机的“代”是按照制造机器的电子器件进行划分的,第三代计算机使用的是。

A.电子管B.晶体管

C.集成电路D.大规模集成电路

9.目前使用的计算机被认为是“第四代”,它所使用的电子器件是。

A.电子管B.晶体管

C.集成电路D.大规模集成电路

10.通常我们使用的桌面机、笔记本电脑等,被称为。

A.专用计算机B.小型计算机

C.微型计算机D.通用计算机

11.计算机系统中的存储器系统的任务是和参与运行程序。

A.存储数据和程序B.存储程序

C.存储数据D.输入/输出数据

12.计算机系统软件是计算机软件的一个组成部分,它包括操作系统、语言和。

A.Windows B.字符界面的DOS

C.工具软件D.程序设计软件

13.计算机的存储器系统包括内存和外存。内存一般为半导体存储器,而外存一般需要和内存交换数据,因此,目前使用较多的外存类型是。

A.光盘DVD B.磁介质存储器

C.光盘CD D.大容量半导体存储器

14.信息系统的基础是计算机。信息系统的功能是为需要者提供特定的信息,支持用户快速、有效地输入、存储、处理和信息。

A.保存B.传输

C.获取D.交换

15.在信息系统中,作为其重要要素之一的,它以一定的格式被计算机接收并处理为信息。

A.程序B.过程

C.网络D.数据

16.通信是信息系统的重要因素之一。它反映在硬件和软件、用户和机器之间,也反映在。

A.数据和信息之间B.输入和输出之间

C.计算机之间D.处理和存储之间

17.因特网的开放结构,主要是表现:进入网络的机器,可能属

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载