小测验的网站找不到,小程序也找不到,这两个部分的习题就不做了。

Cengage Learning - Foundations of Computer Science这上面有部分答案。这里用斜体标出。我英语不好就不做垃圾翻译了。

说是学习笔记,但大部分都是做题记录,没做完的之后再做。

·复习题

  • 1、定义一个基于图灵模型的计算机。

输出数据 依赖于 输入数据程序数据处理器

则有三种情况

--相同程序+不同输入数据

--不同程序+相同输入数据

--相同程序+相同输入数据

前两者都会输出与 原输出数据 不同的数据,

第三种输出的数据与 原输出数据 相同。

Turing proposed that all kinds of computation could be performed by a special kind of a machine. He based the model on the actions that people perform when involved in computation. He abstracted these actions into a model for a computational machine that has really changed the world.

虽然说的很奇怪,但这个就是答案。

  • 2、定义一个基于冯·诺伊曼模型的计算机

基于冯·诺伊曼模型的计算机如图所示有四个子系统:输入/输出单元、算术逻辑单元、控制单元、存储器。

-存储器:与图灵模型不同的是,冯·诺伊曼模型中的存储器不但可以存储数据,还可以存储程序。因为数据与程序在逻辑上是相同的(由冯·诺伊曼在1944~1945期间指出)。

-算术逻辑单元(ALU):进行计算和逻辑运算的位置。在第四章中进一步了解。

-控制单元:控制其它子系统。

-输入/输出单元:输入:接受计算机外部的数据、程序。输出:输出计算机的处理结果。定义较为广泛,比如说计算机从硬盘里读取数据,这个硬盘就是输入单元,计算机处理完了把结果再写入这个硬盘,这个硬盘就是输出单元。注意,输出不一定是显示出来才是输出,指的是把处理结果拿出来,但不一定要给你看见。

  • 3、在基于图灵模型的计算机中,程序的作用是什么?

“程序是用来告诉计算机对数据进行处理的指令集合。”

那么,程序的作用就是告诉计算机对数据要怎么处理,比如先A+B得C,再A-B得D,再C+D得E,输出结果E等等。

Based on the Turing model a program is a set of instruction that tells the computer what to do.

  • 4、在基于冯·诺伊曼模型的计算机中,程序的作用是什么?

冯·诺伊曼模型中的一段程序由一组数量有限的指令组成,指令会一条接一条执行。

-控制单元从内存中提取出一条指令,解释指令,接着执行指令。

在这个模型中,前面说到,程序会被存储在计算机的存储器中。

而且,这样的程序必须是由有序的指令集组成。选用指令集在于其重用性,由许多的指令是大量重复使用,或是公用段,这样可以节省很多功夫。

  • 5、计算机中有那些子系统?

三大部分:计算机硬件、计算机软件、数据

-硬件将在第五章讨论

-数据:存储数据、组织数据

-软件:存储的程序-指令的序列、算法、语言、软件工程、操作系统

The subsystems of the von Neumann model are memory, the arithmetic/logic unit (ALU), the control unit, and the input/output.

答案是冯·诺伊曼模型通用计算机的四个子系统。

  • 6、计算机中存储子系统的功能是什么?

对于基于冯·诺伊曼模型的计算机来说,是用于存储数据和程序。

  • 7、计算机中ALU子系统的功能是什么?

ALU,即算术逻辑单元,是用来进行计算和逻辑运算的地方。注意区别于指令,如果程序是包工头,那么指令是包工头的安排,ALU就是工地,进行计算的元件就是工地工人。

 The arithmetic/logic unit (ALU) is where calculations and logical operations take place.

  • 8、计算机中控制单元子系统的功能是什么?

控制其它子系统,比如从内存(存储器)中提取出一条指令,解释指令,接着执行指令。

  • 9、计算机中输入/输出子系统的功能是什么?

输入子系统:负责从计算机外部接收输入数据和程序

输出子系统:负责将计算机的处理结果输出到计算机外部

The input subsystem accepts input data and the program from outside the computer; the output subsystem sends the result of the processing to the outside

  • 10、简述5个时代的计算机。

-第一代1950~1959:体积庞大,使用真空管作为电子开关,费用高昂,只有大机构负担得起,且只有专家才能使用。

-第二代1959~1965:晶体管替代真空管,降低成本,中小企业也可负担得起。FORTRAN和COBOL两种高级计算机程序设计语言的发明,使编程难度降低。

-第三代1965~1975:人们成功发明集成电路,计算机的成本进一步降低,出现小型计算机和软件工业。

