第一章 计算思维与一种表述计算思维的框架------计算之树
前段时间,看了战德臣老师讲的计算机基础课《大学计算机–计算思维导论》(大学慕课网MOOC),学到了很多有关于计算机方面更加基础的知识,对于一个跨专业的人来说,了解了基础的知识,对后面的深入学习会更有帮助。但由于时间较长,对知识点的理解也有了遗忘,特整理一下,以备不时之需。
1.硬件 vs. 软件
2.计算思维
三大思维
- 理论思维
是以推理和演绎为特征的“逻辑思维”,用假设/预言-推理和证明等理论手段来研究社会/自然现象以及规律 - 实验思维
是以观察和总结为特征的“实验思维”,用实验-观察-归纳等实验手段研究社会/自然现象 - 计算思维
是以设计和构造为特征的“构造思维”,用计算的手段研究社会/自然现象
计算思维的本质就是 抽象(Abstraction)
与 自动化(Automation)
,即在不同层面
进行抽象,以及将这些抽象机器化
计算思维关注的是人类思维中有关可行性、可构造性和可评价性的部分当前环境下,理论与实验手段在面临大规模数据的情况下,不可避免地要用计算手段来辅助进行。
3.计算之树–计算思维的一种多维度观察框架
3.1计算之树的树根(技术或思想)
- “0 和 和 1” 思维
0 和1 是实现任何计算的基础;社会/ 自然与计算融合的基本手段; 0 和1是连接硬件与软件的纽带;是连接硬件与软件的纽带;0/1 是最基本的抽象与自动化机制
语义符号化
–>符号计算化
–>计算0,1化
–>0,1自动化
–>分层构造化
–>构造集成化
- “程序”的思维
复杂程序由基本动作
以及各种组合
构成,实现一个系统仅需实现这些基本动作以及实现一个控制基本动作组合以及执行次序
的机构
对基本动作的控制就是指令
,指令的各种组合以及次序就是程序
- “递归”的思维
用有限的步骤描述实现近于无限功能的方法
递归
:第n个元素的计算需要调用第n-1个元素的计算,第n-1个元素需要调用第n-2个元素的计算,由后往前
迭代
:计算第1个元素,计算第2个元素……,直到计算出第n个元素。由前往后
可以认为:递归包含了迭代,但迭代包含不了递归。
3.2计算之树的树干(计算系统的发展和进化)
-
冯·诺依曼机
以存储器
为核心,解放了运算器。同时体现了存储程序
(不仅仅是数据)和程序自动执行
的基本思维 -
个人计算环境
内存(ROM/RAM
)、外存(硬盘/光盘……)构成了存储体系
,存储体系环境下,程序如何在操作系统
协助下被硬件执行的基本思维 -
并行与分布计算环境
多核(CPU),多磁盘阵列的复杂服务器环境,程序如何在操作系统协助下被硬件执行的基本思维 -
云计算环境
云计算环境通常由高性能计算节点(多CPU)和大容量存储节点构成,为充分利用计算节点和存储节点,按需动态配置虚拟机
,虚拟磁盘
。云计算体现的事按需索取
、按需提供
、按需使用
的一种计算机资源虚拟化服务化
的一种基本思维。
3.3计算之树的双色枝杈(计算手段)
-
算法
计算机系统之灵魂,有穷规则
之集合,用规则规定了解决某一个特定类型问题的运算序列。 -
系统
系统(软硬件系统、网络系统、信息系统)是计算与社会/自然环境融合的统一体
,对社会/自然问题提供了泛在的、透明的、优化的综合解决方案。
3.4计算之树的树枝(计算学科的分支研究方向)
- 社会/自然的计算化
将社会/自然现象进行抽象
,表达成可以计算的对象
,构造对这种对象进行计算的算法和系统
,实现社会/自然的计算,进而通过这种计算发现社会/自然的演化规律 - 计算/求解的自然化
用社会/自然所接受的形式或者说与社会/自然相一致的形式来展示计算以及求解过得过程结果
。如将求解的结果以听觉视觉(多媒体)触觉(虚拟现实)
的形式展示。
不同抽象层面的计算系统
的基本思维,其根本是抽象
和自动化
- 机器层面 —协议(抽象)和编码器/解码器/转换器等(自动化),解决机器与机器之间的交互问题
- 人-机层面 —语言 (语言)和编译器/执行器(自动化),解决人与机器之间的交互问题
- 业务层面 —模型(抽象)和执行引擎(自动化),解决业务系统与计算系统之间的交互问题
4.计算机科学与计算科学
4.1 计算与自动计算需要解决问题
- 数据的
表示
- 数据的
存储
以及自动存储
- 计算规则的
表示
- 计算规则的执行以及
自动执行
4.2 巴贝奇的差分机
根据不同的多项式
,输入不同的初始值
去计算
4.3 微处理器(CPU)指标
- 字长
字
:是CPU内部进行数据处理、信息传输的基本单位。每个字包含的二进制位数成为字长
。字长也是CPU一次操作所能处理数据的位数。(16位、32位,64位) - 主频
CPU没秒钟所能完成的操作次数,也叫时钟频率。 - 功能/规模
早期的微处理器仅仅以定点数
运算微基础,单独开发协处理器
进行浮点数
的运算,后来将两个处理器集成微一个芯片,后来出现图形处理器GPU,多媒体处理器,多核多线程处理器 - 晶体管数量
4.5 程序的发展
一系列函数与算法
–>类,对象
–>构件,中间件
–>服务,服务总线(通信)
构件
:将若干对象相对复杂的特性封装起来,而只将其与外部交互性的特性(接口)暴露给开发者
服务
:将构件的接口重新按公共标准进行封装,可以随时接入到服务总线上。任何一个系统可以通过服务总线发现该服务,也可以在服务总线的支持下调用该服务。