当前课程知识点:计算思维导论 >  第七单元 >  7.2 基于计算(机)的问题求解过程 >  Video

返回《计算思维导论》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《计算思维导论》慕课在线视频列表

Video课程教案、知识点、字幕

大家好

这一节我们介绍

基于计算机的问题求解过程

基于计算机的问题求解过程

与传统的问题求解过程相比

其思维方法有相当大的差异

并且形成了自己独特的

概念 方法 工具和环境

大致过程

可以用这么一个的图来表示

接下来

我们概要地描述

此过程的每一个环节

一 客观世界的问题

这个与传统人类求解问题一样

涉及问题的发现

和问题定义

二 问题分析

了解要求解的问题

到底是一个什么样的问题

需要达到什么样的目的

根据现有的技术和条件

比如说人员 时间

法律 经费等等

进行可行性分析

并对待求解的问题

进行抽象

获取其数学模型

三 提取数据

根据问题求解的需要

组织 提取 收集原始数据

为后续的加工 处理

提供“原材料”

四 设计

确定原始数据

进入到计算机以后

它的存储结构

也就是数据结构

并在数据结构的基础上

研究数据的处理方法和步骤

也就是算法

五 编码

就是如何把已经确定的

数据结构和算法

用某种选定的程序设计语言

表示出来

形成可供计算机编译

和执行的程序代码

六 执行

把程序代码

也称之为指令

提交给计算机自动地

机械地执行

完成对数据的处理

并得到预期想要的计算结果

这也就是问题的解

这就是基于计算机的问题求解过程

针对该过程中的几个地方

需要特别强调一下

一 数学模型

所谓数学模型

就是用数学语言和方法

对各种实际对象作出抽象或者模仿

而形成的一种数学结构

众所周知

数学是精确定量分析的重要工具

精确定量思维

是对当代科技人员共同的要求

数学模型是连接数学与实际问题的桥梁

随着科学技术

对研究对象的日益精确化

定量化和数学化

数学模型已成为处理科技领域

各种实际问题的重要工具

并在自然科学

社会科学和工程技术的

各个领域中得到广泛应用

但是构建数学模型

未必是一个简单的问题

在某些时候甚至可以说

是一个非常困难的问题

除少数情况外

如果抽象不出它的数学模型

基本上就等于宣布

无法利用计算机求解该问题

比如

尽管抽烟有害身体健康

可还是很多人喜欢抽烟

甚至包括女性

而且还抽出了一定的“水平”

比如能吐出非常漂亮的烟圈

就像这样

如果要求

利用计算机模拟吸烟者

吐出的烟圈随时间变化的情况

就不是一件简单的事情

因为解决这个问题的核心

是数学模型

烟圈吐出来后

随时间变化的数学模型

怎么抽象

至今还是一个比较困难的问题

正如周以真所指出的

计算思维是数学思维

与工程思维的互补与融合

提升数学能力显然

是计算思维的必然需求

二 算法和程序

算法就是解题过程的精确描述

它代表了对问题的解

而程序则是算法在计算机上的

特定的实现

关于算法

我们后面再做详细的介绍

三 程序设计

从数据结构 算法

到程序代码的演化

涉及到程序设计方法的选取

已有的

非常典型的两种程序设计方法论

为面向过程的结构化程序设计

和面向对象的程序设计

二者各有特点

但构造程序的思维方法

也就是问题域与解空间的映射问题

却有很大的差异

不管选择哪一种方法

最终目的都是构造出

可供计算机运行的程序代码

实际上

程序设计过程

就是人们使用各种计算机语言

将人们关心的现实世界

映射到计算机世界的过程

当然

在此过程中

不同的程序设计方法

需要不同的计算机语言的支持

例如 C语言支持

面向过程的结构化程序设计

而C++则支持面向对象程序设计

通过分析

我们可以看到

传统意义下

人类求解问题的思路和过程

与基于计算机这一现代工具

求解问题的过程的差异

这种差异

体现在以下几个方面

一 传统意义下

人类求解问题时

不一定需要数学模型

多半依靠解决同类问题的经验

一种方法行不通

就换一种方法

带有试探的色彩

而基于计算机的问题求解

基本上都要先确定数学模型

只有极个别例外

然后依据数学模型进行计算

