计算机科学导论(读书笔记)

第一章

图灵机:一种可以编程的数据处理器(图灵机是一种理想模型,它可以依据程序进行任何计算)
冯诺依曼:提出程序也可以存储在计算机里(输入输出,控制单元,存储器,算术逻辑)
类:可以理解为自己创造指令,进行组合。
算法:解决问题的方法与步骤
软件工程:结构化程序的设计和编写(程序设计中遵循的原理和规则)
操作系统:一些对所有程序都适用的指令
数字系统:不同的符号来代替指向表示同一个数字

第二章

第三章(数据存储)

数据存储:(数字,文本,图像,音频,视频)包含所有上述信息时成为多媒体,16个位称为一个位模式,8个位模式一个字节,两个字节一个字。
整数:定点表示法,小数点被固定在最右侧;
无符号整数:范围由计算机分配给它的位数决定。
补码:从右边开始,进行复制,直到复制一个1之后,将1左边的进行反码。(求反码后再加1)
反码:逐位求反
浮点表示法:符号,位移量,定点数组成
数字存储: 余码表示法;单精度是32位,双精度是64位。
文本存储:Ascll码是Unicode的一部分
音频存储:采用模拟化的方法存储:采样、量化、编码
图像存储:光栅图、矢量图
光栅图:(位图)也是模拟采集,通过扫描得到像素,再进行解析;真彩色:利用三原色对颜色进行编码,每个8位,一共24位;索引色:通过不断索引得到颜色。JPEG:真彩色;GIF:索引色
矢量图:(几何模型,面向对象模型)通过将图像分解为不同的形状进行组合的方式进行存储。(每个形状由数学公式表达)不适合存储较为精细的数据。
视频存储:图像为每一帧,将其进行压缩存储后即是视频存储

第四章(数据运算)

分类:算术运算、逻辑运算、移位运算
逻辑运算用于修改位模式:求反、使指定的位复位(用AND来实现)、对指定位置位(用OR来实现),将指定位置反转(用于实现上述方式的称之为掩码)。
移位运算:逻辑移位运算、算术移位运算
逻辑移位运算:(应用于不带符号位的数的模式)1 逻辑移位 2 循环移位
算术移位运算:算术右移:复制并且保留;算术左移:删除(若前后符号不一样,发生溢出)
算术运算:整数的算术运算、实数的算术运算

第五章(计算机组成)

计算机组成:中央处理单元(cpu) 、存储器、输入输出子系统
中央处理单元:算术逻辑单元(ALU) 、控制单元、寄存器组(快速存储单元)
算术逻辑单元:进行三种运算
寄存器:数据寄存器、指令寄存器、程序计数器
控制单元:控制协调各个子系统之间的合作
主存储器:地址空间
地址空间:所有在存储器中标示的独立的地址单元的总数,内存地址用无符号二进制整数定义。
储存器结构:寄存器、高速缓冲存储器、主存
输入输出子系统:存储设备、非存储设备
CPU和存储器的连接:数据总线、地址总线、控制总线(都与各自控制的位数有关)
I/O设备的连接:通过输入输出控制器将器件连接到总线上。
控制器(接口):分为串行和并行,常用的有SCSI 火线 USB(通用串行总线)
CPU使用相同的总线在输入输出设备以及存储器之间传输数据,但根据指令的不同来控制何时访问输入输出设备。
输入输出设备的寻址方式:I/O独立寻址,I/O存储器映射寻址
CPU利用重复的机器周期对指令进行执行:取指令、译码、执行
CPU同步输入输出的三种方法:程序控制、中断控制、直接存储器存取(DMA)
体系结构:复杂指令集计算机、精简指令集计算机、
流水线、并行处理(提高数据处理速度的方法)

第六章(计算机网络)

