第一章 全景图
计算机系统分层
计算机硬件发展史
1.早期历史
2.第一代:电子管数字计算机
3.第二代:晶体管数字计算机
4.第三代:集成电路数字计算机
5.第四代:大规模集成电路数字计算机
6.并行计算:SIMD(单指令多数据流)
MIMD(多指令多数据流)
7.连网:以太网
因特网
8.云计算:硬件位于“云上”,发展为今天的数据中心
计算机软件发展史
1.第一代:机器语言-->汇编语言
2.第二代:机器语言-->汇编语言-->高级语言
3.第三代:机器语言-->汇编语言-->高级语言-->系统软件-->应用程序包
4.第四代:面向大众
5.第五代:面向所有人,实用化
第二章 二进制数值与计数系统
位置计数法:数字表示的数值要先确定进制
比10大的数字为基数的计数系统中1、2、3、4、5、6、7、8、9、A、B、C......以此类推
其他计数系统中的运算
以2的幂为基数的计数系统:把每个数位都替换成这个数位的二进制表示,就可以得到其所对应的二进制数。
将十进制数转换成其他数制的数
While(商不是0)
用新基数除这个十进制数
把余数作为答案左边的下一个数字
用商代替这个十进制数
二进制数值与计算机:每个存储单元称为一个二进制数字,或简称为位。8位一字节。
第三章 数据表示法
数据与计算机
模拟数据与数字数据
模拟数据:用连续形式表示的信息。
数字数据:用离散形式表示的信息。
数字化:把信息分割成离散的片段。
二进制表示法
数字数据表示法
负数的表示法
中学学习时使用的为符号数值表示法
十进制补码:负数i用10的k次幂(k为要表示成的数的数字位数)减去i表示。
二进制补码:十进制数表示为二进制后取反加一。其中最左边为符号位,负数最左边第一位总是1。
数字溢出:给结果预留的位数存不下计算出的值的情况。
实数的表示法:
浮点表示法:标明了符号,尾数和指数的实数表示法。
科学计数法:另一种浮点表示法
文本表示法
字符集:字符和表示它们的代码的清单。
ASCII字符集(包含英语)
Unicode字符集:更大,包含了ASCII
文本压缩
关键字编码:用单个字符代替常用的单词。
行程长度编码:把一系列重复出现的字符替换为它们重复出现的次数。
赫夫曼编码:用变长的二进制串表示字符,使常用的字符具有较短的编码。
音频数据表示法
图像与图形表示法
颜色表示法:颜色通常用RGB值表示,三个数字表示三原色所占份额,份额用0到255的数字表示。
数字化图像与图形:
数字化一幅图像是把它表示为一个独立的点集,这些点称为像素。
表示一幅图像使用的像素个数称为分辨率。
逐个像素存储图像信息的方法称为光栅图形格式。
图形的矢量表示法:
视频表示法
视频编译码器:
时间压缩:根据连续帧之间的差别压缩电影的技术。
空间压缩:基于静态图像的压缩计数的电影压缩技术。
第四章 门和电路
计算机和电学
门:对电信号执行基本运算的设备,接受一个或多个输入信号,生成一个输出信号。
电路:互相关联的门的组合,用于实现特定的逻辑函数。
布尔代数:表示二值逻辑函数的数学表示法。
逻辑框图:电路的图形化表示,每种类型的门有自己专用的符号。
真值表:列出了所有可能的输入值和相关的输出值的表。
门
非门
与门
或门
异或门
与非门和或非门
门的构造
晶体管:作为导线或电阻器的设备,由输入信号的电平决定它的作用。
半导体:既不是良导体也不是绝缘体的材料,如硅。
电路
组合电路
电路等价:对应每个输入值组合,两个电路都生成完全相同的输出。
加法器
多路复用器:使用一些输入控制信号决定用哪条输入数据线发送输出信号的电路。
存储器电路
集成电路:又称芯片,是嵌入了多个门的硅片。
CPU芯片
第五章 计算部件
独立的计算机部件
存储程序的概念
冯.诺伊曼体系结构
内存
算数/逻辑单元
输入/输出单元
控制单元
读取--执行周期
RAM和ROM RAM可更改ROM不可更改
低级程序设计语言与伪代码
计算机操作
机器语言:由计算机直接使用的二进制编码指令构成的语言。
虚拟机:为了模拟真实机器的重要特征而设计的假想机器。
程序实例
汇编语言
汇编语言:一种低级语言,用助记码表示特定计算机的机器语言指令。
汇编器:把汇编语言程序翻译成机器代码的程序。
汇编器指令:翻译程序使用的指令。
注释:为程序读者提供的解释性文字。
表达算法
算法:解决方案的计划或概要,或解决问题的逻辑步骤顺序。
伪代码:一种表达算法的语言。
伪代码功能
变量
赋值
输入/输出
选择
重复
执行伪代码算法
写伪代码算法
桌面检查:在纸上走查整个设计。
翻译伪代码算法
测试
问题求解与算法设计
如何解决问题
理解问题
设计方案
执行方案
回顾
有简单变量的算法
带有选择的算法
带有循环的算法
数组
记录
抽象步骤:细节仍未明确的算法步骤。
具体步骤:细节完全明确的算法步骤。
复杂变量
搜索算法
顺序搜索
有序数组中的顺序搜索
二分检索:在有序列表中查找项目的操作,通过比较操作排除大部分检索范围。
排序
选择排序
冒泡排序
插入排序
递归(算法调用它本身的能力)算法
子程序语言
递归阶乘
递归二分检索
快速排序
重要思想
信息隐藏:隐藏模块的细节以控制对这些细节的访问的做法。
抽象:复杂系统的一种模型,只包括对观察者来说必需的细节。
事物命名
测试
抽象数据类型与子程序
抽象数据类型:属性(数据和操作)明确与特定实现分离的容器。
数据结构:一种抽象数据类型中的复合数据域的实现。
容器:存放和操作其他对象的对象。
栈
队列
列表
链式结构:一个将数据项和找到下一项位置的信息保存到同一容器的实现方法。
树
二叉树:具有唯一起始节点(根节点)的抽象复合结构,其中每个节点可以有两个子女节点,根节点和每个节点之间都有且只有一条路径。
根:树中唯一的开始节点。
根节点:没有子女的树节点。
二叉检索树
图
图:由一组节点和一组把节点相互连接起来的边构成的数据结构。
顶点:图中的节点。
边(弧):表示图中两个节点的连接的对顶点。
无向图:其中的边没有方向的图。
有向图:其中的边是从一个顶点指向另一个顶点(或同一个顶点)的图。
邻顶点:通过边连接起来的两个顶点。
路径:连接图中两个顶点的一系列顶点。
创建图
图算法
子程序
参数传递
参数列表:程序中两部分之间的通信机制。
形参:列在子程序名后的括号中的标识符。
实参:子程序调用中列在括号中的标识符。
值参与引用参数
值参:由调用单元传入实参的副本(写在留言板上)的形参。
引用参数:由调用单元传入实参的地址(写在留言板上)的形参。
面向对象设计与高级程序设计语言
面向对象方法
面向对象
设计方法
头脑风暴
过滤
场景
责任算法
总结
翻译过程
编译器:把高级语言编写的程序翻译成机器码的程序。
解释器:输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序。
字节码:编译Java源代码使用的标准机器语言。
程序设计语言范型
命令式范型
面向过程的范型
面向对象的范型
声明式范型
函数式模型
逻辑编程
高级程序设计语言的功能性
布尔表达式:一个标识符序列,标识符之间由相容的运算分隔符分隔,求得的值是true或false。