计算思维(Computational Thinking)

关于“思维”, 大家想必都听说过“逻辑思维”(“逻辑”不是“罗辑”)、“批判性思维”等名词。相比较而言,“计算思维”却要陌生得多。

其实,计算思维(Computational Thinking)并不是一个新概念,至少在上个世纪五十年代就已经被明确提出来了。

不过直到2006年,这一概念才经由美国计算机科学家,卡内基-梅隆大学教授周以真引入教育领域,相对较晚。目前还不甚广为人知。

到底什么是计算思维呢?

周以真曾经将其描述为:“像计算机科学家一样思考问题”——

通过将一个个具体问题及其解决方案表达成计算机可以处理的形式,并设计计算的方式,将客观世界解释为一个复杂的信息处理过程。

整个过程,有些类似平面几何解题的“已知->求解”的过程。

通用的思维方式

计算思维并非计算机专业独有的,而是一种通用的思维方式。将上一段的描述更抽象一层,其实计算思维就是:

  • 把一个大问题分解为一个个子问题,再进一步分为一个个子子问题……直到无需分解;

  • 分别去执行一个个最小规模的子孙问题;

  • 按照问题划分的结构将各个小问题的结果组合成整个问题的结果。

也就是自顶向下进行结构化设计,遇事“分而治之,各个击破”。

这种解决问题的方法,是各行各业都需要的。

准备一桌宴席该怎么做?先确定一共有几个菜;再购买原料,各个烹调,装盘上桌——这是分而治之的过程。

创作一个漫画故事该怎么做?先确定故事背景、人物设置;构思主题、情节,绘制分镜头脚本;再将每个镜头的草图通过精描、上色等步骤绘制成成品图——这也是分而治之,各个击破。

举办一场学术会议该怎么办?先确定主题、主讲人、参会群体、场地;再分头准备:邀请主讲人,确定演讲题目,制定日程;租用/借用场地,协调交通,布置会场;招募参会者,注册、缴费,安排各项活动——多管齐下,却也是各个击破。

开办一家餐馆该怎么做?……

拍摄一部电影该怎么做?……

研发一款电动汽车该怎么做?……

建设一个高新科技开发区该怎么做?……

……

世界上的问题有大有小,所需要的资源有多有少,但抽象到最高层面的方法论却是一致的。

强调可行与实践

和哲学式的探究与纯逻辑的符号推导不同,计算思维强调实践性——解决方案不是理论正确就好了,要在实际中可行才可以。

这一特点是由这一思维的诞生背景所决定的——当计算机科学家处理问题时,除了要知道如何将一个问题抽象为计算机能够理解的可计算模型,还要能够将计算收敛到有限空间中得到结果。

如果算法的时空复杂度过大,以当前的算力在有效求解的时间内无法得出结果,那么再完美的理论算法也无法在现实中奏效。

计算思维能够让我们明白正确性和可行性的关系——知道什么叫巧妇难为无米之炊,明白“实验室结果”和“日常使用效果”的必然差距。

在日常生活中解决问题时,某个解决方案是否可行,甚至于比它是否在理论上存在更加重要。

毕竟,无解只是影响到当前问题,而一旦动用大量资源去运行某个理论上存在却实际不可行的“解法”,不但无法解决当前问题,还有可能影响体系中原本可以正常运行的其他部分,导致大量衍生问题。

培养计算思维

计算思维作为一种思维方式,不是抽象概念,而是人们通过长期大量的实践经验——尤其是计算机科学发展以来的计算实践——积累、总结出来的。

因此,单靠理论学习是无法掌握计算思维的。必须经由大量的实践。毕竟,实践是人类对客观世界的认知及理论的来源,也是检验理论的有效标准。

已经工作的成年人还可以通过解决自己每天面对的问题来获取实践经验,学生(包括大众小学)却并不享有这样真实的历练环境。

在这种情况下,对于青少年及大学生而言,编程实践就成了最佳的习得计算思维的方式。

编程:从技能练习到思维训练

作者之前写过几篇关于少儿编程的文章:

《"儿童编程"到底能教会孩子什么?》

