转眼间已经给儿子上了七节少儿Python 编程课了,每周五的这节课成为儿子非常喜欢和期待的课程,能够用Python语言去控制电脑,得到适当的输出和反馈,他从中获得了莫大的成就感。
当初为何会想到上这门课程呢?主要原因还是国家实行减负政策后,奥数等学科已经没有了竞赛,这样就能有更多的时间节省下来尝试一些课外的兴趣。而我一直认为,写作和计算机是这个时代最重要的两门创造性能力,它们都能帮你把想法变成一样产品,从而得以在互联网进行传播。并且,一零后这一代的整个成长过程都是伴随着电子产品和互联网的,软件应用基本上充斥了它们的周边环境,能够对环境多了解些总是有益的。计算机作为辅助分析工具,也确实很强大,学会使用计算机就相当于给自己的大脑找到了一个强有力的外包,用电脑武装后的大脑,将更加强大。
在确定目标后,最终选择了Python 语言作为学习语言。这门语言最大的好处是比较容易上手学习。它是一种脚本语言,很多情况下你根本不用正经危坐的认真盯着每一行代码,你完全可以在Python的命令行模式下,把代码一行行敲下去,每敲击一行都能看到反馈。这种即时的反馈对于学生来说非常有帮助。如果一门新技能总也学习不好,一般情况下都是缺少练习和反馈的机制,很明显的案例就是英语学习,虽然语法单词背了很多年,但听说读写都还是很差。而很多人喜欢玩游戏的原因,也正是因为游戏有即时的反馈,则更能激励玩家不断的练习,从而技能也就不断提升了。
在给孩子的教学中,我采用了项目制的方式。也就是说每节课的案例都是一个小项目,并且会先给孩子看一下项目最终运行的结果是怎么样的,孩子对这种学习方式非常感兴趣。从第一节课开始,我就是以这种方式进行教学的。有些人可能会困惑,如果连基本的概念都不懂,如何让他去做一个程序?答案很简单,就是模仿。 对于孩子的学习过程,我现在有一个新的认识。原来我们总是强调基础知识的重要性,英语要从单词和语法开始学习,编程要从数据结构和算法开始学习,这样的学习过程就像登山,最终导致没有登顶的原因是,大部分人都是被困难所吓到了,从而没有坚持下去。 这种方法已经教废了很多人,从国内英语学习的现状就能了解。更好的学习方式应该是从模仿开始,每节课讲解一个最小的核心概念,然后就是让学生把程序先原封不动的打出来,运行看到结果后,再稍微调整下参数,看看有什么变化,从而理解整个程序的意思。这个流程的好处就是首先帮助学生建立整个感性认知观,然后再关注细节的相关知识。因为调整参数后会有即时的反馈,这很容易帮助孩子对程序进行理解。
项目制的另外一个好处就是能够帮助学生建立整体的思路。为什么有些人觉得编程困难? 主要是因为拿到题目后没有思路,通过项目制帮助孩子建立思维路径,对于孩子解决问题会非常有帮助。分解项目思路的过程,也就是把问题进行分解的过程,需要首先考虑能够通过哪些步骤最终完成整体目标。然后再把每个步骤用对应的代码进行实现,最终再根据反馈信息进行修改就行了。不断的在每次项目中建立这样的思维路径,孩子对如何解决问题就有了一定的套路和思维模式了。
除了以上的环节外,每节课中还有一个孩子非常喜欢的环节,就是“名人堂”。 在这个环节中,我会以讲故事的方式,给他介绍一位计算机历史上的名人,让他能够从这些名人的贡献了解计算机发展的历程。 更重要的是,这些名人的成就和精神力量也能给孩子以信心和鼓舞,让他们从小能够看到更广阔的边界,不至于总是拿身边的朋友作为自己的参考对象。
看到这里,相信你已经发现,我在编程的教学中,主要使用的最少知识点和项目制的教学法,它的优势就在于通过模仿和练习让学生产生兴趣,有了兴趣作为驱动,学习也就从无聊变成了欲罢不能的事。