知乐空间

刘克亮少儿编程到底是如何培养孩子的各项能力的!

 我一直觉得接触很多新的事物,才能更好的认识世界。小时候学画画只知道画,可后来长大了,有了自己的意识,才发现画画绝不是“画”那么简单,画画让我对世界始终怀抱一种好奇,它让我变得更谦逊,更富有创造力。



  每一个新领域都能给我们带来新的知识,装载着这些新知识的我们自然也会获得新的思维,新的能力,新的看待世界的角度。学编程也如此。
  01
  编程的本质是什么?
  刘克亮编程的本质是什么?用一句话来解释,编程就是和电脑对话,用电脑听得懂的语言,告诉它我想让它做的事。
  当我们嘤嘤学语,我们的父母教给我们的是汉语,也就是中国的语言。在成长的过程中,我们用汉语来沟通,但随着年龄的增长,我们开始接触英语、日语等其他国家的语言。我们通过不用的“语言形式”和他人沟通,以此来完成我们的目的。
  语言有很多种,包括汉语、英语、法语、韩语等,尽管输出的形式不同,但可以达到同样的目的。同样,我们也可以通过”语言“来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言。
  所以,要跟电脑沟通对话,我们也必须让自己变得理性、严谨起来,从电脑的角度去思考问题,这就是所谓的编程思维。
  这种思维能带给孩子什么好处?下面我用一个大家都很熟悉的游戏“贪吃蛇”作例子,把编程思维所培养的能力逐个掰一掰。
  02
  编程是如何培养孩子的各项能力的?
  贪吃蛇游戏规则:用上下左右键控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,不能碰到自己的身体,等到了一定的分数,就能过关,挑战难度更高的关卡。
  01
  拆——分解问题的能力
  要写一个“贪吃蛇”游戏,哇,这是一个很大的问题,该怎么入手?如刚才所讲,得想办法让电脑把这件事情搞明白,有哪些步骤,每一步该干什么,哪步在先哪步在后…所以我们首先得把这个大问题给拆了。
  拆解
  在这个程序里,电脑主要处理两件大事:
  1. 处理输入 – 收集用户操作信息
  2. 输出响应 – 根据不同的输入,做出不同的响应
  再拆解
  1. 输入 - 用户的操作可以有按上、下、左、右键四种
  2. 输出 - 相应地,贪吃蛇也要做往上、下、左、右走的动作
  我们把第2点再拆解
  贪吃蛇每走一步,可能有这几种情况:
  1. 吃到苹果
  2. 撞到墙
  3. 撞到自己
  4. 什么都没发生
  我们把第一点“吃到苹果”抽出来,再再拆解
  1/蛇张开嘴巴
  2/苹果被咬掉
  3/播发吃苹果的声音
  4/蛇闭上嘴巴
  5/身体长长一截
  看起来很简单的程序,拆解后步骤可真多呀,而且这还只是其中的一条分支。孩子学习编程的过程,就是不断地训练他把复杂、庞大的问题拆解、理顺的过程。
  具备这种能力的人做事情是耐心的、有条不紊的。比如同样面对一道有挑战的数学题,分解能力好的孩子会列出清晰的解题步骤,搞定一步是一步,即使最后不一定能完全解答出来,也能清清楚楚地知道自己的进展;而有些孩子则不是,没有分解的耐心和能力,遇到难题时脑子一团乱麻。
  02
  整——发现并且整合“重复规律”的能力
  “找规律”就是观察和找到那些重复发生的规律。
  比如“贪吃蛇吃苹果”所发生的一系列动作,是程序中多次会发生的,无论苹果在左上方还是右上方,无论蛇是从上面吃还是从下面吃,都是同样的一组动作,那么我们就可以把这组动作打包,给它取一个名字叫“吃苹果”。
  每次蛇遇到苹果时,就可以直接把“吃苹果”拿出来用,而不用重新把它所包含的一系列动作再想一遍,搞不好的话还会有错漏。
  在编程的过程中,孩子得一直在做这样的训练,发现一些可以重复的单元,把它整合起来,让计算机去重复它。
  这种能力可以大大提高我们做事的效率。举个数学上最简单的例子,比如计算32×(37+4)+47×(37+4)+21×(37+4),它就相当于(32+47+21)×(37+4),其中的(37+4)就是一个重复的单元,可以整合。
  观察那些做事麻利,效率特别高的人,就是具备了这个能力。很多孩子解题快,就是他善于发现和总结“重复规律”,脑袋里自备了一个装有很多类似于“吃苹果”那样的方法库,遇到时直接调用,不用再从头到尾想一遍,也不会错漏。
  03
  析——逻辑思维能力
  逻辑思维中有个非常重要的原则叫做MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整体完备”,也就是“不重复,不遗漏”。比如下面右图是遵循了MECE原则的,左图就没有。
  在编程过程中,处处要考虑和遵循MECE原则。
  比如在贪吃蛇的程序里,蛇每往前走一步,可能会出现4种情况:
  a. 吃到了苹果
  b. 撞到墙
  c. 撞到自己
  d. 什么都没发生
  这4种情况是互斥的,比方说吃到苹果的时候就不可能撞到墙,那么程序中就不能让苹果出现在墙上;而且,这4种情况覆盖了所有可能性,在写程序时如果只考虑了其中的2种或3种,就不“完备”了。
  这些思考对孩子的来说都是非常好的逻辑训练。
  04
  改——调试纠错能力
  当我把编程能带给孩子几项能力一一列出来的时候,发现这点是最重要,也是孩子最需要的。
  任何事情都很难一次就完成得尽善尽美,程序运行起来发现不对有问题,这时就需要孩子去寻找出错的地方,并将它一点一点去改正。
  实际上程序中很多bug都不是一下就能找到的,常常需要从头到尾把程序的运行顺序一步一步地跟走一遍,观察每一步的运行结果(专业术语叫“单步调试”)。这需要很多的耐心、观察力和专注力,对孩子的抗挫折能力也是一种磨练。
  当调试经验丰富之后,孩子在写程序时还会懂得给那些“有可能会出错”的地方先做个记号,方便回头来检查纠错。他更关注于提高自己纠错的技能,而不是害怕、回避或者掩盖错误。孩子会越来越懂得,有错很正常,只要能把它揪出来,改正就好。
  有些人总是在进步,因为他随时懂得回溯、调试、纠错,进而提升自己。
  以上这些能力,其实并不是编程特有的,但它们却是在编程这件事情上集体出现的。所以要是你问我,孩子有没必要学编程,我会很肯定地回答,有必要。
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@ZLME.COM 举报,一经查实,立刻删除。

留言与评论(共有 0 条评论)
验证码: