【摘要】如果我们的孩子开始学习编程,我们应该以什么样的方式方法去『教』他。填鸭式的教学方式好使吗?家长全权负责步步指导有效吗?下面根据自己多年的编程经验,从软件开发的方法上来简单说一下自己的理解。
在摘要里,我把『教』括起来了,这里想表达的意思是,在教孩子编程时,我们不全是教他们,而是共同协助完成的,是双方都要动脑思考的结果,在孩子刚开始接触编程时,他们根本不知道编程是什么,编程能干什么?我们是利用了孩子爱玩玩具、游戏的天性,通过编程的方式吸引他们,满足他们那颗好玩的心。
对于此时的孩子,逻辑思维能力还不是特别强,但他们的学习能力,接受新事物的能力堪称一流,就拿玩手机来说,孩子看到大人在手机屏幕上划来划去,然后点击一个APP,他们很快就学会了,估计好多家长都有被别人家孩子拨打电话的经历,接通后不说话,大多数都是孩子拨打的。
根据孩子年龄段的特定,并结合Scratch之父米切尔·雷斯尼克在《终身幼儿园》提到的4P理念,我认为我们在与孩子一起编程时考虑以下几个方面:
孩子在玩游戏时都有一个名称,如老鹰捉小鸡,石头剪子布。每个名称都是一个独立的游戏,孩子在听到名字时都清楚要做什么,他们之间都有一个边界,也就是范围。项目也是一样,先定一个项目,可大可小,会有一个基本清晰的范围,我们要实现什么功能,比如做一个海底世界的项目,我们要完成的功能就是,有三个海底生物比较厉害,如鲨鱼、水母、螃蟹,小丑鱼在海底游不能碰到这三个生物,碰到游戏就结束了。这就是一个独立,完整的项目。
我们在做这个项目的时候,如果一下子奔着目标去,可能孩子会有畏难情绪,总是完不成,看不到最终的结果,打击孩子的自信心和进取心。我们可以先易后难,把最终结果拆解为多个步骤,把每个步骤做完,整个项目就完成了。比如:
第一步,先做一个大鲨鱼,在海里游来游去,然后是水母,螃蟹。
第二步,在做一个小丑鱼,在海里游来游去。
第三步,然后再控制小丑鱼,碰到这三个生物后就停止游戏。
通过任务拆解的方式,让孩子每步都有成就感,才能更有兴趣的进行下一步,而不是一上来就被吓的彻底放弃了。
软件开发其实就是不断『迭代』的过程,通过用户的及时反馈,在每个迭代不但优化功能,最终实现一个用户正在想要的作品。还以『海底世界』为例,我们经过项目分析,把完成这个项目分3个迭代:
第一个迭代,鲨鱼、水母、螃蟹、小丑鱼都有,只有小丑鱼碰到其他三个生物游戏就结束。
第二个迭代,把鲨鱼、水母、螃蟹和小丑鱼的游泳姿势调整的更真实。
第三个迭代,设置鲨鱼、水母、螃蟹的游泳速度,加大游戏的难度。
可以看出,通过第一个迭代,这个游戏完成后就可以玩了,孩子就会很开心了。通过第二个迭代,这个游戏就更真实了。通过第三个迭代,这个项目就可以算是一个合格的游戏了。孩子就可以在自己创作的游戏里玩耍了。
每次迭代都是不断优化的过程,都是发现问题,解决问题的过程,这样可以培养孩子发现问题,主动思考,解决问题的能力。
这个很关键,在创作的过程中,家长一定要有耐心,不能看着孩子不会一着急,大包大揽的给做了,这样对孩子没有任何的提高。我们需要做的是旁观者,引路人。引导孩子自己发现问题,自己动手解决问题,进而把这个项目做的完整。我们都有这样的体验,一个费了很大的力气才解决的问题,会记忆深刻。孩子也是一样,当自己为了解决一个问题,煞费脑筋,想尽各种办法,最终灵光一现的时刻是非常美好的。
对于孩子们,给他们点时间和耐心,他们不会让你失望的,孩子们加油吧。
我在这里是以家长的角色去表达,在学校的老师也可以参考,或许都已经在这样做了,如果有其他更好的方式方式,可以留言交流。
留言与评论(共有 0 条评论) |