计算思维(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打印.微信.支付宝等等,随着人工智能时代的到来,越来越多的岗位将被机器人所替代. 所以,学习编程的最终目的 ...
随机推荐
- 02 . Kubeadm部署Kubernetes及简单应用
kubeadm部署Kubernetes kubeadm简介 # kubeadm是一位高中生的作品,他叫Lucas Kaldstrom,芬兰人,17岁用业余时间完成的一个社区项目: # kubeadm的 ...
- git 如何解决 (master|MERGING)
git 如何解决 (master|MERGING) git reset --hard head //回退版本信息 git pull origin master
- JavaWeb网上图书商城完整项目--day02-24.分类模块的相关类创建
所谓的分类模块:就是显示所有的分类的功能,显示所有的分类在left.jsp页面中 这就是显示所有的分类: 要实现上面的,我们首先创建一个分类模块,该模块需要实现下面的功能 我们先创建上面的java包 ...
- Python3-json & pickle 序列化
JSON(JavaScript Object Notation, JS对象标记)是一中轻量级的数据交换格式,大部分语言都支持 Python3中的json提供了对json格式数据的序列化支持 json. ...
- MySQL Workbench 8.0 目录汉化
<?xml version="1.0"?> <data> <value type="list" content-type=&quo ...
- Python 简明教程 --- 14,Python 数据结构进阶
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那很可能是用错算法了. -- Carig Zerouni 目录 前几节我们介 ...
- 使用IDEA 发布项目搭配远程仓库 Gitee
本次讲解的是idea 发布到gitee上 一样的操作流程 没有基础的请先去学习 附上我的 gitee 地址 有资源会发布到gitee 俗话说关注走一走 活到999 https://gitee.com/ ...
- java后端无法接收到前端传递的json对象
java后端无法接收到前端传递的json对象 一·可能是因为未使用@RequestBody 在Controller层中,要么使用@RestController要么使用@Controller+@@Req ...
- SQL语句中where 1=1的意义
我们在看别人项目的时候,很多时候看到这样的SQL语句: select * from user where 1=1 其中这个where1=1是有特殊意义的,包含以下两种情境:动态SQL拼接和查询表结构. ...
- 抓包工具-Charles基础使用
正在整理,等待编辑过后更新....... 竟然字少不能发不出去 那..... 现..... 在..... 够..... 了..... 吗?????? 不..... 够..... 我..... 在... ...