-第四代1975~1985:出现微型计算机。计算机子系统可以做在单块电路板上,第一个桌面计算器(Altair 8800)出现,同时出现了计算机网络。

-第五代1985至今:诞生了掌上计算机、台式计算机、第二代存储媒体、多媒体应用、VR、AR等等。现在还有手机、笔记本电脑、游戏主机(掌机)、更先进的硬件元件等等,未来会更多。期待第六代的时代到来,虽然我现在并无法想象它。

练习题

1、解释为什么计算机不能解决那些计算机外部世界无解决方法的问题。

先理解一下问题。“计算机外部世界无解决方法的问题”,无解决方法,可能不太好理解。

那么我假设一个有解决方法的问题,那么我可以通过设计,设计一个程序,这个程序含有这个解决方法,只要我把问题输入,那么经由这个程序,我可以将问题解决。

那么,无解决方法的话,我无法去设计一个程序或是其它什么东西,把我输入的问题——也就是把外部世界的问题以计算机能懂的方式输入计算机——解决。

所以,计算机解决不了计算机外部世界无解决方法的问题。

2、如果一台小的便宜的计算机可以做大型昂贵的计算机同样能做的事情,为什么人们需要大的呢?

可能有如下原因:

-纪念意义。

-效率更高。同样是算1+2-3×4,便宜的小计算机与昂贵的大计算机几乎能同时算出结果,但只是“几乎”,这样的差距可以被计算的复杂程度影响。输入的问题复杂到一定程度后,两台计算机依然都能得出结果,但大计算机显然更流畅,而小计算机则出现卡顿。这也是硬件更新换代的一个动力。

3、研究Pascaline计算器,看看它是否符合图灵模型。

关于Pascaline如何工作,引用视频:https://www.youtube.com/watch?v=3h71HAJWnVU

其内部构造我们不多探究。

视频中所演示的计算器同时具有加法和减法功能,这可视为它的程序既是加法与减法。

通过下方的五个可动转轮,分别表示万、千、百、十、个位上的数字,根据每个转轮周围标识的0~9(0就是初始不转动),可以输入操作者想要进行运算的数字(用杆状物卡在缝里,对应的数字就是顺时针转动辐条到金属挡板时输入的数字),转动的同时,上方的数字也会跟着转动变化(上方的显示实际上也是一个轮子)。通过移动遮挡条,可以选择使用加法还是减法(遮挡条有上下两个位置,遮住上方,则显示加法运算结果;遮住下方,则显示减法运算结果)。而计算的结果是可视的,即程序对输入数据的处理结果被输出了。

综上,pascaline计算器是符合图灵模型的。

数据+程序==>计算器==>输出数据

++答案应该是:它不符合图灵模型。

这里我要强调一下关于图灵模型中程序的定义:程序是用来告诉计算机对数据进行处理的指令集合。而pascaline没有这样的指令集合,它是通过机械转动的特点、合理的设计,使我们得以通过它进行加法、减法运算。它并没有程序去告诉它,要怎样去处理数据。

4、研究莱布尼兹之轮(Leibnitz‘s Wheel),看看它是否符合图灵模型。

互联网上关于莱布尼兹乘法器的讨论很少,为数不多的截图,能看见一个标识是某象工会,而且存在发布作者重复、内容重复、有用资料少的情况,外网如何暂不清楚。故无法详细研究。

In the Turing model, a computer consists of input data, output data and a program. Leibnit’s wheel is not a computer according to this model because it lacks the program component.

答案说它不符合图灵模型,因为缺少程序部分,那原理相同的 pascaline计算器也就不符合了,所以我第三题做错了。

5、研究亚卡尔提花织机(Jacquard loom),看看它是否符合图灵模型。

符合。提花织机的有孔挡板,它们的每挡板的孔洞都是提前设计好的、用于指挥织机哪根线要不要动,而且挡板是有先后顺序的安装在织机上的——这取决于织工想要什么图案。

这样的挡板组合,相当于一条条指令组成的指令集,也就是程序,让提花织机能一丝不苟地织出人们想要的图案。

参考视频:提花织机发明历史 小视频 A_Pashmina_using_200_years_old_Jacquard_Loom_technology_哔哩哔哩_bilibili (youtube搬运)

6、研究查尔斯·巴比奇分析引擎,看看它是否符合冯·诺伊曼模型。

关于巴比奇:查尔斯·巴贝奇:现代计算机真正的鼻祖 - 知乎 (zhihu.com)

分析引擎,我当作是巴比奇的分析机而不是差分机。

