近年,STEAM教育被推上风口,很多家长争相为孩子报名学习少儿编程课程。同时,也有不少家长在犹豫、观望:一方面,由于国家政策的扶持,如果孩子不学编程,将来高考时可能会吃亏;如果让孩子学编程,究竟有没有那么神乎其神?究竟值不值得?本文就从家长的角度出发,从编程的整体进行探讨,帮助大家更加理性地做出判断和规划。
1.为什么学编程要游戏化教学?
风靡全球的少儿编程语言Scratch的缔造者Mitchel Resnick认为,编程与游戏精神结合,存在两种模式,其一是“婴儿围栏”,其二是“游乐场”。
“婴儿围栏”是一个限制性的环境,在真实的婴儿围栏中,孩子的行动空间有限,探索也十分有限。他们能在围栏里玩玩具,但范围有限。“婴儿围栏”是一种隐喻,比喻孩子缺乏实验的自由,缺乏探索的自主权,缺乏开发创造性冒险的机会。
“游乐场”则给孩子提供更多的空间去移动、探索、实验和协作。如果你在游乐场里观察孩子,一定会发现他们在玩着自己的游戏。在这个过程中,孩子才会成长为一个创造性思考者。对于游乐场式的编程来说,重要的是让孩子自己决定制作什么,以及如何制作。
因此,游戏化的编程教学目的在于构建一个“游乐场”,它给孩子们提供了许多学习、成长、探索、创造的机会,帮助青少儿掌握新技能和思维方式。在生活中,我们可能并不需要总是把孩子带去“游乐场”;因为除了编程还有其他兴趣、技能可供选择开发,但徜徉在“游乐场”时,我们肯定希望这是一个能让孩子有所收获、适宜成长的领域,而游戏化教学正是给了孩子一个能够轻松快乐汲取知识的氛围。
此外,游戏化教学符合孩子大脑发育的规律。
比如当我们面对小学二年级(7-8岁)的孩子时,会发现他们其实都已经可以理解编程的基本概念和逻辑了,比如指令、循环、分支、变量等等。这是因为一旦孩子的抽象思维和逻辑思维有了一定发展,编程中很多概念就可以被很快理解了。
但反过来,你给一个幼儿园小朋友(3-5岁)讲这些东西,就需要花很长很长时间,因为大脑发育的关系,他们还没办法完全理解这些抽象概念。
小孩子无法理解这些抽象的概念怎么办呢?
这就需要通过游戏化教学来实现了,比如使用各种图形化、可视化的元素,设置关卡任务及奖励等方式来进行激励,以玩为主,吸引孩子兴趣。
名列波士顿五大名校的世界顶尖著名研究型私立大学——塔夫茨大学(Tufts University)曾在出版的《积极的技术发展》一书框架中提到:了解到儿童在开发计算机思维和探索计算机科学的同时,还能获得跨越式成长和良好学习体验。在技术渗透到方方面面的时代,儿童不仅仅是程序的使用者,也将是程序的创造者,他们可以将编程作为一种游戏。
2. 学编程究竟有什么价值?
第一是培养“如何解决问题”的思维方式。
先来个例子:
计算 1+2+3+……100 的总和是多少?
如果没学编程的孩子会想到常规的计算思路,那就是 1+2,再 +3,+4,这样一直加到 100,共做 99 次加法,最终计算得出 5050。
如果学过编程的孩子对于这道计算题,就会知道第二种解题思路,利用高斯算法,1+100=2+99=3+98=……每对结果均是 101,共有 50 对 101,那么计算机只要计算 50*101 就能得到最终结果。(高斯算法,以首项加末项乘以项数除以2用来计算“1+2+3+4+5+···+(n-1)+n”的结果。这样的算法被称为高斯算法。)
编程思维的核心,其实是把复杂的问题分解成一个一个较小的模块,而其中的一些模块应该是可以重复使用的。预先设计好这些模块之间的联系,逐个实现这些小模块之后,再把它们都整合到一起——这种能力对于解决任何问题都有帮助,也是让孩子学习编程最大的收获之一。
第二是“调试”这个过程所体现的价值。
几乎没有人能一次把程序写对,写完之后一运行,总会发现这样那样的问题,这时候就需要进行“调试”。
调试对于孩子来讲其实是个很痛苦的过程,有时候调了半天还是不行,就很有挫败感。但这个过程恰恰能锻炼很多能力:比如怎样找到问题的源头、有哪些技巧和方法、还要有足够的耐心和敏锐的观察力……这些都是放在任何领域都很有用的能力。
并且,在编程“游乐场”里,能提供一个相当宽松的环境容许孩子去试错。孩子们将在轻松的氛围中去不断尝试、勇敢探索,更有利于通过编程学习如何应对挫折和如何解决问题,而不是在有挑战性的时刻选择轻易放弃。孩子们可以学会制定、调试项目的策略,以及可以学会与他人合作,并从自己的辛勤工作中得到成就感。
第三是提供“自我表达、与人共享”的媒介。
每个程序的背后是一个有着沟通目标、热情和渴望的人。编程,就像写作一样,是人类表达的媒介。通过这个表达的过程,孩子学会以新的方式思考、感受和沟通、更好地表达自己。
在编程的“游乐场”,孩子们创建自己的项目来交流想法,表达自己。他们在整个过程中参与解决问题和构想故事情节,习得测序技巧并培养算法思维。通过设计过程将早期想法实现,变成最终可与他人共享的成型产品。
时至今日,尽管教育和研究方法已得到不断发展,但我们仍需要对学习过程进行研究。编程不仅可以作为解决问题的机制,也提供了孩子表达自我的共享媒介。
3. 学编程才能在AI时代有饭吃?
自从Google的人工智能软件AlphaGo击败人类最顶尖的围棋选手以来,人工智能一夜之间成了一个家喻户晓的名词。很多家长都在焦虑:人工智能时代,学了编程就能让孩子赢在未来吗?
实际上,现在的孩子大概有三分之二会在将来从事目前尚未发明出来的工作。面对孩子不确定的未来,教育领域的工匠麻省理工学院媒体实验室学习研究教授米切尔·雷斯尼克认为,学编程的目的并不是为了学习编程知识,而是要通过编程技能,训练孩子创造性。
未来,人工智能将替代一部分人类工作,但我们不能把它看成是一种威胁,而是一种新的机会。我们作为父母,面对人工智能时代的时候,应该让孩子“练好内功”,而不是赶现有技术的“时髦”。在孩子学习编程的过程中,我们可以通过寓学于乐的方式给予他们鼓励和支持,可以看到孩子们作为独立人格发出他们的声音,讲述他们的故事,而不再局限于简单意义上的解决某个问题这一片面角度。
科技的变革速度远超人类的进化速度,人类大脑的奖赏回路并没有发生什么变化,通过自主创造获得可见的成就感,依然是人类持续工作的动力,少儿编程要教给孩子核心的就是创造性地表达,让孩子学会如何利用新技术创造新产品才能使未来的人“不做机器的看守奴”。