大家好,我是科力,今天我要从发展心理学的角度来谈谈最近很火的少儿编程。
提起编程,有相关学习经历的朋友一定对于printf('Hello world');记忆尤新。
那么,对于孩子而言,我们是否能够采用相同的方式对孩子进行编程教学呢?答案是不根据瑞士儿童心理学家皮亚杰的认知发展阶段论,儿童和青少年的认知发展划分为四个阶段:感知运动阶段、前运算阶段、具体运算阶段和形式运算阶段。
能够利用语言来进行文字在头脑中重建事物和过程来解决问题的运算需要到形式运算阶段才行,也就是说,大多数孩子得等到12岁左右,才开始逐渐拥有大人所拥有的,利用文字符号进行运算的能力,这就是为什么小学在高年级才开始解方程的教学.掌握了这种能力之后,孩子们才能利用程序语言printf('妈妈我想去动物园');所以,强行要求小孩子(除少量天才)按照传统编程课程学习编程是违背正常发展规律的,这样的行为无异于于让一个刚会说话的孩子练习贯口。
除编程语言外,市面上有一些图形编程课程很受家长青睐。
某图形类少儿编程课程界面(图源网络)相对于C语言等编程语言,图形类编程课程更多的采用模块的形式,只需要拖拽所需指令到相应位置,就能完成程序编写。
某著名少儿编程课程介绍可以看到,类似的少儿图形编程都是可视化编程。
几年前有一款软件叫雅奇MIS,当时提出的口号是“八到八十岁都能学会编程”,具体操作方式与之类似,同样是拖拽按钮、文本框等组件到窗口上,设定逻辑等完成程序。
当然,它们也有一些差异,雅奇MIS的可视化是GUI的可视化编辑,而编程猫这样的更像是之前一年前有点火的游戏:Human Resource Machine,对程序的算法逻辑进行可视化操作这款游戏的中文翻译简单粗暴:人力资源机器(大概是码农最真实的写照了)玩家需要通过操作右侧的各种“代码”,使盒子从入口搬到出口Human Resource Machine界面有了新命令的时候,系统也会有教学,提示新命令的作用和操作方式游戏目标是把从in进入的盒子运送到out处,右侧为程序模块操作区域这样的好处是什么呢?它们将算法逻辑转化为具体可见的东西提供给孩子去操作,这就达到了具体运算阶段的要求:“儿童进行的运算需具体事物的支持,对那些不存在的事物或从没发生过的事情还不能进行思考”。
具体运算阶段大概是7~12岁再看一看少儿编程结构给的年龄选择最小年龄到了学龄前联系客服询问后,机构告诉科力,孩子年龄太小,建议试听后再确定机构给出的年龄比较客观的是,5岁的学龄前孩子就可以学啦,具体的试听过后才知道。
至少,机构也知道,孩子是否应该开始接触编程,也是需要考虑年龄的,而且,因人而异。
综上:孩子接触编程是可以的,但是小学阶段孩子能理解的,可视化编程比Python、C甚至Matlab等更容易理解。
对于孩子而言,培养能力当然重要,但是也要考虑客观发展规律,切忌拔苗助长。
如果,本着“不前进就是落后的观点”,一定要孩子超前学习,推荐Human Resource Machine(中文版),在游戏中学习,快乐高效又省钱。