局域网(LAN)广域网(WAN)通过路由器不断相互连接形成互联网。
因特网是互联网的一种:由ISP提供服务。
TCP/IP协议族:应用层、传输层、网络层、数据链路层、物理层;路由器只使用到了前三层。每一层调用下一层的服务。
应用层:向用户提供服务;客户 /服务器体系结构 ;服务器的应用层地址帮助客户端找到服务器计算机的IP地址。DNS将域名与IP地址匹配。IP(类似于大楼号)
访问http:需要采用统一资源定位符(URL)
域名服务器(DNS)
传输层:负责用户和服务器进程间的消息的逻辑传递;多路复用和解多路复用;
传输层地址(端口号):标记服务器进程(类似于公寓号)
传输层协议:UDP(用户数据报协议)、TCP(传输控制协议)、SCTP(流控制传输协议)
网络层:单个数据包从源地到目的地的传输。
网络层的路由选择:根据现有的可用路由,选择出最优的路径。
网络层协议:IP(因特网协议)是主协议,目前主要使用IPv4,(一共32位,用三个点分开,每个四位,从0到255,
数据链路层:负责数据帧节点到节点之间的传输。
数据链路层地址(物理地址、介质访问控制(MAC)):采用以太网协议,48位,分为6部分,每部分由两位16进制组成。
物理层:将组成帧的单位通过广播的形式进行传播,不需要地址。
万维网:超文本、超链接
万维网(WWW)的组成:浏览器、Web服务器、超文本传输协议(http)
浏览器:解释和显示Web文档;由控制器、客户端程序、解释器构成
服务器:存储所有属于Web站点的页面
地址:由方法、主机、端口号、路径组成(方法:// 主机:端口号/路径)
方法:存取文档使用的协议。如HTTP
主机:信息所在的计算机(计算机可以是别名,如WWW)
端口号:可有可无,如果存在,用 : 进行分隔
路径:本身可以包含有 /
静态文档:超文本标记语言(HTML)(可以理解为一种通用性更广的MarkDown语言)

第七章(操作系统)

计算机系统:硬件和软件
软件:操作系统和应用程序,应用程序控制硬件完成用户要求,操作系统控制用户对硬件的访问。
操作系统:计算机硬件到用户(程序和人)之间的一个接口,它使得其他程序能够方便有效地运行,并能方便地对计算机硬件和软件资源进行访问。
两个目标:1、有效地使用硬件 2、容易地使用资源
自举程序:完成操作系统作为程序的自我调用。
操作系统:用户界面(与其他四个独立)、内存管理器、进程管理器、设备管理器、文件管理器
用户界面:UNIX的命令解释程序(shell)、windows的图形用户界面(GUI)
内存管理器:单道程序、多道程序、虚拟内存
进程管理器:程序、进程和作业;
UNIX:多用户、多道程序、可移植的操作系统;由 内核、命令解释器、一组工具、和应用程序组成。内核是心脏、命令解释器是向用户开放的界面、标准化工具用来为用户工作提供简洁方法:有文本编辑器、搜索程序和排序程序三部分组成。工具本质上是复杂的程序、应用是用户自己编写的,一些十分有用的被发展成为了工具。
Linux:内核、系统库、系统工具
Windows:硬件抽象层(HAL),内核,执行者,抽象子系统。

第八章(算法)

算法:一种逐步解决问题或完成任务的方法。
三种结构:顺序、判断、循环
算法表示:统一建模语言(UML)(理解为流程图)、伪代码、结构图(在设计阶段使用)
算法的进一步定义:一组明确步骤的有序集合,他产生结果并在有序的时间内终止。
基本算法:求和、乘积、最大和最小、排序、查找
递归:算法包含本身
迭代:算法定义不包含自身

第九章(程序设计语言)

机器语言:计算机唯一可以识别的语言(第一代编程语言)
缺点:1、依赖于计算机、不同的硬件机器语言不相同。2、编写过程单调乏味。
汇编语言:带符号和助记符的指令和地址代替二进制编码。(也称为符号语言)
高级语言:可以被转化为机器语言,(这一过程被称为编译或解释)
翻译:将源程序转化为目标程序;两种方法:编译和解释
编译:将整个源程序翻译成目标程序
解释:把源程序中的每一行翻译成目标程序中相应的行,并执行的过程。
解释的两种方法:每一个行被翻译完毕后,被立即执行;先编译再解释,但此编译并非直接编译为机器语言。
翻译过程:源程序经过词法分析器、语法分析器、语义分析器、代码分析器后生成目标文件
编程模式:过程式、面向对象、函数式、说明式
过程式:活动主体(程序)操控被动对象(数据),为了操控被动对象,活动主体发布动作,称之为过程。对象和过程是完全分开的实体。过程与程序触发分开,程序不定义过程,只触发或调用过程,过程必须已经存在。
过程式高级语言:程序是过程调用的集合,考虑过程和被控制的对象,程序分为三部分:对象创建部分(说明)、一组过程调用(命令)、每个过程的一组代码。
面向对象:处理活动对象,而不是被动对象,对象自己包括可执行的动作,只需要接受合适的外部刺激来激发相应的动作。将文件所有执行的过程(也称为方法)打包在一起为对象。面向对象的方法属于对象。
类:相同类型的对象(如文件)需要一组方法,这些方法显示了对象面对外部刺激时做出的反应。
类的方法:是面向过程时编写的过程的扩展,C++是C的很好扩展。
函数式编程:提供一系列原始程序供程序员选择组合成为新的函数。
说明式语言:需要大量的逻辑定义,应用:人工智能
共同概念:标识符(给数据和其他对象命名)、数据类型(简单和复杂)、变量(存储单元的名字):变量声明、变量初始化、字面值(程序中使用的预定义的值)、常量、输入和输出、表达式:运算符、操作数、语句:赋值语句、复合语句(代码块)、控制语句、子程序

第十章(软件工程)

软件生命周期:开发,使用,修改,直到软件过时。
开发过程:分析、设计、实现和测试;两个模型:瀑布模型、增量模型
文档:是一个持续的过程、分为用户文档、系统文档和技术文档。
用户文档:用户手册
系统文档:软件在开发过程中四个过程的描述。
技术文档:软件的安装与服务、

第十一章(数据结构)

数组:元素的顺序集合,通常这些元素具有相同的数据类型。
数组操作:数组作为数据结构的操作;查找、插入、删除、检索、遍历
记录:相关元素的集合,元素可以是不同类型,但记录中的元素必须是相关的
链表:有序数据的集合,每个元素包含两个部分:数据和指针

第十二章(抽象数据类型)

抽象:1、知道一个数据类型能做什么;2、如何去做是隐藏的
抽象数据类型:1、数据的定义;2、操作的定义;3、封装数据和操作
栈:数据定义:后入先出;操作定义:建栈、进栈、出栈、空
栈的实现:栈的抽象数据类型既可以通过数组实现,也可以通过列表实现。
队列:数据定义:先入先出;操作定义:建队、入队、出队、空
队列的实现:队列的抽象数据类型既可以通过数组实现,也可以通过列表实现。
广义线性表:插入和删除可以在任何地方进行的表;操作定义:建表、插入、删除、检索、遍历、空
广义线性表的实现:广义线性表的抽象数据类型既可以通过数组实现,也可以通过列表实现。
二叉树:数据定义:二叉树是一棵空树或由一个根节点和两个子树构成、每个子树又均是二叉树;操作定义:建树、插入、删除、检索、遍历、空
二叉树的实现: 通过链表抽象数据类型实现更为适用一些。
二叉搜索树(BST):根节点值大于左子树小于右子树
二叉搜索树的实现:类似于广义线性表的抽象数据类型

第十三章(文件结构)

文件:作为一个单元看待的外部数据的集合。文件是数据记录的集合,每一个记录由一个或多个域构成。
存取方法:顺序存取(顺序文件)、随机存取(索引文件、散列文件)
目录:操作系统提供的,用来组织文件。
特殊目录:根目录、主目录、工作目录、父目录
文本文件与二进制文件

第十四章(数据库)

数据库:一个组织内被应用程序使用的逻辑相一致的数据的集合
相较于平面文件的优点:1、冗余较少 2、避免不一致性 3、效率 4、数据完整性 5、机密
数据库管理系统(DBMS):定义、创建、维护数据库的一套工具;由硬件、软件、数据、用户、规程构成。
数据独立于软件,这样可以在更换软件时保证数据不被改变。
数据库体系结构:内层、概念层、外层
数据库模型:层次模型、网状模型、关系模型
关系模型:分布式数据库、面向对象数据库
在关系数据库中,定义一些操作来通过已知的关系来创建新的关系:如 插入、删除、更新、选择、投影、连接、并、交和差。将他们描述成在SQL中的定义。
结构化查询语言(SQL):是一种描述性语言(不是过程化),意味着只需要声明,而不需要详细编写。
一元操作:插入、删除、更新、选择(选择几行,即属性不变,基数减少)、投影(选择几列,即基数不变,属性减少)
二元操作:连接(基于共有的属性把两个关系联合起来)、并(两个关系的属性要相同)、交(两个关系的属性要相同)和差(两个关系的属性要相同,生成一个在第一个关系中而不在第二个关系中的新关系)
语句的组合:通过SQL语言的组合来获取更为复杂的数据、
数据库设计:1、数据的收集;2、建立实体关系模型(ERM)
1、实体关系模型 2、通过实体关系模型,建立关系数据库中的关系。分为实体集上的关系和关系集上的关系。3、规范化,将建立的关系规范处理,为后续进行的操作简约做准备。

第十五章(数据压缩)

第十六章(安全)

第十七章(计算理论)

简单语言:递增语句、递减语句、循环语句
图灵机:磁带、读写头、控制器

第十八章(人工智能)

人工智能:一个程序系统,在一定程度上能模仿人类的活动,如感知、思考、学习和反应。
智能体:软件智能体、硬件智能体
知识表示:智能体可以通过程序操控被表示成数据结构存储在计算机里的事实。
知识表示方法:语义网、框架、谓词逻辑、基于规则的系统
启发式算法:从初始态到终态,每一部分经过所需要的步骤称为h值,当h值降到0时即是终态。

你可能感兴趣的:(计算机科学导论(读书笔记))