计算机思维的逻辑基础:

计算机思维是指人们操作计算机时,计算机行使特定功能的运作方式。

逻辑基础则是指支撑事物运作的基本法则。

因而,计算机思维的逻辑基础可以理解为,计算机在行使特定功能时,其运作方式背后的法则——即“分离”。

不同于人脑的思维方式,计算机思维本身是不具有体现的。但是其行使法则之中与人脑最为不同的一点在于思想与方法、思想与对象、对象与方法的分离,这也是计算机能达到高效与高性能运算的逻辑基础。

接下来,举一例对上述描述中的“分离”进行详细阐述。

所谓思想与方法的分离,是指在人脑中,思想与方法的实现总是同时,换言之,即使大脑总是有意识地将其分离开来思考以达到更高地效率,但效果总不遂人意。但是通过硬件上地将方法的实践转移至计算机中,而将思考和总结方法的过程在人脑中实现(暂不考虑人工智能的实现)。这样通过将思想与方法分离的方式无疑可以极大提升执行效率,而这也是计算机思维的背后原理,即逻辑基础。

为什么说计算思维的核心是“构造”,而构造的任务是抽象与自动化:

首先解释计算思维,CMU周以真教授在《Computational Thinking》中说明“计算思维是运用计算机科学的基本理念,进行问题求解,系统设计以及理解人类行为。”这句话也说明了计算思维是一种思考方式,而并非是具体的知识。但计算机本身是无法思考的,故此处的探讨对象已经十分明显了,即计算思维是对人类提出的要求——通过人类将抽象而且复杂的问题,进行转化,从而转变成为一种可执行的重复性操作,即计算,并将此交给计算机去实现。而这中间的转变部分中,最为重要的部分便需要人类拥有计算思维参与,设计出尽可能更优质的算法,从而使计算机的执行更为高效。因此,计算思维的核心是“构造”,而以上这整个完整的过程,便被称为“人机转化”。

而计算思维的另一个特征是基于三个阶段的“3A”迭代过程:

  1. 1.   抽象(Abstraction):问题表示;
  2. 2.   自动化(Automation):解决方案表达;
  3. 3.   分析(Analyses):解决方案执行和评估。

接下来将对前两个方面进行一一解释与印证。

  1. 1.  抽象

抽象是指将现实生活中复杂难解的应用性问题,抽象成为可计算的问题。比如,让你统计一本牛津现代英汉双解词典中有多少个单词,则此时不考虑单词的字体,字号大小,出现的位置,仅仅提取了该问题中与单词数量相关的元素进行考虑,这便是一种意义上的抽象。而整体意义上的抽象,则指的是将现实生活的应用复杂问题中,提取出相应的空间关系,数量关系,逻辑关系等关系,并将其转换为数据结构,空间结构以及控制指示等具体结构与指令。抽象以问题重述的形式,将原问题转化成可解的问题,即为问题表示。

  1. 2.  自动化

在某种程度上,自动化是计算机的工作。而将此工作的执行的必要条件则是需要将自然语言转换成为计算机可执行的语言。因此,编程在某种程度上成为了自动化的替代。而自动化的核心是高效,假使计算机运行中仍然经常需要人工的控制与协调,那么自动化的程度便不够高,则需要调整提升自动化的效率。因此编程语言的选择与编程范式的形成便十分重要。则简而言之,问题转换后,需要执行与求解,因此需要将自然语言的描述性问题转换为计算机语言,可以使问题充分得到解决,此为自动化的过程。

综上,则计算思维的任务便为抽象、自动化与分析。

