计算思维(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打印.微信.支付宝等等,随着人工智能时代的到来,越来越多的岗位将被机器人所替代. 所以,学习编程的最终目的 ...
随机推荐
- selenium(5)-解读强制等待,隐式等待,显式等待的区别
背景 为什么要设置元素等待 因为,目前大多数Web应用程序都是使用Ajax和Javascript开发的:每次加载一个网页,就会加载各种HTML标签.JS文件 但是,加载肯定有加载顺序,大型网站很难说一 ...
- 对select函数的理解
对select函数的理解 1. 处理多个socket链接的方法 阻塞模式下服务端要解决多个客户链接的问题的3个思路: 每个客户端的socket对应一个内核线程,在这个线程内部进行阻塞的read 单线程 ...
- springboot集成jpa操作mybatis数据库
数据库如下 CREATE TABLE `jpa`.`Untitled` ( `cust_id` bigint() NOT NULL AUTO_INCREMENT, `cust_address` var ...
- android 事件分发机制2-案例测试
我们来看程序的代码: 要求: 1.通过手指移动来拖动图片 2.控制图片不能超出屏幕显示区域 技术点: 1.MotionEvent处理 2.对View进行动态定位(layout) package im. ...
- docker 安装mysql:latest 问题
背景 周末闲着没事,然后想着在虚拟机用docker装个mysql吧.然后就开始安装了. 正文 打开dockerhub.com,在输入框输入mysql,选择mysql第一个,进入后找到How to us ...
- 暑假集训日记Day xx
Day 1 6.23 今天算是第一天吧 (毕竟昨天被迫做了半天苦力) 充实而丰满的一天:上午做题 下午讲题 晚上改错(考试是原题和我会做有什么关系吗) 早起跑操还阔以(比之前距离短就很快乐) 然后练了 ...
- MFC 添加C++类,别的类不通过C++类的定义的对象就可以直接调用C++类里面的成员函数;
MFC 添加C++类,不用定义C++类的对象,别的类不通过C++类的定义的对象就可以直接调用C++类里面的成员函数: 1先在mfc程序中添加普通类CProdata,然后删除头文件Prodata.h里面 ...
- 如何用HMS Nearby Service给自己的APP开发一个名片交换功能?
在工作和生活中,遇见新的同事或者合作伙伴,交换名片是一个常见的用户需求,纸质名片常忘带.易丢失,是客户的一个痛点.因此,市场上出现了很多交换电子名片的APP和小程序.那么,如何给自己的APP开发一 ...
- Java基础Day07(Map Calender Date 包装类 System类 异常)
1.Map Map是集合容器,存放的元素有键与值两部分组成,通过键可以找到所对应的值,键和值必须是引用数据类型,键是唯一的,不能重复,没有顺序. HashMap是Map的实现类. Map的添加,删除, ...
- 腾讯T8纯手写66个微服务架构设计模式,全部学会真的“变强”了
微服务的概念虽然直观易懂,但“细节是魔鬼”,微服务在实操落地的环节中存在诸多挑战.我们在为企业提供PaaS.人工智能.云原生平台等数字化转型解决方案时也发现,企业实现云原生,并充分利用PaaS能力的第 ...