第二章:计算思维——知识点整理

  • 第二章:计算思维
    • 知识梳理
    • 高频考点
    • 2.1 计算思维的概念与应用
      • 2.1.1 计算思维的概念
    • 2.1.2 计算思维的特征
      • 2.1.3 计算思维的内涵
      • 2.1.4 计算思维的应用
    • 2.2 问题求解
      • 2.2.1 计算机求解问题的基本方法
      • 2.2.2 计算思维解决计算问题的方法
    • 2.3 算法
      • 2.3.1 算法基础知识 ⭐️⭐️
      • 2.3.2 算法的表示方法 ⭐️⭐️
      • 2.3.3 典型问题求解策略
      • 2.3.4 算法的复杂度分析
    • 2.4 程序设计基础
      • 2.4.1 程序设计语言 ⭐️⭐️
      • 2.4.2 结构化程序设计方法
      • 2.4.3 面向对象程序设计方法 ⭐️⭐️⭐️
  • 同步特训知识点

第二章:计算思维

知识梳理

高频考点

高频考点 重要程度
计算思维 ⭐️⭐️
算法的特性 ⭐️⭐️⭐️
程序的基本结构 ⭐️⭐️⭐️⭐️
程序设计方法 ⭐️⭐️
时间复杂度空间、空间复杂度 ⭐️⭐️⭐️
机器语言、汇编语言、高级语言 ⭐️⭐️⭐️⭐️
面向对象程序设计语言 ⭐️⭐️

2.1 计算思维的概念与应用

2.1.1 计算思维的概念

1、 科学研究的三大方法是理论、实验和计算。 对应的三大科学思维分别是理论思维、实验思维和计算思维。

2、 理论思维又称推理思维,以数学学科为代表。 实验思维以物理学科为代表。 计算思维以计算机学科为代表。

2.1.2 计算思维的特征

①: 计算思维是人类求解问题的一条途径,是属于人的思维方式,不是计算机的思维方式。
②: 计算思维的过程可以由人执行,也可以由计算机执行。
③: 计算思维是思想,不是人造物。
④: 计算思维是概念化,不是程序化。

2.1.3 计算思维的内涵

1、 计算思维的基本问题:

①:计算思维的基本问题包括可计算性和计算复杂性

②:“一个问题是可以计算的” 是指可以使用计算机在有限步骤内解决。 可计算性的另一个定义就是丘奇——图灵论题:一切直觉上可计算的函数都可用图灵机计算,反之亦然。也就是说图灵机可计算的就是可计算的。

③: 不是所有的问题都是可以计算的,比如图灵机的停机问题、哥德巴赫猜想、“为我烹饪一个汉堡”等,都是不可计算的。

④: 图灵机是一种抽象计算模型,并没有真正的生产出来。

⑤: 计算复杂性就是用计算机求解问题的难易程度,其度量标准有两个:时间复杂性和空间复杂性。

2、 计算思维的基本方法:

①: 计算思维方法是计算思维的核心。

2.1.4 计算思维的应用

1、计算思维主要用在的学科是:计算物理学、计算化学、计算生物学、计算经济学。

2.2 问题求解

2.2.1 计算机求解问题的基本方法

①:分析问题
②:确定数学模型
③:算法设计
④:程序编写、编辑、编译和连接
⑤:运行和测试

确定数学模型就是把实际问题直接或间接转化为数学问题。建模是计算机解题中的难点,也是计算机解题成败的关键。

算法是求解问题的方法和步骤,学习程序设计最重要的是学习算法思想。

计算机是不能直接执行源程序的,在编译方式下必须通过编译程序将源程序翻译成目标程序。生成的目标程序还不能被执行,需要生成可执行文件才能被执行。

测试的目的是找出程序中的错误。 测试是以程序通过编译,没有语法和连接上的错误为前提的。

2.2.2 计算思维解决计算问题的方法

1、计算思维的本质是抽象和自动化(编写程序)

2、 自动化就是机械的一步一步自动执行,其基础和前提是抽象。

3、 在计算机科学中,抽象是简化复杂的现实问题的最佳途径,抽象的具体形式是多种多样的,但是离不开两个要素即:形式化和数学建模。

4、 数学建模有龙卷风模型、潮汐模型等。