《不要误会了"学编程"》

《教了一年少儿编程,说说感想和体验》

写这几篇文章的出发点,主要还是从编程技能正在从专业技能走向通用技能的角度来解读编程教育的跨专业扩展和低龄化延伸。

不久前,作者阅读了CCF(中国计算机学会)杰出会员,北京航空航天大学计算机系尹宝林教授发表在《中国计算机学会通讯》2019年10月刊上的《编程实践是培养计算思维的必由之路》一文。

读罢,不觉有醍醐灌顶之感——编程实践不仅仅是简单的技能培训,而是计算思维的培养——也因此对推广少儿编程这件事有了一个新的认识!

师恩难忘

顺便说一下,作者是本世纪初期从北京航空航天大学计算机系(六系)毕业的,曾经做过尹宝林教授的学生。

在那个高校生源大量扩招,教学经费又相当紧张的时期,教学质量曾经一度再是众多学生包括某些施教者的首要追求目标。

在那样的大环境之下,北航六系的老师们仍然不忘教育者的初心,以一己之力维护着教学的学术性和严肃性。在六系众多以教学严谨、严格著称的老师中,尹宝林老师是最突出的教师之一。

当时许多学生对于如此优秀的教学资源却并不领情,给几位最严格的老师起了个“四大名捕”的绰号,暗指他们学科结业考试太难,经常“抓人”(判不及格)。尹老师就是这“四大名捕”之首。

时过境迁,自己职场沉浮多年后,再回想起曾经的时光,才明白老师们的一片苦心。

尹宝林老师在CNCC2019“编程普及教育与计算思维培养”NOI论坛发言

前些时候得知,原来尹老师多年前就已经将主要精力投入到了青少年编程教育上,现在是中国信息学奥林匹克(NOI)国家队副领队。

之后,看到了尹老师的文章。文中列举了对于计算思维的不同理解和关于培养计算思维的不同观点,最终尹老师确定地给出自己通过多年实践后获得的第一手经验:

“一个听过枪响的士兵和没有听过枪响的士兵是完全不一样的。”今天,我们也可以说,信息素质的培养上,一个写过程序的学生和没有写过程序的学生是完全不一样的。

……

实践证明,这些写过程序的学生,特别是写过较多程序的学生,不仅在大学的专业学习中,而且在接受新概念和抽象理论时,在灵活运用所学知识时,比没有写过程序的同学有着明显的优势,在非信息类课程的学习中也同样表现出色,充分体现出编程实践对思想方法和思维定式的培养作用。

尹宝林,公众号:中国计算机学会CCCF专栏 | 编程实践是培养计算思维的必由之路

编程,不仅仅是一种技能,更是一种可以获得计算思维的高效训练方式!相信编程实践在未来的基础教育、高等教育中所占有的地位会越来越重要。

“众智汇”愿景

尽职尽才,允公允能 —— 本社群不定期举行线上分享,组织群友分享知识、经验、资源,以达到让我们每个人的职业生涯得到最大程度的发展的目的

欢迎扫面下列二维码关注“悦思悦读”公众微信号

