关于少儿编程的一点想法

网友投稿 2018-06-08 08:33

        记得我自己第一次跟编程打交道,是在小学的时候——那还是486,586的时代。当时学校每周有一节课“上机”,老师教的是一种叫做LOGO的计算机语言。在DOS敲了几行命令,开始运行LOGO后,你就会看到黑色的屏幕中间有一个小小的正三角形,那只著名的 “乌龟”(我后来才知道)。然后你就可以开始敲打命令让这只“乌龟”画出各种各样的图案了。很可惜,好像这门课程只维持了一个学期。等到我真正再次接触计算机,已经是大学的时候了。

https://cdn.china-scratch.com/timg/180610/0S3533912-0.jpg

LOGO语言界面

        但是很奇怪的是,那时候的经历我现在依然历历在目;在后来的回忆中,我越来越觉得当时那短短的一、二十节课对我的影响真的很大。即使在我选择英语作为我的专业之后,我对编程的兴趣一直有增无减,而自学编程的这个过程中所运用到的种种学习方法、思考方法,也对我的工作产生了巨大的影响。理性的对待各种问题,正确的分析并找到问题的解决方法,这些编程思路,让我在自己的每一份工作中都收获良多。而更重要的是,整个过程中,我一直在不停的学习,因为我从学习编程中学会了怎么学习。

https://cdn.china-scratch.com/timg/180610/0S3531063-1.jpg

        教自己的孩子学习编程,也不是我一开始就有的想法。但是当他开始向我询问越来越多的问题,对各种各样的问题有着持续的关注和兴趣后,教他学习编程好像就变成自然而然的事情了。在编程的世界里,他将会一直碰到问题,一直尝试去解决问题,一直挑战、一直获得满足,然后再继续挑战。在现实的学习、生活中,有何尝不是如此呢?

https://cdn.china-scratch.com/timg/180610/0S354C11-2.jpg

        我还尝试让他把学到的其它内容运用到编程中。比如让他画出自己的角色,做成动画(美术);让他做一个小互动动画,自己配音(语文、英语);让他自己制作数学计算题并回答(数学)。最近他开始接触看图作文,我才发现这个好像也能跟编程扯上关系的:首先是仔细观察(分析)图画,找到图画中的要素,然后对这些要素进行抽象加工、组合。这就像是在编程,只是这里用的是中文,而不是编程语言。

https://cdn.china-scratch.com/timg/180610/0S354BZ-3.jpg

        说到编程语言,其种类估计不会少于人类所有的语言的种类。所以选择学习哪种语言似乎是一个不可避免的问题。对于少年儿童来说,我觉得MIT(美国麻省理工学院)开发的Scratch图形化编程语言是一个很好的选择。虽然说是语言,但是它其实没有复杂的文字、语法;所需要的只是使用鼠标拖放预设的积木来组建不同的程序——是的,就跟搭建积木一样。图形化不但解决了难懂的语法的问题,也使得编程本身变得更加有趣。虽然比起其它编程语言,Scratch本身可能没有那么强大,但是它所传递的编程的知识和方法,跟其它的编程语言是一样的。掌握了Scratch编程,对以后学习其它的编程语言是有一定的帮助的。

https://cdn.china-scratch.com/timg/180610/0S3541F4-4.jpg

Scratch舞台

https://cdn.china-scratch.com/timg/180610/0S3544P9-5.jpghttps://cdn.china-scratch.com/timg/180610/0S3545T8-6.jpg

Scratch脚本(积木)

        大部分人把编程想象成很复杂的一件事情。是的,它可以很复杂;但是也可以很简单。它可以是解决一个大型公司问题的方案、甚至是影响民生的软件;也可以是一个满足你小小好奇心的结果、或是一次跟朋友一起分享成功的喜悦。

        少年儿童学习编程,并不是一定就要他们编写程序去解决复杂的问题,也不一定就是为了让他们以程序员作为目标来学习。除了让他们能够了解一些编程的知识,更多的是通过学习编程的这个过程,去培养他们思考问题、解决问题的思路,并在这个过程中不断地拓展他们的知识面。另外一个很重要的——但经常会被忽略的方面,少儿编程不但可以培养小孩子独立思考的能力,更加可以培养他们互相学习、分享知识的能力。通过让孩子们去合作完成一个编程任务,可以让他们在这个过程中学习到很多在单独学习所无法获取的知识。

https://cdn.china-scratch.com/timg/180610/0S354Lb-7.jpg

        碰到问题(或者自己提出问题)+挑战问题+(解决问题+分享交流)=获得满足。这就是少儿编程的循环学习公式。

https://cdn.china-scratch.com/timg/180610/0S3541213-8.jpg

        最后有一点个人想法,想趁这个机会说出来(因为最近也让孩子学习围棋了)。下围棋,也是一种被认为可以锻炼逻辑思维能力的方法。我个人觉得学习围棋和学习编程,既有共通的地方,也有比较大的差异:

        1) 围棋是竞技体育,是一种零和的游戏。所以我觉得它能锻炼孩子承受挫折的能力,以及培养他们公平竞争的意识;而编程在这方面可能刚好相反,它更多的是培养孩子协作的意识。

        2) 围棋是不允许悔棋的,一旦下子了就不能重来;但是编程刚好相反,你必须要不断的找出错误,不断的尝试,才能做出比较完美的程序。

        3) 围棋可以培养大局观。有时候为了大局,你可能必须舍弃一部分棋子(阵地);但是编程是很严谨的,每个细节都必须照顾到,只要有一个地方欠缺考虑,可能就会导致程序错误。

        总体来说,我觉得围棋和编程虽然都可以很好的锻炼逻辑思维能力,但是他们是两种不同的东西,而且在很多学习方面甚至是可以互补长短的。自从AlphaGo打败了围棋世界冠军后,有的人也许觉得学习围棋不如学习编程。但是正如我上面所说的,学习围棋和学习编程,并不是排它的,而是两种很好的可以同时学习的内容。所以对于喜欢围棋的小孩,我觉得学习编程,也许可以增进他的棋艺,因为它可以给你一种新的角度去思考。

https://cdn.china-scratch.com/timg/180610/0S3542557-9.jpg

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com