5、 抽象以后就是自动化,抽象是自动化的前提和基础。 计算机通过程序实现自动化,而程序的核心是算法。 因此,自动化分为两步:设计算法和编写程序。 设计算法又包括自然语言描述算法和伪代码描述算法等。

6、 计算思维的标志是有限性、确定性和机械性。

7、 当面对复杂的问题时,求解的形式极其复杂,但是抽象和自动化是不会变的。

2.3 算法

2.3.1 算法基础知识 ⭐️⭐️

1、 算法就是解决问题的方法和步骤。

2、算法的特性:
①:输入: 算法中可以有0个或多个输入。
②:输出: 在算法中至少有一个或多个输出。
③:有穷性: 任意一个算法在执行有穷个计算步骤后必须终止。
④:确定性: 算法的每一个步骤都具有确定的含义不会出现二义性。
⑤:可行性: 算法的每一步都必须是可行的也就是说每一步都能够通过执行有限的次数完成。

3、 根据处理的数据是数值数据还是非数值数据,可以分为数值计算算法和非数值计算算法。 数值计算算法特点是少量的输入、输出,复杂的运算。非数值计算算法特点是大量的输入、输出,简单的算术运算和大量的逻辑运算。

2.3.2 算法的表示方法 ⭐️⭐️

1、 常用的算法的表示方法有自然语言、传统的流程图、N-S图、伪代码和计算机语言等。

2、 一般不用自然语言来描述算法,除非是很简单的问题。

3、 美国国家标准化协会(ANSI)规定了一些常用的流程图符号:

例:用流程图表示计算 5 !的算法

4、 N-S图是一种简化的流程图,去掉了流程图中的流程线,全部算法写在一个矩形框中,N-S图三种基本结构——顺序结构、选择结构、循环结构。


5、 所谓“伪代码”就是用介于自然语言和计算机语言之间的文字和符号的描述算法。伪代码写的算法是一种假代码——不能被计算机所理解,但便于转换成某种语言编写的计算机程序。

例如一种伪代码有如下简单约定:

6、 只有用计算机语言编写的程序才能被计算机执行(当然还要被编译成目标程序),因此,最终还是要将它转换成计算机语言程序。

2.3.3 典型问题求解策略

1、递归法、穷举法、回溯法、贪婪法、分治法。

2、 穷举法也称为“枚举法”,即将可能出现的每一种情况一一测试,判断是否满足条件,一般采用循环来实现。

3、 回溯法是系统地搜索问题的所有解的算法。

4、 贪婪法是一种不追求最优解,只希望得到较为满意解的方法。

5、 分治法的设计思想是:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。

2.3.4 算法的复杂度分析

1、算法的时间复杂度:

①:时间频度
一个算法中的语句执行次数称为语句频度或时间频度。

②:时间复杂度
若算法中语句执行次数为一个常数则时间复杂度为O(1)。 另外,在时间频度不相同时,时间复杂度有可能相同。随着问题规模n的不断增大,时间复杂度不断增大,算法的执行效率越低。

2、算法的空间复杂度:
空间复杂度是指算法在计算机内执行时所需存储空间的度量。

2.4 程序设计基础

著名计算机科学家沃思提出一个经典公式:程序 = 算法 + 数据结构。

2.4.1 程序设计语言 ⭐️⭐️

1、计算机语言已经发展到了第三代,第一代是机器语言,第二代是汇编语言,第三代是高级语言。

2、第一代计算机语言是机器语言,它是由0、1二进制代码组成的,是机器唯一能够直接执行的语言。

3、 第二代计算机语言是汇编语言,它采用一定的助记符来代替机器语言中的指令和数据,又称为符号语言。

4、 汇编语言也依赖于机器,不同的计算机一般有着不同的汇编语言。

5、 汇编语言编制的程序(称为源程序)必须经过汇编程序(一种语言处理程序)翻译成计算机所能识别的机器语言程序(也称为目标程序)后,才能被计算机执行。将汇编语言源程序转换为等价的目标程序的过程称为汇编。

6、 我们把机器语言和汇编语言统称为低级语言。

