少儿编程已经成为了目前IT行业的一个大型商业链,但是,教孩子学编程却是至今一个十分困难的事情。并不是教育有多大难度,而是为了让家长看到孩子的成果,并对你的教育成果肯定才是难点。很多家长稀里糊涂把孩子送过去学,比起更扎实的理论知识,家长更希望看到花里胡哨的项目。比如编程猫,童程童美等教育机构,都是基本采用“背代码”的教学方式,很多学生能写出一个游戏,知道一些基本的编程知识,但是到了举一反三,或者别的项目的时候,就傻了眼。那么教师的任务就显得很重,既要扎实学生的基础理论,还要让家长看到成果,这就是我们的今天所要讨论的。
在我教育的历程中,见过各种各样的孩子,有些孩子10天就能学完一门语言的基础,有些孩子花了3天却还不理解循环和遍历。
根据分析,编程需要的是逻辑思维和一定的英文水平。学编程时,大部分类名和函数名都是以英文出现,很多学生会害怕英文单词,对于学历低的学生来说,背诵这些词就是一个难点,比如Dowload、install、File、Menu这样的单词,对于一个小学生来讲是困难的。
逻辑思维也是一个重点,这个因人而异,如果你是一个教育机构,采用小班化教学,通常会进行一个类似智商测试的环节,把差不多的孩子分在一个班级。如果你是一对一教学,那么至少也要进行一个测试,好让你掌握教学进度。对于这类测试的题目,通常会用需要逻辑的数学题,比如概率猜球,规律找数字,计算(比如500以内的单数相加的和)。
既然你从事了这个行业,就不要放弃了,再怎么笨的学生,总能学会的。
没错,现在的少儿编程基本采用Python和C++,原因就是简单啊。不过呢,对于14+的孩子才推荐学习C++,因为有将近一半的孩子刚接触编程,是根本听不懂C++课程的。
那么学Python,要怎么安排课程呢?虽然是因人而异,但是对于小班化教学,还是要有统一的时间(毕竟是按照小时收钱啊)基本是先安排2节Scratch的课程,为毛要这样子呢?因为一半的孩子刚碰编程,连电脑咋用都不太了解,所以啊,先用Scratch让孩子有点兴趣,知道循环、变量、判断嵌套是啥,不过不用讲的太细。
接着勒,不能按照成人的方式,花3课时学完整个基础语法。对于孩子来说,先花1课时学输入输出和注释,接着就是花3课时学数据类型,敲重点, 这块知识很重要,所以要反复教,很多孩子刚开始无法理解列表和字典与元组的关系,这就需要多次实践。剩下来就是一课时学一个语法。后面就到了最难的函数和面向对象,函数可以花4课时去教,面向对象也是4课时,这是真的难啊,对于理解能力差的学生能被逼疯!剩下就是模块了,不同于别的,第一次可以接触pygame模块,因为孩子都喜欢做游戏(其实外面机构都是用这个的),花8课时做一个小游戏,接着就是学网络编程,需要6课时,在原来的小游戏上加入联机功能,或者写一个联机五子棋游戏。
对于C++,大部分是为了参加比赛,所以就根据比赛的内容去定向教学,就是比什么,就教什么。
在讲教学方法前,先来聊聊教学中不能做的事。
1.第一课时千万别教孩子关于电脑的结构与功能,比如冯诺依曼体之类的内容,虽简单,但是孩子不喜欢听,这会打发兴趣,并且他们根本听不懂。
2.不能先讲术语后解释,比如你要教函数这块,你不能先抛出函数这个术语,然后根据百度来解释一遍,然后直接进入实例。孩子根本听不懂你解释的内容,所以我们要先进行实例,你写一个函数,然后让孩子模仿一遍,接着让他自己创建一个函数并调用,最后再告诉它们这就是函数,这样更容易理解。
3.百度词条?不可摘录。千万不要硬生生去解释一些术语,不然下面的课就没法教,所以要多用比喻手法,比如解释变量时,就可以比作一个猴子有一个框子,框子里的桃子可以有很多,也可以只有一个,这个数量不确定,所以叫变量,而框子就是变量名,此时我们要把桃子放到筐子里,所以就是赋值。至于不能写成1=a,就像你不能把框子塞进桃子里。多用比喻,才会更容意理解。
4.作业千万不能少,注释一定要强调,如果你只看程序运行结果来查作业就错了,因为程序都是可以拷贝的,抄作业是绝对存在的,所以强调每个学生都要写注释。并且布置的作业一定要多、难,课上听的知识完全不够,举一反三才能理解。
5.孩子捣乱?不慌。课上不听课的孩子、打游戏的孩子大有人在,基本都要在孩子电脑上装一个电子课堂,方便管理。实在捣乱,就走法律程序吧。
6.作业根本不会写,这样的学生最令人头疼,如果你有耐心(钱到位了),就反复给他讲,由简到难。实在教不会,劝放弃,因为你不能把所有时间花在一个孩子身上。
7.别让孩子背代码,学生确实需要背诵一些常用的代码,比如穷举算法之类的,但是要多练习,所以平时出作业就要各种刁钻。
前面说到,遇到新术语,先实践,后解释。多用比喻手法。
还有,你要多用有趣的例子,比如你可以举个王者荣耀的例子,把一个列表里放5个英雄的HP变量,根据用户输入的技能对特定英雄伤害,对变量进行自减。这样的把编程联系到生活和游戏,会让孩子更喜欢编程。
刚开始要善用Scratch,刚开始我并不看好这个东西,后来到教学中发现是真的有效果。在讲到循环时,先让学生在scratch中写一个程序,然后根据语法翻译成Python语言,这样就更容易写。
大型项目要写思路,你不可能让一个孩子独自写一个游戏,所以你要把矿建用结构图表示出来,然后让他们自己思考。如果你手把手教,那就成了你一个人写的程序。对于大型项目,别每次都创新,因为就算你都可能出BUG,所以先Copy一下Github上的源码,然后拆分教学。
说话的时候不能饶舌,也不能磕巴,这是一个教师最基本的。
同行竞争压力山大,最主要是要“骗”家长,如果你全部说实话,这就显得很平常,所以要不断吹一些花里胡哨的内容,让家长看起来有信心。
把一些实例给家长看,然后给孩子上一节试听课,让孩子有兴趣,家长才能放心。
当然,这篇博客只是我写着玩的,因为最近也在教一些孩子,所以就想把经验写下来,希望新的一年你们也能有所成就。