计算机思维的逻辑基础是什么? & 计算思维的更多相关文章

  1. 计算思维(Computational Thinking)在少儿编程中的体现

    本文主要针对少儿编程从业人员及正在学习编程的学生家长 大家好,我是C大叔,国内早期的少儿编程从业人员.一直以来都是在做scratch,JavaScript,python以及信息学奥赛C++的讲师,教研 ...

  2. 计算思维(美国CMU周以真教授)

    博主注:GIScience会议是国际上最为著名的地理信息系统领域的国际会议,自2000年起,每两年举办一次,GIScience 2008会议邀请了美国卡内基-梅隆大学(CMU)计算机系华裔教授周以真博 ...

  3. Python基础与科学计算常用方法

    Python基础与科学计算常用方法 本文使用的是Jupyter Notebook,Python3.你可以将代码直接复制到Jupyter Notebook中运行,以便更好的学习. 导入所需要的头文件 i ...

  4. python编程基础--计算机原理之硬件基础

    一.寄存器:寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果. 1.寄存器的特性: 1)寄存器位于CPU内部,数量很少,仅十四个: 2)寄存器所能存储的数据不一定 ...

  5. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十八║Vue基础: 指令(下)+计算属性+watch

    回顾 今天来晚辣,给公司做了一个小项目,一个瀑布流+动态视频控制的DEMO,有需要的可以联系我,公司的项目就不对外展示了(一个后端程序员真的要干前端了哈哈哈). 书接上文,昨天正式的开始了Vue的代码 ...

  6. 思维分析逻辑 1 DAY

    数据分析原则:坚决不做提数机器. 数据分析工作模块 日报 了解业务现状 提升数据敏感性 数据波动解释 周报 了解数据的短期趋势 版本迭代分析 为结论型报告背书 月报 梳理业务的流程 为决策提供部分建议 ...

  7. Vue基础进阶 之 计算属性的使用

    计算属性的基本使用 初始小示例: 代码: window.onload = () =>{ new Vue({ el:'div', data:{ msg:'' } }) } </script& ...

  8. 从头学起Verilog(二):时序逻辑基础与回顾

    引言 时序逻辑对于数字电路设计十分重要,本文针对数字电路中的时序逻辑部分进行了系统的回顾. 存储器件 由于时序逻辑的输出不但受当前输入影响,还受之前的输入的影响,所以需要有存储单元对以前的输入进行存储 ...

  9. Codeforces 1220D 思维 数学 二分图基础

    原题链接 题意 我们有一个含多个正整数的集合B,然后我们将所有的整数,也就是Z集合内所有元素,都当做顶点 两个整数 \(i , j\) 能建立无向边,当且仅当 \(|i - j|\) 这个数属于B集合 ...

随机推荐

  1. rest framework-认证&权限&限制-长期维护

    ###############   自定义token认证    ############### 表 class User(models.Model): name=models.CharField(ma ...

  2. Django+Ajax+Mysql实现数据库数据的展示

    最近老师让搞一个系统,仅仅展示一下数据库的数据 在做海底捞时,是交接的师兄的项目,用的语言是java,框架是SSM(Spring.SpringMVC.MyBatis),这次我准备用Python写,前端 ...

  3. CF-595

    题目传送门 A .Yet Another Dividing into Teams sol:原先是用比较复杂的方法来解的,后来学弟看了一眼,发现不是1就是2,当出现两个人水平相差为1就分成两组,1组全是 ...

  4. 【转】Vim命令合集

    Vim命令合集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filena ...

  5. js使用心得——避免全局变量冲突的小技巧

    在写js代码的时候,经常会因为这样或者那样的原因用到全局变量,如果全局变量只在一个js里使用,那就没问题,但如果变量在不同的js文件里出现,这时隐藏的问题就会开始暴露,也许你能很快修复出现的BUG,又 ...

  6. fscanf使用心得

    好久没碰C语言了.从现在开始,要开始刷题了. (1)int fscanf( FILE* stream, const char* format, ... ); https://www.programiz ...

  7. 谷歌眼镜、亚马逊音箱,5G时代隐私或将面临更大颠覆

    别看现在的智能手机.平板电脑.可穿戴设备.智能家居等那么火爆,但离开网络它们其实什么也不是.当然,智能终端设备的迭进也是与网络制式不断向前演变相辅相成的,二者算是互相成就.不过也由此衍生出很多问题,尤 ...

  8. 浅谈URL重定向

    转载:https://blog.csdn.net/kiyoometal/article/details/90698761 重定向原理 HTTP 协议的重定向响应的状态码为 3xx .浏览器在接收到重定 ...

  9. 吴裕雄--天生自然python学习笔记:Python3 面向对象

    Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的. 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集 ...

  10. Linux上的软件ClamAV

    ClamAV是使用广泛且基于GPL License的开源代码的典型杀毒软件,它支持各种平台,如:windows.linux.Unix等操作系统,并被广泛应用于其他应用程序,如:邮件客户端服务器.HTT ...