• 谈谈少儿编程


    时下,少儿编程非常火热。网络上不时可以看到各类编程广告,前2天刚看到张泉灵、李开复等大咖都为某少儿编程培训站台代言,市面上各类机器人培训、少儿编程培训也是异常火爆。前不久,工信部推出了中国首个AI等级考试“青少年人工智能技术水平测试”。可见,知识焦虑已经由中年大叔蔓延到了下一代的少年儿童。

    之前,有朋友问我会不会给自己儿子报编程培训?这个答案我目前不好直接回答,一是要看小孩有没兴趣,当然这个可以引导。二是要看有没有合适的培训机构,再好的东西如果没有好的教授者和讲授方法,小孩是不容易接受的。总的来说,小孩的培训应该在轻松前提下,加上兴趣的推动(至少不排斥),如果再能碰上良师+好友,那这个培训就是值得的。

    少儿编程,通常针对的是6岁以上,12岁以下(即小学年龄阶段)的儿童。这个年龄阶段的儿童,已经有了基本的数理逻辑能力,是可塑性很强的群体。因此,单从年龄段上来看,少儿时期是培养逻辑思维能力的重要时期。

    工具上看,目前比较适合少儿学习的工具是scratch。Scratch是一款由麻省理工学院(MIT) 设计开发的一款面向少年的简易编程工具。在2012年在中国得到普及,2013在上海举行比赛。针对 8 岁以上孩子们的认知水平,以及对于界面的喜好,MIT 做了相当深入研究和颇具针对性的设计开发。对于这款软件,我没有深入去使用过,仅在网页上做了粗粗的了解。

    下面,我们通过一道少儿基础编程题,一起来感受下编程的简单乐趣。(家里如果有适龄儿童,可以引导着一起体验)

    题目:交换两个变量的值例如:a 的值为10 b的值为1,那么交换后,a的值为1,b的值为10。这里假定a ,b为非负整数(为满足后续所有运算)。

    方法1:借助一个中间变量“temp”,第一步:将中间变量的值设置为a;第二步:将a的值设置为b;第三步:将b的值设置为中间变量,如图所示。

    程序代码:(由scratch实现,类似搭积木)

    对于特殊情况下我们还可以用其他的方法来交换。比如本题中a和b是两个数,我们可以用计算的方式来交换变量。

    方法2:第一步,将a设置为a+b,此时a=11;第二步将b设置为a-b,那么b=11-1,b的值变为10;第三步将a的值设置为a-b,那么a=11-10,此时a的值为1,完成交换。

    程序代码:

    方法3:类似的,我们还可用乘法来做交换,方法与上方法二类似,这里不再具体说明。

    实际上,从上面过程可以看出,不仅仅是方法2、3,即通过加减,或是乘除,只要满足可以做两个数正逆计算,都可以实现2个正整数的交换。比如稍复杂的次幂、逆运算为log。这一类的计算交换,实现的是同样的思想方法。

    方法4:此外,还可以利用异或,仅使用两个变量进行交换,python算法参考如下:

    def demo(a,b):

       a = a^b 

       b = a^b  # b = (a^b)^b = a

       a = a^b  # a = (a^b)^a = b

       print(a,b)

    demo(13,31)

     

    #说明:a1=a^b

     b=b^a1=b^a^b=a

    //此时a1=a^b  b=a

    a=a1^b=a^b^a=b

    这样就完成了a与b的交换。

    可见:同一变量与另一变量和其异或值异或等于另一个数,如(a^b)^b=a。

    怎么样,是不是感觉挺好玩?  如果觉得很easy,那么恭喜你,多半是“程序猿”出身。如果觉得马马虎虎,至少可以看懂,那么说明你的逻辑思维能力基础不错,稍加练习可以应付自家小孩的教学。如果不知所云,那要加加油了,千万别让下一代再输在起跑线。

     

     

     

     *****************************

     ***Stay foolish   stay hungry. ***

     *****************************

    
    推荐阅读:浅谈如何自动化生成测试脚本...有没有好到简历模版可以参考一下
    一站式自动化测试平台以及解决方案
    
    
    微信扫描二维码,关注我的公众号
    
  • 相关阅读:
    java 类加载器的委托机制
    java 类加载器
    java 泛型
    java 注解(Annotation)
    java 内省综合案例和Beanutils工具包
    java 内省 了解JavaBean
    Java中的接口
    hdu 1853 Cyclic Tour 最大权值匹配 全部点连成环的最小边权和
    extjs fileuploadfield default value
    linux程序设计——套接字选项(第十五章)
  • 原文地址:https://www.cnblogs.com/finer/p/14127752.html
Copyright © 2020-2023  润新知