是培养“如何解决问题”的思维方式。
先来个例子:
计算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”的结果。这样的算法被称为高斯算法。)
编程思维的核心,其实是把复杂的问题分解成一个一个较小的模块,而其中的一些模块应该是可以重复使用的。预先设计好这些模块之间的联系,逐个实现这些小模块之后,再把它们都整合到一起——这种能力对于解决任何问题都有帮助,也是让孩子学习编程的收获之一。
第二是“调试”这个过程所体现的价值。
几乎没有人能一次把程序写对,写完之后一运行,总会发现这样那样的问题,这时候就需要进行“调试”
调试对于孩子来讲其实是个很痛苦的过程,有时候调了半天还是不行,就很有挫败感。但这个过程恰恰能锻炼很多能力:比如怎样找到问题的源头、有哪些技巧和方法、还要有足够的耐心和敏锐的观察力……这些都是放在任何领域都很有用的能力。
并且,在编程“游乐场”里,能提供一个相当宽松的环境容许孩子去试错。孩子们将在轻松的氛围中去不断尝试、勇敢探索,更有利于通过编程学习如何应对挫折和如何解决问题,而不是在有挑战性的时刻选择轻易放弃。孩子们可以学会制定、调试项目的策略,以及可以学会与他人合作,并从自己的辛勤工作中得到成就感。
第三是提供“自我表达、与人共享”的媒介。
每个程序的背后是一个有着沟通目标、热情和渴望的人。编程,就像写作一样,是人类表达的媒介。通过这个表达的过程,孩子学会以新的方式思考、感受和沟通、更好地表达自己。
编程的“游乐场”,孩子们创建自己的项目来交流想法,表达自己。他们在整个过程中参与解决问题和构想故事情节,习得测序技巧并培养算法思维。通过设计过程将早期想法实现,变成可与他人共享的成型产品。
时至今日,尽管教育和研究方法已得到不断发展,但我们仍需要对学习过程进行研究。编程不仅可以作为解决问题的机制,也提供了孩子表达自我的共享媒介。