计算思维(Computational Thinking)在少儿编程中的体现
本文主要针对少儿编程从业人员及正在学习编程的学生家长
大家好,我是C大叔,国内早期的少儿编程从业人员。一直以来都是在做scratch,JavaScript,python以及信息学奥赛C++的讲师,教研等工作,本文从少儿编程出发跟大家谈谈计算思维(Computational Thinking)。
计算思维(Computational Thinking),简称CT,主要培养学生的技能,态度以及途径。技能包括分解,模式识别,抽象,算法设计,评估等。态度包括自信,沟通,灵活等。途径包括修补,创造,调试,坚持不懈,合作等。
为什么计算思维对今天的学生来说非常重要,主要从下面几个方面分析:
- 计算思维可以用于解决任何领域或者学科的问题。
- 提升信息技术素养(将学生从技术的使用者变为技术的创造者)。
- 更好地理解计算。
- 为批判性地思考问题解决者提供一个跨所有职业领域的框架。
- 将创造力和效率融入解决问题的过程中。
- 发展工作技能(导致收入增加)。
需要告知大家的是我们从少儿编程中得以锻炼计算思维的各方面,但不仅限于少儿编程,也可以运用到生活各个方面,所以这里需要澄清的是:
- 计算思维可以包含计算机,但是不一定非要包含计算机。
- 是人的思维,而不是计算机的思维。
- CT for all,而不仅仅是计算机科学家、程序员。
- 应用于所有学科,而不是仅仅应用于计算机科学
现在我们简单地去解释计算思维的技能方面以及其在少儿编程领域的运用,从而通过少儿编程来培养学生计算思维方面的能力,希望这对于少儿编程讲师,少儿编程教研,甚至于其他学科的讲师教研们都有一定的用处:
分解:我们来理解下分解是什么意思。百度百科是这么解释的:分解,数学名词,即和差化积,其最后结果要分解到不能再分为止。对于一个大的问题,如果你解决不了,没关系,自己思考,这个大问题一定有它的子问题是你可以解决的。
举个简单的例子,对于一块大蛋糕,如果不切开,吃起来是非常困难的,所以你会想到把它分成一小块一小块来吃,一小块也不可能一次吃完,还要一口一口吃。
这就相当于,遇到一个复杂困难的问题,解决不了怎么办,分解它,然后再去解决分解的问题。就比如我们通过编程要去完成一个《合金弹头》的游戏制作,但面对这个庞然大物,我们无从下手,这时,我们就可以想到对这个游戏进行分解,怎么分解呢?
通过观察,我们会发现这个游戏有场景图(地图),主人公(人物),有敌方(炸弹,敌人,敌机),有子弹(包含主人公子弹及敌方子弹),分解完成之后才去解决问题,就会简单很多。注意分解不是步骤,不是解决问题的顺序。
模式识别:什么是模式?问题内或者子问题之间的模式、规律或者趋势。简单地来说,就是找规律。就比如天气预报,为何能够预报天气状况呢,便是通过以往的经验对未来进行预测。再比如一个不好好学习成绩很差的孩子,但是突然有一天开始奋发图强,成绩每次都会进步一点,我们可能会预测出下一次这个孩子还能再进一步。
当然这个归纳出来的模式也可能会出错,就看我们怎么去找这个模式了。比如我们知道一个苹果的价格是3元,3个苹果就是3*3等于9元,即单价乘上数量,那现在知道了一个梨子是4元,5个梨子多少钱?我们已经知道计算苹果总价的模式了,即单价乘上数量,我们通过归纳的这个模式来解决梨子价钱的问题就非常合适,4*5等于20元,也是梨子的单价乘上梨子的数量。
在少儿编程中培养这一技能就更显而易见了,很多编程问题都有一定模式可寻,比如我们要将《合金弹头》的地图,角色及敌机画在屏幕上,画画的方式基本一致,不一样的是图片名称及坐标。那我们学完地图绘制之后,再去解决类似的问题就可以想到用模式识别去思考。
抽象:在模式识别中其实就已经解释了抽象这一概念,通过以往的规律来预测未来,即归纳模式解决问题。要想解决此问题这其中既要处理过程,也要处理数据,即从具体实例概括出通用解决方案的技术,我们把它称作抽象。再模式识别中,关于去求各种水果总价这一问题,我们可以归纳出很多模式,比如这里都是去问总价,总价都是等于单价乘以数量, 水果的单价都是固定的,但买的水果的数量可变等,但是我们要去求水果总价,我们需要丢掉其他问题,只去找有用的信息即可,及总价等于单价乘以数量这一模式,即要概括出合适的模式,隐藏不必要的模式。
算法设计:之前说到分解是将复杂问题分成很多小块去解决,而不是解决问题的步骤,而算法设计恰恰是解决问题的步骤。其中步骤中又包含分解,抽象,及模式识别,它就像一条线,串起计算思维在各个领域的应用,这里再来说一下在少儿编程中的应用。
例如我们要做一款小鸟飞飞的游戏:
首先我们要将角色导入,即背景,小鸟,图标等,然后设定小鸟的初始位置,接着控制小鸟上下移动,背景移动,最后闯关开始结束等,按步骤解决问题,同时内部也涉及分解,抽象,模式识别,例如在控制小鸟上下移动这一步骤,分解成上移及下移,上移的模式与下移类似,学完其中一个,另外就可以让学生自己归纳,从而解决另一个问题。
今天就跟大家浅谈到这里啦,后期还会继续与大家讨论计算思维方面的知识,有什么问题可以关注微信公众号noip信奥网,或者直接访问我的网站www.noipedu.cn与我探讨儿童教育哦!
计算思维(Computational Thinking)在少儿编程中的体现的更多相关文章
- 脚本编程中的test、bash调试、变量计算、参数
脚本编程中的test.bash调试.变量计算.参数 1.文件测试 -e FILE:测试文件是否存在 -f FILE:测试文件是否为普通文件 -d FILE:测试路径是否为目录 -r FILE:测试当前 ...
- 程序设计中的计算复用(Computational Reuse)
从斐波那契数列说起 我想几乎每一个程序员对斐波那契(Fibonacci)数列都不会陌生,在很多教科书或文章中涉及到递归或计算复杂性的地方都会将计算斐波那契数列的程序作为经典示例.如果现在让你以最快的速 ...
- Scratch 少儿编程之旅(四)— Scratch入门动画《小猫捉蝴蝶》(中)
本期内容概括: 了解Scratch的更多操作,用[无限循环]来更改“小猫”角色的代码: 添加[碰到边缘就反弹]积木块指令: 更改角色的旋转模式和造型,让”小猫”走路更生动: 两种[循环]语句的区别: ...
- 计算机思维的逻辑基础是什么? & 计算思维
l 计算机思维的逻辑基础: 计算机思维是指人们操作计算机时,计算机行使特定功能的运作方式. 逻辑基础则是指支撑事物运作的基本法则. 因而,计算机思维的逻辑基础可以理解为,计算机在行使特定功能时,其运 ...
- 使用Scratch进行少儿编程
在上一篇<初识少儿编程>曾提到过Scratch的脚本标签内包含10大模块,本文将围绕这10大模块展开,分为两部分:积木和编程概念,结合<动手玩转Scratch2.0编程―STEAM创 ...
- Java多线程学习(七)并发编程中一些问题
本节思维导图: 关注微信公众号:"Java面试通关手册" 回复"Java多线程"获取思维导图源文件和思维导图软件. 多线程就一定好吗?快吗?? 并发编程的目的就 ...
- 少儿编程|Scratch编程教程系列合集,总有一款适合你
如果觉得资源不错,友情转发,贵在分享!!! 少儿编程Scratch: 少儿编程Scratch第一讲:Scratch完美的初体验少儿编程Scratch第二讲:奇妙的接球小游戏少儿编程Scratch第三讲 ...
- 少儿编程 | 01.Scratch 3.0简介
欢迎参加这套Scratch3.0少儿编程课程的学习.本系列课程将通过视频和图文的方式进行(视频制作中,后续会发布).如果喜欢本系列课程,欢迎点击订阅关注或者转发. 这是本系列课程的第一课,主要是给家长 ...
- 基于海龟编辑器python少儿编程
Python 少儿教程 为什么要学习编程 扫地机器人.物流机器人.自动泊车系统.无人超市.3D打印.微信.支付宝等等,随着人工智能时代的到来,越来越多的岗位将被机器人所替代. 所以,学习编程的最终目的 ...
随机推荐
- Jmeter之仿真高并发测试-集合点
场景: 大家在使用Jmeter测试的时候应该发现了, (1)线程启动了就会直接发送测试请求:--如果要模拟在一瞬间高并发量测试的时候,需要调高线程数量,这很耗测试机器的性能,往往无法支持较大的并发数, ...
- 基础的markdown用法
首先推荐一款在线的markdown编辑器:Editor.md 一篇博客里面就是文字与图片的集合.markdown其实就是编辑文字,插入图片的工具.对于大多数人来说,学习几个标签就可以了. 标题 #** ...
- HttPclient 以post方式发送json
使用HttpClient 以POST的形式发送json字符串 步骤: 1.url .parameters 2.创建httpClient对象 3.创建HttpPost对象 4.为post对象设置参数 5 ...
- STL初步学习(map)
3.map map作为一个映射,有两个参数,第一个参数作为关键值,第二个参数为对应的值,关键值是唯一的 在平时使用的数组中,也有点类似于映射的方法,例如a[10]=1,但其实我们的关键值和对应的值只能 ...
- 三.接收并处理请求参数与QueryDict对象
一.get与post请求:重点看传参与接收参数 GET请求与传参 ---->url后面跟上?k1=v1&&k2=v2 POST请求与数据提交 (1)get请求:如直接在浏览 ...
- springboot 整合retry(重试机制)
当我们调用一个接口可能由于网络等原因造成第一次失败,再去尝试就成功了,这就是重试机制,spring支持重试机制,并且在Spring Cloud中可以与Hystaix结合使用,可以避免访问到已经不正常的 ...
- python之shutil模块的使用
shutil模块 shutil模块是一种高级的文件操作工具,其对文件的复制与删除操作非常强大,shutil 名字来源于 shell utilities,该模块拥有许多文件(夹)操作的功能,包括复制.移 ...
- Nuxt使用axios跨域问题解决方法
Nuxt 是 Vue 项目服务器端渲染(SSR)解决方案.而在使用时,就会遇到前后端分离情况下的域名或端口不一致导致的跨域问题.本文将介绍如何通过设置代理解决 Nuxt 与 axios 集成的跨域问题 ...
- CSS3+JS实现静态圆形进度条
一.实现原理 首先,我们来一个圆(黑色).接着,再来两个半圆,将黑色的圆遮住.(为了演示,左右两侧颜色不一样)这时候,我们顺时针旋转右侧蓝色的半圆,下面的黑色圆就会暴露出来,比如我们旋转45度(12. ...
- 如何快速部署一条Simplechain子链
我们都知道Simplechain是一种主子链架构,主链Simplechain是POW共识算法的公链.那如何快速创建一条属于自己的子链呢?下面我们就是快速部署一条子链流程.首先clone 源码, 然后按 ...