计算思维及其培养方式相关推荐

  1. 计算机网络对我们思维的影响,计算机网络教学中学生计算思维的培养

    一.引言 近年来,美国卡内基·梅隆大学周以真教授对计算思维的系统阐述,引起了国内计算机学者的关注,在计算机基础课中进行计算思维培养的教学改革也迅速开展起来.计算机网络是高校的一门重要课程,也是计算机应 ...

  2. 大一计算机思维知识点,大学计算机基础教学中计算思维的培养途径

    摘要:从几个侧面思考和探究在大学计算机基础教学中培养学生计算思维的途径,提出通过整合教学内容,将不同的知识点归纳为不同的知识单元:通过实验教学,提升学生运用计算思维处理问题的能力. 关键词:计算思维: ...

  3. 计算机基础项目任务教学重构,面向计算思维培养的中职课程项目式重构研究

    摘要: 21世纪以来,随着信息技术的飞速发展,有专家指出,计算思维应该是继实验思维和理论思维之后人们应该具备的第三种思维;我国2017年发布的高中信息技术课程标准中明确提出了计算思维的概念,并将其作为 ...

  4. python解题教学设计的理解_面向计算思维培养的初中 Python 项目式学习教学设计流程构建...

    2006 年, 美国卡内基梅隆大学的周以真教授提出了计算思维的概念.计算思维是利用计算机科学的基本理念解决问题.设计系统和理解人类行为的一种方法,并指出计算思维的本质是抽象(Abstraction)和 ...

  5. 计算机思维游戏推理论文,基于严肃游戏的计算思维培养

    摘要:在分析严肃游戏这一新兴的教学方式的基础上,提出基于严肃游戏培养计算思维能力的观点,以案例的形式讨论严肃游戏与计算思维能力培养的几种结合方式.介绍以各门专业知识为目的跨学科的严肃游戏文案设计训练. ...

  6. 计算机基础技能培养,计算机应用基础教学中计算思维与应用技能的双重培养

    [摘要]分析非计算机专业计算机基础教育改革必要性,探讨应用技能与计算思维培养相结合的发展思路.建议加强学生计算思维的培养,提高学生的逻辑思维能力,同时建立基于知识点聚类的网络课程,使得课堂与网络教学之 ...

  7. 计算思维应用于计算机学科,【计算机教学论文】计算机教学中的计算思维培养(共2667字)...

    摘要:在中职院校内,Excel课程是一门计算机基础学科.在其教学过程中,我们应从问题出发,提出自身的解决策略,来培养学生的计算思维. 关键词:计算思维:体系:思维内涵:职业教育 一.中职院校Excel ...

  8. c语言程序设计臧,C语言程序设计教学中计算思维培养.pdf

    Advances in Education 教育进展, 2014, 4, 36-41 Published Online May 2014 in Hans. /journal/ae /10.12677/ ...

  9. python 数据分析课程改革网_计算思维培养视域下《Python程序设计》课程的教学改革实践...

    龙源期刊网 http://www.qikan.com.cn 计算思维培养视域下< Python 程序设计> 课程的教学改革实践 作者:王亚萍 来源:<电脑知识与技术> 2018 ...

最新文章

  1. java中实现选择文件_Java 实现文件选择对话框及功能
  2. 纪念第一次青海湖之行泡汤
  3. sql server 2008安装错误(无法处理异常)
  4. 三朵云 华为_云时代和5G将重构网络结构
  5. 今天学习啦所谓的高级语言啦
  6. cpp中vector动态数组(一种container)的简单用法
  7. openerp mysql_Odoo字段(Fields)总结-至2020全
  8. 在shop++二次开发中金额数据类型BigDecimal转换,注意细节。
  9. 二维数组传入函数_C++二维动态数组memset()函数初始化
  10. 蓝桥杯 ALGO-107 算法训练 9-7链表数据求和操作
  11. python模块:数字处理
  12. vmware虚拟机连接网络
  13. Visual Paradigm 顾客旅程地图 (Customer Journey Map)
  14. EXCEL( 获得指定列的最后一个非空单元格)
  15. 51单片机99秒倒计时C语言程序,单片机 60秒倒计时
  16. Qt版权符号显示问题
  17. python获取手机号码归属地_基于Python的免费手机号码归属地查询
  18. xxl-job 带参数执行和高可用部署
  19. 医疗险十大常见误区,你中了几个?
  20. 【水晶报表】中如何打印条形码?

热门文章

  1. Phobos Runtime Library
  2. C++我记得应该是当初笔试面试常考的
  3. cookie跨域,实现单点登录
  4. 炫酷可视化教程 Cufflinks 来啦!!!
  5. android hwcomposer
  6. 陈皓:什么是工程师文化?
  7. 虚拟机VMWare Workstation最新官方原版 有效VMware7.1.4序列号 密钥 VMware7.1.4破解版破解方法 VMware7.1
  8. Android HorizontalScrollView 内容宽度
  9. pfx文件解析私钥和公钥
  10. 2022年vue项目使用go.js 2.1去水印