在从小学开始到上高中接受正式的培训并被保送到大学的数学专业,十几年的数学训练让我在解决复杂数学问题上拥有了相对的优势和自信,同样也让我在目前的计算机研究领域里有相对的优势。和学习数学竞赛一样,学习编程同样可以让孩子建立相对的优势和自信,让孩子在未来的很多领域里占得先机。
image在给孩子选择编程学习的启蒙上,我强烈建议CodeMonkey这个教育科技产品。这是因为CodeMonkey具备很多优质特性。
image首先,CodeMonkey这个优秀而有趣的编程产品可以让孩子在编程上产生后天的优势。作为入选SXSW教育峰会的明星产品,CodeMonkey里有很多孩子们喜欢的元素。CodeMonkey里会出现各种可爱的动物,比如爱吃香蕉的猴子,会缩脖子的乌龟,憨态可掬的河马等等;CodeMonkey的画面风格非常卡通和可爱,不会带有负面或暴力等不适合孩子看到的画面;动画音效也被巧妙设计,让孩子容易进入故事,获得成就感。这一点在之前的两届训练营里得到了家长和孩子们的充分肯定。也正是因为这些优秀而有趣的特质,使得CodeMonkey出现不到一年就让全球几百万的孩子们喜欢上编程。
相反,普通而无趣的编程产品会让孩子觉得编程无聊,并且这种观念一旦形成,改过来有一定的困难。在香港,早期主要在中学里教Logo编程,但因电子龟昂贵,学校就用画出来的龟代替,可是不少中学生觉得控制画出来的龟有点无聊,因此对编程的学习兴趣不大。现在,出现了很多新的编程产品,包括CodeMonkey、Scratch。很多学校包括小学开设编程课程,广受家长和孩子们的欢迎。
image其次,CodeMonkey有助于孩子学习到通用的编程知识和清晰的思维习惯。CodeMonkey在200关游戏里的编程知识点与常用的计算机编程语言(比如C++,Python,Java,JavaScript)都是相通的,涵盖计算机编程领域里的大部分概念和知识,包括对象,变量,函数,循环,条件,逻辑,判断等语句以及面向对象的程序设计思想。游戏难度逐渐增加,让孩子在思考和学习中不知不觉地提升了“化复杂为简单”的解决问题能力。如果孩子希望进一步挑战自己,CodeMonkey的特技模式可以让他们进一步得到提升。
image此外,CodeMonkey在执行代码的时候,还会自动高亮每次执行的那一行代码,并且在动画里有所反馈,让孩子直观地理解代码在运行过程中到底发生了什么,这有利于帮助孩子在学习编程过程中形成清晰的思维习惯。
第三,CodeMonkey的模块化的编程模式方便孩子们通过点击代码模块写代码,大大降低了编程难度。这是CodeMonkey专门针对青少年学员的设计,也是区分青少年和成人的编程产品的重要因素之一。通过学习CodeMonkey,孩子们可以熟悉和掌握CoffeeScript语言,这是JavaScript编程语言(在工业界中被广泛使用)的简化版本,为未来学习Javascript或者其它编程语言提供了很好的缓冲。孩子们在学习编程的过程中还会不断地运用阅读,理解,逻辑,计算的能力去分析和解决问题。这些能力还可以用于孩子的其他方面,是通过CodeMonkey学习编程的副产品。
从我们对市场上少儿编程产品的调研、编程课程的开发经验和广泛的学习反馈来看,在比较流行的编程学习产品CodeMonkey、Scratch、Minecraft,以及开发能力较强的C++、Python等语言中,CodeMonkey依靠强大的优势和广泛的认可成为青少年学习编程的最佳入门产品。
image我一直相信,这个世界上唯一不变的规律就是万事万物都在一直变化着。在现实世界里,计算机编程有着越来越广泛的应用前景,同样预示着越来越多的机会。为积极适应未来的变化,孩子们在熟练学习CodeMonkey的200关之后,需要进一步学习开发能力更强的编程教育产品,来保持和增强他们的优势和自信。
那么在CodeMonkey之后,我们应该让孩子们学习什么呢?在计算机领域有一个共识,学习编程的最好方式就是项目驱动,即在实际项目中学习并同时使用编程知识。所以我给出的建议是,在孩子们有了编程的学习兴趣和基本能力之后,可以让他们在一个个相对熟悉又充满新奇的项目里不断提升编程能力,提升分析问题、解决问题的能力,持续加强自己在编程方面的优势和自信。比如,可以让孩子继续尝试CodeMonkey的自由关卡。让孩子们尝试自由关卡可以发挥孩子们的想象力,让他们有创作的机会。
image考虑到孩子们接触编程有先后差异,我建议对不同的孩子采用不同的编程产品进行后续的编程教育。对于较晚接触编程学习、对编程还有点陌生的孩子们,我建议他们在完成CodeMonkey的练习之后,可以根据合适的教程、课程学习Scracth编程。这样即可以让孩子们继续保持对编程的兴趣,同时也让他们通过完成一个个有趣的项目来更深入地了解编程。在孩子们可以熟练地通过编程完成项目之后,他们就会深刻体会到如何利用把一个复杂的问题分解成一个个小问题并且逐个击破。而对于那些接触编程较早、对编程比较熟练的孩子们,我建议他们可以接触MIT App Inventor,根据合适的教程和课程来设计各种功能的手机应用。同样拥有图形化的编程界面,CodeMonkey拥有严格可控的编程环境,而Scratch和MIT App Inventor可以让孩子自由发挥。
image当然,等孩子完成项目的能力逐渐强大和成熟之后,就可以开始接触和学习开发能力更强的计算机编程语言。可以考虑让孩子们学习与CodeMonkey结合紧密而更自由的JavaScript语言,或者通过Minecraft学习入门级的Python语言等等。孩子们依然可以采用项目驱动式来学习编程语言。在完成每一个项目之后,孩子可以通过总结这个项目的各个方面,比如如何把整个项目化解为一个个小问题、有什么之前没遇到过的难点、怎么拓展使得项目变得更完美等等,来增进自己开发、管理项目的经验。在现实世界中,这些编程项目可以包括(用JavaScript举例),运用JavaScript结合HTML语言编写网页、在AdobePhoneGap开发跨平台的手机应用、与硬件(比如Arduino,树莓派)结合开发一个解决现实问题的产品原型等等。
image值得注意的是,孩子们学习编程并不是在未来成为程序员。这就好比孩子们学习音乐并不是为了在未来成为音乐家。孩子们尽早学习编程,可以尽早地体验编程之美,说不定从中找到自己感兴趣的事业。尽管孩子们未来的事业可能和编程不沾边,他们在编程学习里得到的快乐、优势和自信,“化复杂为简单”的做事哲学,分析、解决问题的能力会让他们受益终身。
网友评论