关于孩子学编程作为家长要知道的事情_智力开发

随着计算机就业市场的持续火爆,与STEAM相关的教育产品也越来越受欢迎。经常遇到朋友问孩子应该学什么编程语言,推荐靠谱的编程兴趣班。
本人计算机专业出身,97年毕业后在IT行业打拼。从2004年开始,我就在加拿大的高中教计算机编程和机器人设计,教过几百个学生,勉强算是圈内人。我不反对孩子从小学开始编程,但是我对孩子从小学开始编程的效果有所保留。
本文从一线编程教师的角度,以儿童认知发展心理学理论为基础,结合教学实践中的观察和思考,陈述了一些关于儿童学习编程的客观事实,希望能给希望孩子学习编程的家长一些启示。
1.从小学开始被编程的孩子,长大到被系统编程时,与同龄人相比并没有明显的优势。
小学编程的孩子有两种,一种是被强烈的兴趣驱使,自发的继续学习;另一类是受父母影响,从小在兴趣班学习编程。
比尔和埃隆·马斯克属于前者。两个人都是无与伦比的天才,普通人也没有可比性。
我从小学开始接触who项目的孩子,大部分都属于后者。在教学实践中,我发现这些孩子一开始比其他孩子上手快是因为他们学过,但是随着内容的深入,特别是学习条件循环和一维数组的时候,他们的表现基本上和其他第一次接触编程的孩子没什么区别。而且,这些孩子中的一部分还存在这样一个问题:机械模仿形成的先入为主的思维定势很难纠正。
比如我教过一个从三年级开始用乐高编程的孩子。在编写条件循环时,他总是不加思考地编写一个无限循环while(1==1),然后利用循环体中的if语句判断循环终止条件,通过break终止循环执行。而课堂上反复强调的通过设置变量的初始条件,然后合理选择条件来控制循环的模式,却被忽略了。
提前学习的孩子,如果学习深入透彻,就没问题;我当时最怕学一点知识,好像懂了。在学校系统里按照正常进度学习同样的知识时,很难沉下心来重新学习。总觉得自己已经学会了,就直接去做题。做习题的时候,因为一开始没有完全理解,所以不可避免的要用编程的刻板印象去机械的复制。
年复一年,这种现象每年都在教室里重演。
万物生长都有自己的时间,人的认知也是一个渐进的过程。不遵守自然规律,不仅会培养孩子在学科(如数学、编程)上的优势,还会扼杀孩子探索未知的自发兴趣和好奇心。
2.编程不是小孩子的工作,不是越早学越好。
有些技能,比如乐器,是靠肌肉记忆和听觉记忆的。从小学习比晚学能培养更好的手指运动功能、手指独立性、灵活性和控制能力。同时,听感也需要从小培养。长大后,很多声音耳朵已经分辨不出来了。
但编程不是。编程表面上是学习一门编程语言,但内在培养的其实是孩子认识问题和解决问题的思维方式,而这种思维方式可以跨界应用到其他领域的学习和实践中。这种思维方式就是编程思维。
简单来说,编程思维就是将现实生活中的复杂问题逐步拆分成可以理解的小问题(分解拆分),然后根据已有的知识和经验,找出新问题与以前解决的问题的相似之处,通过类比找出规律(模式识别模式识别)。然后把问题涉及的数据抽象成数据结构(变量、数组、链表等。),并将数据处理过程中可重复的部分抽象成功能模块,循环执行。最后,根据前三步的分析结果,设计步骤,编写算法来解决问题。(如果有兴趣学习编程思维,可以参考我去年写的一篇关于编程思维的文章)
不难看出,培养编程思维的前提是要有扎实的数学知识,尤其是代数基础和抽象思维能力。根据儿童认知心理学鼻祖让·皮亚杰的理论,儿童的抽象思维能力形成于11-16岁之间,代数学习按照正常的教学进度也是初中以后。所以,如果一个孩子的数学基础没有打牢,抽象思维没有建立起来,谈编程思维无疑是空中楼阁。
在安大略省,正式的编程课程直到十年级才开设。即使对于15、6岁的孩子来说,学习这门课程也绝非易事。
在大学录取上,包括滑铁卢在内的计算机专业都不要求学生在高中阶段有任何编程经验。我曾经专门咨询过滑铁卢大学计算机系的本科教学老师Sandy Graham。经过多年的教学实践,Sandy还发现,在滑铁卢的本科生中,与之前从未接触过编程的孩子相比,在中学上编程课并没有明显的优势。相比之下,数学好的孩子后劲更足。
当今机器学习领域当之无愧的教父杰弗里·辛顿(Geoffrey Hinton)也持相同观点。10年前,人工智能还没有今天这么火。Hinton因为女儿在我的班上,所以联系了同学们,谈谈机器学习的研究和进展,希望能激励更多的孩子投身到机器学习领域。由于他的热情,我很快和他确认了来听课的同学是否需要有计算机背景知识,是否至少应该学过AP计算机。答案是:不会,只会数学,最好会微积分。
综上所述,编程不是小孩子的工作。任何时候都可以学。如果想以后在计算机领域有大的进步,学好数学才是王道。

感谢您的阅读,本文出自【大盘站】,有疑问请联系客服人员!