巴比奇的分析机,依照他的最初设想来制作的话,是符合冯·诺伊曼模型的。

  1. 由差分机的计数装置改进而来的数据存储器,可存储1000个40位十进制数===>存储器
  2. 支持四则运算比较大小和开平方根的算术单元,巴贝奇称之为“工厂”(mill)===>算术逻辑单元
  3. 实现逻辑控制的圆柱形“控制筒”,身周固定着许多销钉,随着“控制筒”的旋转,通过销钉推动杠杆实现控制 ===>控制单元
  4. 3种用于输入的读卡装置,其一输入运算指令,其二输入常量数据,其三输入控制数据(在存储器和算术单元之间)传输的指令,承载这些输入信息的是一种名为穿孔卡片(punched card/punch card)的经典载体,3种读卡装置分别识别3种类型(运算、数据和控制)的穿孔卡片 ===>输入单元
  5. 4种输出装置,其一为打印装置,其二为曲线绘图仪,其三为响铃,其四为打孔机,用于制造穿孔卡片 ===>输出单元

The Analytical Engine has all four components of the von Neumann model: a mill (ALU), a store (memory), an operator (control unit), and output (input/output), but the program was not stored in the memory. Therefore, it is not a computer according to the von Neumann model.

答案给出的意思是说:这不符合冯·诺伊曼模型,因为它没有可编程的程序。关于这一点,在上方引用的文章中有提到,在巴比奇的儿子亨利做出来的 “工厂” 的能力中,没有 “可编程” 这一项。

7、研究ABC计算机,看看它是否符合冯·诺伊曼模型。

ABC计算机(Atanasoff–Berry computer)不符合冯·诺伊曼模型。理由是它具有专用性,不可编程。

具体参见:ABC:世界上第一台电子计算机竟不是ENIAC - 知乎 (zhihu.com)

但ABC已经十分接近现代计算机了,它使用二进制、并行处理、电子计算、计算存储分离结构。

8、研究并找出键盘起源于哪一代计算机。

先重提一下计算机有几代:第一代1950~1959、第二代1959~1965、第三代1965~1975、第四代1975~1985、第五代1985至今。

键盘的起源可以追溯到打字机时代:QWERTY 键盘的设计原理是什么? - 知乎 (zhihu.com)【键盘发展史】这三百多年里,键盘经历了什么?_哔哩哔哩_bilibili

但依题意,这里的键盘应该是从计算机用键盘,而不包含打字机时代的键盘。

答案应该是第四代计算机,无论认为是apple Ⅱ还是IBM PC,它们都是属于第四代的了。

The first keyboard appear with time sharing, multi-user system by 1964 which is end of the second generation and the beginning of the third generation.

好吧,是第二代计算机。这里作者指的计算机应该是IBM 360,它确实带着一个键盘,而整体有一个小房间那么大,不过是具有可升级性的,也就是可以增加或者更换设备。研发投入据说是50亿美元。

我所读的计算机科学导论的版本的题目只有这些了,能查到的剩下两条题目——我不知道的——的答案放在下方,答案标号也一并放出。

35.The hard disk of today may be used as either an input device or an output device. When data or programs are read from the disk, the disk is considered an input device. When data or programs are written to the disk, the disk is considered an output device.

(大意:如今的硬盘既可用作输入设备,也可用作输出设备。当从硬盘中读取数据或者程序时,它是一个输入设备;当写入时,它是一个输出设备。)

37.Data are the most valuable assets of most organizations. An organization can replace its hardware and software if they are lost (due to theft, fire, etc.) and usually they do it every few years as hardware or software become obsolete, but the data are indispensable.

(大意:数据是多数组织最宝贵的资产。一个组织可以换掉硬件和软件,如果它们出了问题(由于盗窃、火灾之类的),并且,它们通常没几年就这样做一次(即便没有意外事故,因为硬件有其寿命,而且硬件和软件都是会随着时代而迭代更新的),但是数据是无法取代的。(indispensable:不可缺少的,必需的。)(另外,有些公司提供数据恢复服务,但相信不会有太多企业会想要多付这份钱。而作为个人,我们的数据也要做好备份,才不至于在面对高昂的数据恢复费用以及不完全的数据恢复时流下后悔的泪水))

