所以到底让孩子学机器人还是学编程,应该从孩子的兴趣出发:许多孩子对于机器人这种比较“现实”的东西更感兴趣,而另一些孩子更喜欢“搞脑子”。 从STEM教育的角度来看,其实两者都很好,无所谓孰优孰劣。
我也看到过一些机构非要忽悠家长说学机器人比学编程好,理由是学编程只能在电脑上搞虚拟的东西,机器人这种能做出真东西的才有用——这就是别有用心了。
假如你孩子喜欢编程,但机构却极力推荐你去学机器人,那大概只能说明他们的机器人课更有优势,或者说能带来更多利润 多种编程语言 到底学哪种比较好?
许多人听过不少编程语言,比如Scratch、Python、C++等等...到底学哪种呢?
其实你在市面上能见到的绝大多数少儿编程机构,都是学Scratch或者类似的Scratch的积木式编程。
Scratch是MIT(大名鼎鼎的麻省理工学院)开发的一款图形化编程软件,在全世界少儿编程教育领域都非常流行,它的特点就是简单易学,上手快,几分钟就可以做出一些好玩的作品。
简单易学不光是对小朋友容易学,对于机构的老师们也容易学。
少儿编程机构可以遍地开花,但是老师的缺口不是一时半会儿能够补上的——很多老师也都是半路出家的,那么显而易见,Scratch是最容易上手的,所以绝大部分少儿编程机构都只有能力调集Scratch师资。
至于Python之类的正经编程语言,师资培训和教研体系建设的难度要高上数倍,大部分机构其实都开展不了或者水平有限,真正有能力开展的屈指可数。 Scratch虽然好玩,但是它本质上还是个小孩玩具。
尽管号称Scratch可以开发很复杂的项目,但是以它的设计模式,如果真做个大项目能累死你!
我自己就尝试过,看着那些花花绿绿的积木堆在一起,真得有点脑壳疼。
Scratch其实更适合拿来培养兴趣,学习一些基本的编程逻辑,如果一个机构让孩子学Scratch超过两年,那么家长可以判断这个机构比较“水”了,很可能后面也拿不出什么东西。
如果孩子已经通过Scratch入门了,我的建议是:要尽快转向学习正规的编程语言,只有使用正规的编程语言,才能学会严谨地表达程序结构和逻辑。 具体学哪种语言,要看孩子想做点什么。
比如说,想开发iPhone的App,那就学Swift;想开发微信小程序,那就学习Javascript;如果打定主意要走竞赛路线的,那就学C++吧,NOI选择C/C++作为规定语言,是因为它们更贴近计算机底层的工作方式,说白了就是更加“硬核”。
如果还比较迷茫、找不到什么特定的目标,我建议可以让孩子学学Python,因为Python在各个领域都有广泛应用(比如机器学习),也可以写小游戏(比如基于pygame等引擎)。 有一点想说的是:无论你让孩子去学习什么语言,都要引导孩子去关注那些核心和基础的东西。
比如:计算机的结构和工作原理;计算机的操作系统;编程语言相关的底层知识,以及基本的算法和数据结构知识。
这些东西,从计算机诞生的那一天起几乎就没变过,正所谓“练好内功”才能“以不变应万变”。
到了这个学习阶段,一般孩子年龄也比较大了,应该具备一定的自学能力了。
我认为可以不拘泥于在机构学习,还有很多途径可以学习这些知识,比如书本、在线课程
(MOOC之类的,中文课程也非常多),甚至还有一些提供交互式课程的App(比如苹果的Swift Playgrounds)。
在这个阶段,如果自己家没有家人懂编程的话,让交一个懂编程的朋友,比找个机构更管用。孩子学习的过程中有靠谱的人随时给答疑,或作出实时指导,效果自然会好很多,家长可以多请人家吃吃饭表示感谢。 报编程班
应选线上还是线下?
这一部分是我的个人观点:我认为对于低年龄段的孩子,相比线下机构,线上学习反而更有优势。
首先,编程教学本身就是在屏幕上进行的,也就天然适合线上的方式;线下教学也是看老师的电脑屏幕,本质上也没太大区别。
从实践而言,线上课堂我们当家长的可以看到孩子到底在学什么。即便不是专门旁听,你没事路过瞄两眼也能了解个七八分;而线下课一般家长是不陪同的,我不太容易掌握老师教得好不好,孩子学得好不好。
其次,我之前提到了编程师资的培训难度。尽管我认为Scratch比较容易,但要在短时间内让老师具备深厚的教学功力,依然很困难。此外,Scratch教学离不开很多有趣好看炫酷的工程实例,这些东西都是需要专门的团队花时间和精力去制作的。在这一点上,线上机构就可以有规模化的优势:用集中团队进行教研,也可以用少数精锐的老师去教更多的学生,我认为课程的质量应该更好一些。
再者,线上课的价格一般也比线下机构更便宜。 那线下班又有什么独特优势呢?
我认为,线上机构的课程要照顾的群体比较大众化,且老师很难观察到学生的接受度,因此
线上课程进度设置上比较宽松缓慢,也很难针对某个孩子的疑惑进行具体的指导,(除非是一对一的课)。
而这些劣势,则是线下班的长项。所以家长要多观察孩子的学习情况,选择合适的方式学习。 普通家长怎么判断编程老师的水平?
无论教什么学科,我认为老师最重要的素质只有三条: 第一:专业知识积累够深,相关知识面够广;
第二:能够用形象的表达方式(包括口头、图解甚至动画)讲述知识点,并且能够提炼出一些规律;
第三:擅长使用引导的方式让孩子自己达成目标。
第一点应该很容易理解,老师要教100%的内容,自己必须要200%的储备。 那么在家长自己不太懂编程的情况下,怎样直观地判断老师的水平呢?
我觉得可以看老师对孩子提问的反应:如果老师有足够的知识储备,对于孩子的提问应该可以应对自如;如果经常回避孩子的提问,那多半是肚子里没有料。 另外,还可以看老师能不能针对孩子的作品提出有趣的改进或者拓展建议。 第二点也比较直白,老师讲得是不是形象易懂。
家长即便不太懂编程,也能有个大致的判断。比如说Scratch编程里面有讲到坐标系的概念,有些老师会说像电影院里坐座位,第几排第几座,这样一说孩子就很容易理解。
坐标系也可以进一步提炼一些规律出来,比如说一个角色水平移动的时候哪个轴的坐标是不变的?好的老师应该能讲一些规律,而不是只停留在表面的一些概念。
至于第三点,好的老师上课要千方百计地引导学生思考并自己找到答案,而不是只把知识点讲掉,带着孩子做完一个作品就完事了。
比如说,做一个小项目的时候,老师有没有引导孩子进行功能模块的分解?在讲解知识点的
时候,有没有引导孩子举一反三,自己去发现一些规律?在孩子的程序没有实现预期结果的时候,有没有引导孩子自己找出问题?
家长也可以观察,孩子学完一段时间后,能不能利用学过的知识做出自己的作品。很多在乐高机构上课的孩子,跟着老师可以搭出很厉害的东西,但是让他们自己独立搭就抓瞎了,学编程可能也会遇到同样的问题。
我认为这可能还是老师过于重视拿作品说话:因为作品是可以给家长看到产出的,所以手把手带着孩子做出来就好了,并没有花心思去让孩子理解里面的一些规律,这样的教法可能就值得商榷了。
我们做父母的看待编程,不应该仅仅认为它只是一种具体的技能。编程是一种解决问题的思维方式,以及它背后所包含的那些基本原理。
少儿编程机构的火热,我认为是一件好事,可以提供给孩子们更多的选择。但另一方面,我们要记住资本永远是疯狂的,如今的儿童编程领域充斥着各种热钱,在这样的狂热中,希望这篇指南能帮你理性地做出判断和规划。
关于让孩子学编程的深度思考和学习规划
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)