7、 第三代计算机语言是高级语言(C、Java、C++等),用高级语言编写的高级语言源程序也不能直接执行,需要通过高级语言翻译程序将源程序翻译成目标程序,翻译程序有两种工作方式:解释方式和编译方式,相应的翻译工具分别称为解释程序和编译程序。

解释: 解释程序对源程序是一边翻译一边执行不产生目标程序。
编译: 将高级语言所编写的源程序翻译成等价的用机器语言表示的目标程序。 大多数高级语言都采用编译方式。

8、三种计算机语言的特点对比:

语言种类 可读性 可移植性 执行速度 能否被计算机直接执行
机器语言
汇编语言 较好 较快 不能
高级语言 不能

9、常见的程序设计语言:FORTRAN语言(公式翻译机)、COBOL(通用事务处理语言)、BASIC语言(初学者的通用符号指令代码)、PASCAL语言、C语言与C++语言、Java语言、C#语言、Python语言。

2.4.2 结构化程序设计方法

1、 任何程序都基于顺序、选择、循环3种基本的控制结构。

2、 结构化编程主要包括以下两个方面:
①:在软件设计和实现过程中,提倡采用自顶向下,逐步细化的模块化程序设计原则。
②:在代码编写时,强调采用单入口、单出口的三种基本控制结构(顺序、选择、循环)。

3、 结构化程序设计方法的基本结构包括:顺序结构、分支结构和循环结构。循环结构又称重复结构,循环结构又分为:当(while)型循环结构和直到(util)型循环结构。

4、 顺序结构是算法的基本结构,任何一个算法都包含顺序结构。

5、 结构化程序的结构简单清晰,可读性好,模块化强。

6、 结构化程序设计方法虽已得到广泛使用,但仍难以适应大型软件的设计,而且程序可从重用性差。

2.4.3 面向对象程序设计方法 ⭐️⭐️⭐️

1、面向对象程序设计可以看做一种在程序中包含各种独立而又相互协调的对象的思想。

2、面向对象程序设计中的每一个对象都应该能够接收数据、处理数据并将数据传达给其它对象。

3、面向对象程序设计中的概念主要包括:对象、类、数据抽象、封装、继承、多态性、信息、事件等。

4、对象是构成系统的基本单位,可以用对象名、属性和方法来描述。

5、类是对象的抽象,而对象是该类的一个实例。

6、抽象能表示同一类事物的抽象。

7、封装

8、继承出来的派生类可以对基类的行为进行扩展、覆盖、重定义。

9、多态性是指基类中定义的属性或方法被派生类继承后,可具有不同的数据类型或表现出不同的行为,其对象对同一信息会做出不同的响应。

10、消息,对象之间的联系是通过消息来传递的。

11、事件,不同的事件往往引发对象不同的动作。用户按键、单击鼠标、打开文件、关闭文件都是计算机中的事件。

12、事件驱动,用户单击一个按钮时,可能引发一段程序的执行。当用户关闭文件时,又可能引发另外一段处理程序执行。

同步特训知识点

1、计算机算法必须具备输入、输出、可行性、确定性、有穷性等5个特征。

2、理论上说,任何程序逻辑都可以使用顺序、分支、循环三种结构表示出来。

3、在面向对象程序设计方法中,抽象是处理事物复杂性的方法,能表示同一类事物的本质。

第二章:计算思维——知识点整理相关推荐

  1. 大一计算机思维知识点,大学计算机—基于计算思维知识点详解.docx

    大学计算机基础知识点 第一章 计算思维与计算机 1.三大科学思维--理论思维(以数学为基础的理论思维).实验思维以物理为基础的实验思维.计算思维 2.计算思维是运用计算机科学的基础概念进行问题求解.系 ...

  2. 第一章 计算思维与一种表述计算思维的框架------计算之树

    第一章 计算思维与一种表述计算思维的框架------计算之树 1.硬件 vs. 软件 2.计算思维 3.计算之树--计算思维的一种多维度观察框架 3.1计算之树的树根(技术或思想) 3.2计算之树的树 ...

  3. 离散数学及其应用傅彦pdf_《离散数学及其应用》第二章 计算与探索

    C++实现: 1. 由于只用实现两个有限集的笛卡尔积,应该就是回顾概念吧. #include <iostream> #include <map> #include <se ...

  4. 【重识云原生】第二章计算第一节——计算虚拟化技术总述

    云平台计算领域知识地图: ​ 楔子:计算虚拟化技术算是云计算技术的擎天之柱,其前两代技术的演进一直引领着云计算的发展,即便到了云原生时代,其作用依然举足轻重. 一.计算虚拟化技术总述 1.1 虚拟化技 ...

  5. 「学习记录」《数值分析》第二章计算实习题(Python语言)

    在假期利用Python完成了<数值分析>第二章的计算实习题,主要实现了牛顿插值法和三次样条插值,给出了自己的实现与调用Python包的实现--现在能搜到的基本上都是MATLAB版,或者是各 ...

  6. 第二章导数与微分思维导图_02第二章导数与微分

    高等数学教案 第二章 导数与微分 高等数学课程建设组 第二章导数与微分 教学目的: 1 . 理解导数和微分的概念与微分的关系和导数的几何意义, 会求平面曲线的切线方程和 法 线方程,了解导数的物理意义 ...

  7. 第二章导数与微分思维导图_线性代数第二章 矩阵 思维导图

    这章内容复习集中在两方面:矩阵乘法:可逆矩阵及相关内容(矩阵方程和伴随矩阵). 可逆矩阵是全课程的一个关键性概念,与各章内容都有联系,应着重注意这些联系.

  8. 2013年计算机控制A卷答案,计算机控制技术第二章习题标准答案整理及详解(2013.04.26修改版SK).doc...

    第2章 习题参考答案 1.什么是接口.接口技术和过程通道? 答: 接口是计算机与外设交换信息的桥梁,包括输入接口和输出接口. 接口技术是研究计算机与外部设备之间如何减缓信息的技术. 过程通道是计算机与 ...

  9. 计算广告:第二章——计算广告基础

    一.广告有效性原理 二.互联网广告的技术特点 1.技术和计算向导 2.效果的可衡量性 3.创意和投放方式的标准化 4.媒体概念的多样化 5.数据驱动的投放决策 三.计算广告的核心问题 1.广告收入的分 ...

最新文章

  1. ORA-01994 故障一例
  2. mysql去重DISTINCT
  3. Java基础语法-方法的定义、调用以及static关键字的使用
  4. 计算机辅助制造讲义翻译,计算机辅助制造讲义-2007-2演示文稿.PPT
  5. Linux之yum软件管理
  6. WIN32汇编对话框的使用
  7. 搞学术不完全指北【包括谷歌学术镜像、论文工具、Wiki、SCI-HUB文献下载、翻译等】
  8. 看完这一篇,智能家居的坑你至少避开80%(上)
  9. SpringIOC和DI简单总结
  10. 阿里php开发规范,阿里巴巴java开发手册学习记录,php版
  11. stm32的timer-trgo + DMA + DAC 播放WAV格式音乐
  12. 透过六家年中总结,看2021协同办公市场新趋势
  13. case when 和 coalesce
  14. 单板计算机系统备份,最强单板计算机UP Board之Windows10完全版、Ubuntu、Andriod系统体验...
  15. 刚需:用户的痛点在那里?
  16. 集合的遍历之迭代器遍历
  17. 游戏引擎mota-js-v3.0 施工记录
  18. 北京大学计算机专业考研试题,2017年北京大学计算机辅助翻译考研专业课真题(回忆版)...
  19. UE4自定义点击区域的Button
  20. js php通讯录,基于aotu.js实现微信自动添加通讯录中的联系人功能

热门文章

  1. 虹科分享 | 在ntopng中使用黑名单捕获恶意软件通信
  2. 浅谈2019互联网新技术
  3. 使用中文维基百科语料库训练一个word2vec模型
  4. 中山大学曾兆阳_官居几品怎么打压势力
  5. 计算机专业的小姐姐照片,Windows居然自带这个功能,自动整理你硬盘里的小姐姐...
  6. 《高考前夕时间旅行的可行性研究报告》
  7. 看电影适合什么蓝牙耳机?四款主动降噪高品质蓝牙耳机测评
  8. HDU 1846 Brave Game 巴士博弈
  9. 靠谱的HEVC方案-软编解码器
  10. Flak 解析json数据不完整?