计算机科学导论-第三版-学习笔记-chapter1-绪论的更多相关文章

  1. 《Linux命令、编辑器与shell编程》第三版 学习笔记---002

    <Linux命令.编辑器与shell编程>第三版 学习笔记---001 Linux命令.编辑器与shell编程 Shell准备 1.识别Shell类型 echo  $0 echo $BAS ...

  2. python cookbook第三版学习笔记十:类和对象(一)

    类和对象: 我们经常会对打印一个对象来得到对象的某些信息. class pair:     def __init__(self,x,y):         self.x=x         self. ...

  3. JavaScript高级程序设计第三版学习笔记(一)之数据类型区分详谈

    null.NaN.undefined三者的区别是什么? 在初次接触到JavaScript的时候,傻傻的分不清null.NaN.undefined三者到底区别何在,在实际的项目开发中也因为这个问题而困惑 ...

  4. python cookbook第三版学习笔记六:迭代器与生成器

    假如我们有一个列表 items=[1,2,3].我们要遍历这个列表我们会用下面的方式 For i in items:   Print i 首先介绍几个概念:容器,可迭代对象,迭代器 容器是一种存储数据 ...

  5. python cookbook第三版学习笔记 一

    数据结构 假设有M个元素的列表,需要从中分解出N个对象,N<M,这会导致分解的值过多的异常.如下: record=['zhf','zhf@163.com','775-555-1212','847 ...

  6. python cookbook第三版学习笔记十三:类和对象(三)描述器

    __get__以及__set__:假设T是一个类,t是他的实例,d是它的一个描述器属性.读取属性的时候T.d返回的是d.__get__(None,T),t.d返回的是d.__get__(t,T).说法 ...

  7. python cookbook第三版学习笔记二十:可自定义属性的装饰器

    在开始本节之前,首先介绍下偏函数partial.首先借助help来看下partial的定义 首先来说下第一行解释的意思: partial 一共有三个部分: (1)第一部分也就是第一个参数,是一个函数, ...

  8. 《Linux命令、编辑器与shell编程》第三版 学习笔记---003 使用multibootusb

    1.下载文件https://codeload.github.com/mbusb/multibootusb-8.9.0.tar.gz,使用命令: tar xvf multibootusb-8.9.0.t ...

  9. python cookbook第三版学习笔记七:python解析csv,json,xml文件

    CSV文件读取: Csv文件格式如下:分别有2行三列. 访问代码如下: f=open(r'E:\py_prj\test.csv','rb') f_csv=csv.reader(f) for f in ...

  10. python cookbook第三版学习笔记十三:类和对象(四)描述器

    __get__以及__set__:假设T是一个类,t是他的实例,d是它的一个描述器属性.读取属性的时候T.d返回的是d.__get__(None,T),t.d返回的是d.__get__(t,T).说法 ...

随机推荐

  1. 【雅礼联考DAY01】数列

    #include<cstdio> #include<map> using namespace std; typedef long long LL; const int N = ...

  2. 题解 P4163 [SCOI2007]排列

    强烈谴责只有 125MB 的行为,然后我没删调试是个什么 SB... 闲话少说,切入正题-- 首先看到取余和数字是可以排列的,我们自然而然的想到了数位 dp,但是很显然这题不是的数位 dp 通常解决的 ...

  3. Blob 和 ArrayBuffer

    Blob 和 ArrayBuffer Blob 对象表示的是二进制到文本的对象: ArrayBuffer 对象表示一段二进制数据,用来模拟内存里面的数据. Blob 关于 Blob 的详细内容:了解 ...

  4. PostgreSQL Repmgr集群

    一.概述 repmgr是一套开源工具,用于管理PostgreSQL服务器群集内的复制和故障转移.它支持并增强了PostgreSQL的内置流复制,该复制流提供了一个读/写主服务器以及一个或多个只读备用数 ...

  5. LeetCode-2055 蜡烛之间的盘子 及库函数 lower_bound 和 upper_bound学习使用

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/plates-between-candles 题目描述 给你一个长桌子,桌子上盘子和蜡烛排成一列. ...

  6. 普冉PY32系列(六) 通过I2C接口驱动PCF8574扩展的1602LCD

    目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...

  7. pip 基本问题

    pip语法错误 pip换源 更新错误 无模板 Ignoring警告 问题一 (pip语法错误 ) pip list File "<stdin>", line 1 pip ...

  8. uniapp 提示 打包时未添加 push模块

    最近打包上架的  ios项目  启动项目提示打包时未添加  push模块 在uniapp  manifest中可以配置消息推送,可以我们项目没有用到这个功能,真是日狗了,排除半天仔细检查了使用Push ...

  9. emacs config on win10 for rust 1

    native win32 (setq package-archives '(("gnu" . "http://mirrors.ustc.edu.cn/elpa/gnu/& ...

  10. C6657子卡模块设计资料:268-基于FMC接口的DSP TMS320C6657子卡模块

    基于FMC接口的DSP TMS320C6657子卡模块 一. 概述        FMC连接器是一种高速多pin的互连器件,广泛应用于板卡对接的设备中,特别是在xilinx公司的所有开发板中都使用.该 ...