前言
本篇文章主要是对于《计算机科学概论》的一些总结和概述,前六章较为详细,后面只选取了一部分,仅供参考。
一、第1—3章
第1章:
①计算系统的定义和组成:硬件、软件、管理的数据(核心)
②计算系统的分层(洋葱全景图):信息、硬件、程序设计、操作系统、应用、通信(全书围绕此展开)
③ 抽象以及信息隐藏的概念(结合实际体会)
④计算机早期历史:最早计算设备:算盘——加减的机械装置——莱布尼茨建造“步进计算机”(第一台进行四种运算的机器)——约瑟夫织布机(穿孔卡片)
——差分机——分析机(自动计算机的概念提出)——第一台机电室制表机——图灵机——哈佛马克一号(继电器)、ENIAC、UNIVAC一号
⑤计算机的硬件发展史以及真空管-晶体管,主存储器(磁鼓-磁芯),输入输出设备(终端),辅助存储设备(磁盘),集成电路的相关概念。
⑥并发和并行的区别:并发是同一时间段内多个程序执行,但任一时刻只有一个程序运行,宏观上同时进行;
并行是同一时刻一组程序独立异步地进行,多个CPU实现。
并行式和分布式的区别:可以将并行计算看作是在同一台计算机上同时使用多个处理器或核心进行计算,而分布式计算则是将任务分发给多台计算机或服务器进行处理。
⑦计算机软件的发展:语言层次的发展,语言翻译程序(汇编器和翻译器)等
第2章
①数字,自然数,负数,有理数,整数的概念
②基数以及位置记数法的概念
③二进制、八进制、十六进制表示数字的方法及其与十进制相互之间的转换。
(短除法:除二取余,倒序排列;421/8421法;从右往左划分三位/四位一组)
④二进制数字、位、字节、字在计算机中的概念
第3章
①区分数据与信息的概念;数据压缩,带宽,压缩率,有损与无损压缩
②模拟数据与离散数据的区别。计算机会数字化数据,即离散数据,原因:模拟数据容易丢失信息,即失真。
③负数表示法:符号数值表示法、补码(二进制补码的求法:变为反码加一):数字溢出的概念。
④实数表示法:浮点表示法、科学计数法
小数部分进制转换:按权展开式计算/小数部分从左到右分别除以2、4 、8再相加/从左到右,后面补0
⑤文本表示法:ASCII字符集、Unicode字符集
⑥文本压缩类型:关键字编码、行程长度编码、赫夫曼编码
⑦音频数据表示法(MP3)、图像与图形表示法(颜色表示、数字化图像:GIF、JPEG、PNG格式、矢量图形)、视频表示法(视频编译码器)
二、第四—六章
第4章:
①门(逻辑门)的功能:接入一个或多个信号,输出一个信号;电路是由门组合而成的.
②门和电路的表示法有三种:布尔表达式(代数运算)、逻辑框图(图形表示)、真值表(输入值对应输出值的表格)
③可理解为0代表假;1代表真
非门(NOT):对输入值求反;
与门(AND门):只有输入全为真,输出才是真
或门(OR门):真或假输出也为真,只有全为假,输出才是假
异或门(XOR):两个输入值都为1时,输出为0
与非门(NAND)、或非门(NOR):与门与或门的对立门
④晶体管的构造和工作原理,各种类型的门是由晶体管制造的,与非门和或非门是在与门和或门的基础上加一个非门制造的。
⑤布尔代数的性质:交换律、结合律、分配律、恒等、补、德·摩根定律
⑥加法器和半加器:和(SUM)——异或门;进位(CARRY)——与门
⑦多路复用器:输入控制线控制输出;多路分配器相反
集成电路(芯片):嵌入了多个门的硅片(感觉是更高一级的抽象,把很多门集结起来)——CPU芯片(核心)
第5章:
①各种计算机部件的表示、相关介绍
RAM随机存储处理器,每个存储单元都能被直接访问;ROM只读存储器,内容不能更改。
②冯·诺依曼体系结构是当今大多数计算机的底层体系结构有五个主要组成部分:内存、算术/逻辑单元、输入设备、输出设备和控制单元。
内存是存储单元的集合。
CPU由两部分单元组成:算术/逻辑单元(ALU)进行算术逻辑运算,上面还有少量的特殊存储单元—寄存器;
控制单元有两种特殊的寄存器,指令寄存器和程序寄存器。
输入——接受数据;输出单元——打印和显示数据
计算机如何处理数据和指令(处理周期):
读取下一条指令——译解指令——若需要,获取数据——执行指令
③二级存储设备(辅助存储设备):优点是不再处理数据或关机时,程序和数据还是保存起来不会丢失;并且可以存放大量的数据;但是必须从这些设备里读取数据并把数据写回。
⑴磁带,第一种是磁带驱动器,缺点是访问数据时,必须访问这个数据之前的所有数据,并且丢弃它们,费时.
⑵磁盘驱动器是通过读写头在磁盘上移动来检索记录数据的,通过寻道时间,等待时间,存取时间,传送速率可以衡量磁盘驱动器的效率
⑶CD驱动器使用光盘读取盘片上的信息,而附加在CD后的其他字母能说明了光盘的一些性质,比如R代表可记录的光盘,RW代表可重写的光盘
原理:光盘表面有很多小坑造成不同反射,光学传感器会捕捉到,并解码为1和0
DVD也有很多形式,前面加上DL代表双层,就是容量是普通的两倍,还有蓝光的格式使用的是蓝色激光,容量也比较大
⑷闪存(U盘)是一种可写入又可擦去数据的非易失性计算机存储器,也可以被用于制作固态硬盘比普通硬盘的速度更高,功耗也低。
⑸触摸屏是一种外围设备,同时具备输入和输出功能对触摸做出响应,并且确定触摸的位置,实现触摸屏的技术主要有电阻式、电容式、红外触摸屏和表面声波触摸屏
注:不能用戴手套的手指触摸电容式触摸屏,因为它依靠的是流向触摸点的电流
④嵌入式系统指的是为了完成小范围的一个功能专门设计了的计算机
⑤并行计算,只有在有多个核心,并且线程之间没有依赖关系的时候才能算是并行,而并发是微观上是只有一个人,但是它会在两个任务之间快速切换,宏观上看起来是两个任务在同时进行,实际上只有一个人在做事。
补充:一般来说,电脑内存是“非永久性”,所以内存叫“易失性”存储器,存储器里的数据会一直存着,直到被覆盖或删除。延迟线存储器:压力波需要时间传到麦克风,但一个时刻只能读一位,又叫“顺序存储器”或“循环存储器”。
磁芯存储器:给磁芯绕上电线,施加电流,可以磁化在一个方向,沿着相反方向施加电流磁化方向翻转,存储0和1.能随时访问任意一位。
新存储:磁带,可以在磁带驱动器中前后移动,里面有一个写头绕了电线,电线通过产生磁场,导致磁带的一小部分被磁化,电流方向代表的极性,代表1和0,还有一个读头,可以非破坏性低检测极性,主要缺点是访问速度 ,磁带是连续的,必须倒退或快进到达某位置。、
磁鼓存储器,有金属圆筒,盖满了磁性材料记录数据,滚筒会持续旋转,读写头读取数据,硬盘类似。
第6章:
①机器语言是计算机可以直接理解和执行的语言,由一系列二进制代码组成。它是最接近硬件的语言,但难以编写和理解。汇编语言是一种低级语言,使用助记符代替机器语言的二进制代码,使得程序更易于编写和理解。汇编语言需要通过汇编器转换成机器语言才能被计算机执行。
②Pep/9是一台虚拟机,用来模拟真实机器的特征。
内存单元由65536字节的存储空间构成
③机器指令一共8位,前四位是操作码(OP),后四位是地址码。
有效地址是指令给出的操作数所在的存储单元的地址,那么我们需要把形式地址,通过寻址方式找到有效地址
寻址方式:
一立即寻址:指令中直接给出操作数
二直接寻址:指令中给出操作数所在的存储单元的地址
三间接寻址:指令中给出操作数地址的地址
四寄存器寻址:指令中直接给出存储在寄存器中的操作数
五寄存器间接寻址:指令中给出的地址是在寄存器中的,再这个地址去寻找主存中的操作数
④除了常规的指令,汇编语言编程还支持汇编器指令,也被称作伪操作。
分支是指出执行下一条指令的指令。
⑤伪代码是一种表达算法的语言。
功能:变量、赋值、输入/输出、重复(重复执行命令)、选择(选择执行或跳过某项操作,有if-then选择和if-then -else选择)
⑥所有程序都必须经过测试确定它的正确性,测试计划就是一个文档,说明了要全面测试程序需要运行的次数以及运行程序使用的数据每套输入的数据称为测试用例。
常见方法:代码覆盖测试法(明箱测试法),设计的测试用例会确保程序中的每条语句都被执行到,
数据覆盖测试法(暗箱测试法)设计的测试用例会确保包括允许使用的数据的边界值,
第7—9章
第7章
①算法是在有限的时间内用有线的数据解决问题或子问题的一套指令。(解决问题的具体步骤)
②计算机问题求解过程包括四个阶段:分析和说明问题、算法开发(解决方案)、实现(具体方案)、维护(重组改写)
有简单变量的算法:带有选择的算法,带有循环的算法
③算法之一排序:
⑴选择排序(最简单,效率低)
⑵冒泡排序法是一种选择排序:从数组最后一个元素开始比较相邻的元素,如果这个元素小于上面的元素,就交换两个元素的位置,以此类推。
④算法的运行大小和输入步骤执行的关系,叫做复杂度,表示运行速度的量级。
计算机科学家们把算法复杂度叫做——大O表示法
⑤归并排序:先不断二分,直到每组一个数据,再两组两组地排序合并(更有效率)。
经典算法问题:图搜索(迪杰斯特拉算法)每一个分支都找到最小值最后合并。
第8章:
①基本数据结构:数组(列表/向量),数组的值一个个连续存在内存里,因此,可以把多个值存在数组变量里。拿出数组中的某个值,需要下标(第一个数下标是0),[]代表访问数组
②字符串:字母、数字、标点符号等组成的数组
③数组可以操作一维数据,二维数据(矩阵)甚至多维
④多个变量打包在一起叫做结构体,结构体可以创造更复杂的数据结构,比如节点有一个变量和一个指针(指向一个内存地址),许多节点可以构成链表,很多复杂数据结构都会用到链表,比如队列(先进先出)、栈(先进后出)
⑤树结构:最高点是根结点,下面都是子节点,子节点上是母节点,最后结束是叶节点
第9章
①面向对象设计(OOD)的底层概念是类和对象。
对象是问题背景中相关的事物或实体,类是一组具有相似属性和行为的对象的描述
面向对象设计过程有四个,头脑风暴,过滤,场景,责任算法。头脑风暴为确定问题中的类进行第一轮讨论,过滤检查提出的类,场景确定每个类的责任,责任算法为每个责任编写算法。
②翻译过程有编译器和解释器。编译器是把高级语言编写的程序翻译成机器码的程序;解释器是输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序。
③程序设计语言范型:一个编程范型是一类典型的编程风格(可以对照方法学,是一个从事软件工程的一类典型的风格)。
一个编程范型提供了(同时决定了)一个程序员对程序执行的看法。
一个编程语言可以支持多种范型。例如,C++设计时,支持过程化编程、基于对象编程、面向对象编程以及泛型编程。
列子:结构化编程, 对比 非结构化编程;命令式编程, 对比 声明式编程;消息传递编程, 对比 命令式编程;过程化编程, 对比 函数式编程
④数据类型有整数,实数,字符,布尔型,字符串。
⑤其他:把代码打包成函数,把函数打包成层级,把相关代码放在一起,打包成对象
一个对象可以有多个子对象,当然这个对象可能也有自己的函数,变量。总的来说,对象可以包其他对象,函数和变量(有点像套娃)
把函数打包对象的思想叫“面向对象编程”(提升了一层抽象),“面向对象”的编程语言可以指定函数是public还是private(同一个对象内的函数可以调用),来设置权限
API(程序编程接口):控制哪些函数和数据让外界访问,哪些仅供内部。
第10—18章
第10章
①操作系统:简称OS,其实也是程序,但它有操作硬件的特殊权限,可以运行和管理其他程序。
操作系统的两个主要责任:管理计算机资源(内存、输入/输出设备等);为人机交互提供界面。
②操作系统一般是开机第一个启动的程序,其他程序都由操作系统启动,第一个操作系统加强了程序加载方式,一次可以给多个程序,运行完一个自动进行下一个,叫做批处理
操作系统充当软件和硬件的媒介,具体说,操作系统提供API来抽象硬件,叫“设备驱动程序”,程序员可以标准化机制和输入输出硬件交互。
③使多个程序可以同时运行,在单个CPU上共享时间,操作系统的这种能力叫*“多任务处理”。每个程序会分配有专属的内存块,但是可能不连续,为了隐藏这种复杂性,操作系统会把内存地址进行“虚拟化”,这叫虚拟内存*
④操作系统会自动处理虚拟内存和物理内存之间的映射。这种机制使程序的内存大小可以灵活增减,叫*“动态内存分配*”
给程序分配专用的内存范围,隔离起来防止互相影响和病毒,叫*“内存保护”*
⑤计算机还能让多用户在终端同时访问,这时操作系统还要处理多个用户,开发了分时操作系统,每个用户只能用一小部分处理器,内存等。
第11章
①文件数据按格式排——文件格式
最简单的文件格式——文本文件(TXT文件)
还有波形(Wave)文件,也叫WAV,存音频数据,在正确读取数据之前,需要知道一些信息,比如码率以及是单声道还是立体声。位图,后缀.bmp,存图片。
关于数据的数据,叫“元数据”,存在文件开头,因此也叫文件头。
②为了存多个文件,需要一个特殊文件,记录其他文件的位置,泛称*“目录文件”*
目录文件里,存所有其他文件的名字,格式是文件名+.+扩展名。目录文件还存文件的元数据,比如创建时间,最后修改时间等最重要的是,目录文件里有文件起始位置和长度。如果要添加或删除文件等,必须更新目录文件。
目录文件以及对目录文件的管理(平面文件系统,文件都在一个层次)是一个简单的文件系统例子,文件系统专门负责管理文件。
③分层文件系统:文件夹套文件夹,与平面文件系统最大的不同是目录文件不仅要指向文件,还要指向目录,我们需要额外元数据区分目录和文件,这个目录文件在最顶层,叫根目录。
第12章
①信息系统是帮助我们组织和分析数据的软件。
一般信息系统软件包括电子制表软件和数据库管理系统。
②电子制表软件是用单元格来组织数据和用于计算新值的公式的应用软件。
用行列标号可以引用单元格,如A5或B7。公式通常会引用其他单元格中的值,还会使用内置函数来计算结果。此外,公式还可以使用一个单元格范围内的数据。如果单元格中存放的是公式,那么单元格中真正显示的是公式计算出的值。对于电子数据表中的公式,避免循环引用(两个或多个单元格的计算结果要互相依赖)很重要。
③电子数据表具有多功能性和可扩展性。它们适用于多种不同的情况,能够对变化动态地做出响应。如果电子数据表中的值被改变了,相关的公式会自动重新计算,生成最新的结果。
③数据库管理系统包括存储数据的物理文件、支持数据访问和修改的软件以及指定数据库的逻辑布局的数据库模式。
第13章
①人工智能处理的是人类思想的建模和应用。
②图灵测试是确定一台机器是否能像人一样思考的衡量方法,采用的方式是模拟人类对话。
通过图灵测试的计算机具有弱等价性,即两个系统(人和计算机)在结果上是等价的,但实现这种结果的方式不同。强等价性说明内部过程也是相同的。
③两种知识表示——语义网和检索树。
语义网是知识的图形化表示,它捕捉了对象在真实世界中的关系。
检索树是表示对抗性移动(如比赛)的知识的重要方法。
专家系统嵌入了人类专家的知识。它采用一套规则来定义条件,在这种条件下,可以得出某些结论。专家系统适用于多种类型的决策过程,如医疗诊断等。
第14章
①模拟是计算的一个主要领域,它涉及为复杂系统构建计算机模型,并为观察结果而用模型进行实验。模型是真实系统的抽象,在模型中,系统被表示为一组对象或特征以及管理它们的行为的规则。
②有两种主要的模拟类型,即连续模拟和离散事件模拟。在连续模拟中,变化是由反映对象之间的关系或特征的偏微分方程表示的。在离散事件模拟中,行为被表示为实体、属性和事件,其中实体即对象,属性即实体的特征,事件即实体之间的相互作用。
③排队系统是一种离散事件模拟,其中等待时间是要分析的因素。随机数字可以模拟事件的到达和持续,气象模型和地震模型是连续模拟的例子。
④计算机图形学是结合了计算机、科学和绘画艺术的领域,令人着迷。它依赖数学方程来模拟图像中要呈现的自然现象。计算机图形学把光的交互、对象的属性(如透明度和表面纹理)、对象的形状和物理属性组合在一起,生成了接近真实照片的图像。
⑤计算机游戏是一个玩家可以与系统以及玩家之间交互的虚拟世界。游戏开发者、软件设计师和程序员用游戏引擎来创建一个游戏虚拟世界。
第15章
①网络是一组连接在一起以共享资源和数据的计算机。网络技术注重的是底层协议和数据传输速度。随着我们对网络的依赖性不断增长,出现了客户/服务器模型这种重要的软件技术。
②通常根据网络的作用域对它们分类。局域网(LAN)覆盖的是一个小的地理区域以及相对较少的互联设备。广域网(WAN)网络互连的概念,把网络连接在一起,覆盖较大的地理区域。城域网(MAN)是专为大型城市设计的。LAN拓扑包括环形拓扑、星形拓扑和总线拓扑。以太网已经成了局域网的标准拓扑。
③以太网最简单形式:一条以太电线连接数台计算机 要传数据时,以电信号形式将数据传入电缆,并且以太网需要每台计算机有唯一的媒体访问控制地址,简称MAC地址 ,放在头部作为数据的前缀发送到网络中。
④防火墙可以保护网络免受不正当的访问,给网络施加组织特定的访问控制策略。有些防火墙只会阻止特定端口上的通信,而有些复杂的防火墙则可以分析网络通信的内容。
⑤Internet的网络地址必须精确到一台特定的机器。主机名由易读懂的单词构成,中间由点号分隔。IP地址由四个数字构成,中间由点号分隔,主机名将被翻译成IP地址。IP地址的一部分标识了网络,另一部分标识了该网络中的特定主机。如何划分IP地址是由该地址引用的网络类别(A、B或C)决定的。
域名系统(DNS)负责把主机名翻译成IP地址。DNS已经从最初的包括所有信息的单个文件发展成了把任务分配给几百万个域名服务器的分布式系统。顶级域名(如.com和.edu)已经变得拥挤不堪了,因此通过了新的顶级域名(如.info和.biz)。
第16章
①虽然术语 Internet和Web常被混为一谈,但它们并不相同。万维网是分散在世界各处的计算机上的信息和访问信息的软件构成的基础设施。Web依靠底层网络(尤其是Intetnet)在用户之间交换信息。
Web页不仅包含信息,还包含对其他资源(如图像)的引用。由个人或公司管理的一组Web页叫作网站。全球各种Web页之间都有链接,这也是万维网这个名字的来源。
所谓访问一个Web站点,其实是请求存储在远程Web服务器上的Web页,把它拿到本地计算机上以便浏览。可以用统一资源定位符(URL)指定我们想浏览的Web文档。
有些Web站点(如Google)是搜索引擎,用户只要输入单词或短语,站点就可以根据 的数这些单词或短语搜索相关信息。搜索引擎会提供一个与用户需求可能匹配的候选站点列表 每今有些搜索引擎只是以用户输入的关键字为依据,而有些则会尝试解释关键字的内涵。
第17章
①信息安全有保密性,完整性,可用性。
②目前有几类恶意代码(或恶意软件)引起了很多问题。它们包括:病毒,感染其他软件并自我复制;蠕虫,自我复制但不需要感染宿主系统;特洛伊木马,伪装成有益的软件但有恶意意图;逻辑炸弹,可以执行一个特定的的系统事件响应。
③杀毒软件用来检测、删除和防止恶意软件。尽管它的名字为杀毒软件,但它依然可以保护用户远离多种恶意软件,而不仅仅是病毒。杀毒软件使用特征检测来识别特定的威胁,或通过启发式算法总结检测过程来识别类似的威胁。
④安全攻击多种多样,包括密码猜测、网络钓鱼、拒绝服务攻击和中间人攻击,也包括编程相关的向题,如程序员故意留下“后门”用于系统访问,这也无意中创造了一个潜在的漏洞,如缓冲区溢出,给了用户一个不恰当的高特权。
第18章:
①硬件、软件和要解决的问题自身都对计算机的问题求解有限制。数字本身是无限的,但计算机能表示的数字却是有限的。这种限制会导致算术运算错误,生成不正确的结果。硬件部件则会磨损,计算机之间或计算机内部的数据传输则会造成信息损失。
②大型软件项目的大小和复杂度几乎一定会导致产生错误。虽然测试可以证明有错误,但却不能证明没有错误。构建好的软件的最佳方法是从项目一开始就关注它的质量,应用软件工程的规则。
③从非常易于解决的到根本不能解决的问题的种类很多。使用大O分析可以根据由问题大小决定的增长速率来对比算法。多项式时间算法是大O复杂度能够用问题大小的多项式表示的算法。P类问题是能用单处理器在多项式时间内解决的问题。NP类问题是能用足619 多的处理器在多项式时间内解决的问题。Turing证明过,停机问题是没有解决方案的。
总结
以上就是对《计算机科学概论》的一些总结,大部分只是简单概括了一下,但也有一些小的注意点,希望对大家有所帮助!