计算机科学、计算思维、程序设计

如题所述

第1个回答  2022-07-08

世间万物一切皆可数字化 ,可二进制数字表示,绝大部分问题都可计算。

计算机科学(Computer Science,CS)是研究 计算机系统结构 、程序系统(即 软件 )、 人工智能 以及计算本身的性质和问题的 学科 。计算机科学是一门包含各种各样与计算和 信息处理 相关主题的系统学科,从抽象的算法分析、形式化 语法 等等,到更具体的主题如编程语言、 程序设计 、软件和 硬件 等。包括4个主要领域:计算理论,算法与数据结构,编程方法与编程语言,以及计算机元素与架构。以及软件工程,人工智能,计算机网络与通信,数据库系统,并行计算,分布式计算,人机交互,机器翻译,计算机图形学,操作系统,以及数值和符号计算等一些重要领域。

计算机是一种进行算术和 逻辑运算 的机器。现代的计算机绝大部分是冯诺依曼体系结构的,其核心思想是“存储程序,程序控制”,只要指令明确,输入数据准确,启动程序后自动运行而且结果是预期的。现代计算机的一大特征就是速度飞快,每秒可达10亿个机器指令( 英特尔酷睿 i9 主频率达5GHz,中国超级计算机系统天河二号,峰值 计算速度每秒5.49 1016次、持续计算速度每秒3.39 1016次双精度 浮点运算 ),让一切皆有可能。

计算思维(Computaional Thinking, CT)是利用计算机逻辑和 计算机科学的基础概念 来进行问题求解、 系统设计的思维,是一种将计算抽象化再具体化的思维。

2.1 折解思维(Decomposing)

复杂问题也可以分解、分解, 一直分解到我们知道该如何处理的较小部分来解决 。然后在 通过解决子问题,一步步将整个问题解决掉

2.2 抽象思维和模式识别

抽象思维是指能够对问题或数据的共同属性或特征进行识别和分类,概括或抽取出特定的模式。如把实际的领域问题进行抽象并归纳到某种或某些已知的模型的 建模 (以便利用模型求解)。 框架 是对某种应用程序共性结构特征的抽象并基于某种通用基本(程序)结构形态而具体实现的准程序,它将某种应用程序中“一成不变”的东西(尤其是各个基本组成部分之间的交互关系)固定下来并自动提供。 数据类型 是对相似数据共性特征的一种抽象,通过数据类型概念可以将杂乱无章数据进行分类,实现数据的条理化和逻辑化,以便对数据进行处理。

模式识别要求我们 观察数据,从中找出相同的模式、趋势和规律

2.3 算法思想

算法是 解决问题或执行任务时所需的一系列步骤

要开发算法,首先要使用分解的方法把问题分解成小部分,然后找到相同的信息或规律,过滤掉不重要的细节,抓住主要信息,最后 用一个个有序的步骤,区域性解决问题 。 算法中的每一步都必须精确明确,无歧义无错误 。

尽管领域问题是多样的、千变万化的,然而,问题的解决方法(或获得解决方法的思维)却是有规律的,尤其是增加了计算机这个特定环境的约束。这些解决问题的固定套路可以称之为算法思想。

2.3.1 分治思想

面对现实世界和问题的复杂性,需要有大事化小和分治的思想。如算法的分治法、贪婪法、动态规划法、递归都是或都有分治思想的体现。在计算机科学中最重要的体现就是计算机系统的分层抽象,模块化分解。

分治思想在各类算法中无处不在,例如归并排序,当一组数据分解到只有一个数据时,肯定是有序的,然后再两两归并,形成整体有序(递归分解,递归合并)。例如快速排序,也是递归地让数据的前后两段相对有序。二分查找同样是分治法的应用。将线性数组组织成有左右有序的二叉搜索树或上下有序的堆的形式而实现二分搜索也是分治思想的应用。递归思维通常也是将问题分解到规模为一可以直接求解时,然后再逐步回退求解出最终解或整体解。

2.3.2 解空间枚举或遍历思想

2.3.3 迭代思维,如计算中的表达式可以利用旧值不断迭代新值,计算机科学中程序的迭代开发和版本的不断迭代。

2.3.4 递推思维,问题求解除了顺推,有时逆推可能来得简单。

程序设计是针对特定问题或任务,以计算思维为指导,以程序设计语言 为工具,设计数据结构和算法,并以程序设计语言描述出来。

程序设计过程通常包括问题、任务或需求分析、数据结构和算法设计、编写程序、测试、排错,优化迭代等不同阶段。

计算机科学 ------ 计算思维 ------ 程序设计

( ------ 理论 ---------------- 实用 ------ )

What to do?

How to do with computer?

How to do using some general method or algorithm.

How to do coding with special programming language.

-End-