二 传统意义下

人类求解问题时

“心”中也有算法

也就是解决问题的方法和步骤

这些“心”里面的算法

别人自然无法了解

只有“当事人”大概知道

是怎么回事

而借助于计算机技术求解问题

则需要一个语义明确

可行且有效的算法

借助于特定的算法描述手段

以书面的形式把算法描述出来

供程序设计者使用

三 人类求解问题时

善于分析 归纳 总结和推理

对大量数据的处理与计算

则非常头疼和低效

相反

借助于计算机求解问题

则能非常高效地处理大批量的数据

您只要告诉计算机“怎么算”

它的计算速度人类已经望尘莫及了

但对于分析 归纳 总结和推理

计算机要比人类“笨拙”得多

四 人类求解问题时

擅长于形象思维

灵感 顿悟与直觉有时候很管用

对数据很不敏感

长时间重复做一件事情时

很容易疲劳而出错

而借助于计算机求解问题时

擅长于抽象的逻辑思维

刻板又机械

长时间重复做一件事情

不会疲劳出错

除非硬件出故障

好 这一节就讲到这儿

谢谢大家

计算思维导论课程列表:

第一单元

-1.1 计算思维及其教育

--Video

第二单元

-2.1 计算是什么

--Video

-2.2 计算与自动计算

--Video

-2.3 计算机及其计算本质特征(I)

--Video

-2.4 计算机及计算的本质特征(II)

--Video

第三单元

-3.1 数的表示与模拟计算

--Video

-3.2 数的表示与数字计算

--Video

-3.3 二进制加法运算的机器化

--Video

-3.4 “九九归一”的加法运算

--Video

-3.5 二进制之优越性及问题与代价

--Video

第四单元

-4.1 从数学危机到图灵机

--Video

-4.2 图灵机的计算能力

--Video

-4.3 什么问题都能计算吗?

--Video

-4.4 冯•诺依曼机及其发展与演化

--Video

-4.5 从算盘到图灵机——机械计算的本质

--Video

-4.6 电子计算机——透过现象看本质

--Video

第五单元

-5.1 思维可机械计算吗(I)

--Video

-5.2 思维可机械计算吗(II)

--Video

第六单元

-6.1 量子理论

--Video

-6.2 量子计算机

--Video

第七单元

-7.1 人类求解问题之过程

--Video

-7.2 基于计算(机)的问题求解过程

--Video

-7.3 面向过程的结构化设计方法学

--Video

-7.4 面向对象之方法学

--Video

-7.5 面向对象技术

--Video

-7.6 抽象

--Video

-7.7 计算学科中的抽象

--Video

-7.8 时间与空间及其相互转换

--Video

-7.9 技术层面的其他方法学

--Video

-7.10 认知层面的其他方法学

--Video

第八单元

-8.1 算法与程序

--Video

-8.2 算法设计方法——枚举

--Video

-8.3 算法设计方法——递推

--Video

-8.4 算法设计方法——递归

--Video

-8.5 算法设计方法——分治

--Video

-8.6 算法设计方法——仿生

--Video

第九单元

-9.1 机器间的通信方式

--Video

-9.2 数据转发方法

--Video

-9.3 网络分层体系结构

--Video

-9.4 有趣的对称加密技术

--Video

-9.5 难解的非对称加密技术

--Video

-9.6 数字签名及其应用

--Video

-9.7 从自然智能到人工智能

--Video

-9.8 符号主义的基本思想

--Video

-9.9 连接主义Ⅰ

--Video

-9.10 连接主义Ⅱ

--Video

-9.11 行为主义的基本思想

--Video

-9.12 机器翻译的愿景与困难

--Video

-9.13 峰回路转的自然语言处理

--Video

-9.14 信息传输中的问题与挑战

--Video

-9.15 重复传输与冗余编码

--Video

-9.16 校验与校验和

--Video

-9.18 自纠错技术及应用

--Video

-9.19 两种简单的数据压缩方法

--Video

-9.20 哈夫曼编码

--Video

-9.21 数据压缩极限与LZ压缩方法

--Video

-9.22 大海捞针的搜索引擎

--Video

-9.23 网页排序方法(PageRank)

--Video

第十单元

-10.1 计算文化

--Video

期末考试

-期末考试--作业

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。