关于儿童编程的几点思考

网友投稿 2018-02-26 23:16

https://cdn.china-scratch.com/timg/180228/231622BQ-0.jpg

我为什么选择从图形化编程语言入手,而不选择诸如机器人编程之类的儿童编程培训呢?

不管是图形化编程语言,还是机器人编程,都能很好地训练孩子的逻辑思维,但是在创造性思维训练上,图形化编程语言的主题范围会更开放,其几乎可以涉及各门学科。比如可以通过让孩子设计完成一个故事场景,融合语文学科;让孩子完成一个相册,融合美术学科;让孩子完成一个曲子的创作,融合音乐学科;让孩子创作一个通过割圆术来计算圆周率的演示,融合数学学科等等。在主题选择时,针对孩子的兴趣爱好,可以有不同的趋向。

孩子天生具有的创造力,我们该如何来保护?

孩子天生就具有创造能力。去年某节课,我设计的场景是让孩子们完成蜗牛爬井数学题目的演示,为了保护孩子们的创造性,我没有规定孩子非画成什么样的井,演示动物倒底是蜗牛,或者乌龟,还是青蛙之类的等等。但是很有意思的是,孩子的创造能力远远超乎我的想像。当时共三个孩子,分别来自四五六年级。这三个孩子给自己设定的场景分别如下:

1、四年级孩子完成了“女巫被士兵追杀的场景”,程序一开始他就通过“说”模块展示了故事背景“我是xx城堡的女巫,我正在被士兵追杀,我需要爬出一口井,井深x米,前面有士兵堵截,所以要回退x米,请问我要几天才能爬出井?”。

2、五年级孩子完成了青蛙跳井的场景,青蛙白天向上跳井,晚上睡觉时会下落,完成的场景中有白天晚上的背景切换,晚上青蛙睡觉时会有呼呼声等等。

3、六年级孩子完成的是星际穿越场景,说我们要从地球飞到另一个星球去,但因为有地心引力的作用,会被拉回来,然后问要多少时间才能飞到另一个星球。

所以设计开放性的主题对于保护和激发孩子的创造力有多重要,由此可见一斑。这样的课程模式,无疑会增加授课难度,因为当我们需要帮助孩子解决问题时,势必得先了解他的实现意图和逻辑,再来帮助他分析和找到问题所在,而每个孩子的实现想法都会不一样。

孩子上初中了,可是以前没有接触过编程,是直接学Python或JavaScript之类真正的编程语言,还是也要从图形化编程语言入手?

首先,我并不认为图形化编程语言就不是真正的编程语言了。因为Scratch受当时实现技术的限制,用该工具开发的作品无法通过移动设备进行传播,但零码台重构了它(参见《我重写了麻省理工开发的Scratch》),通过零码台打造出来的作品,可以通过各类集成了浏览器内核的App(包含PC和移动端浏览器、微信等)进行传播,甚至可以直接将孩子的作品打包成独立的App。所以以下我会用代码式编程语言和图形化编程语言来进行区分。

我认为图形化编程语言和代码式编程语言只是表达方式上和可实现功能范围上的不同。其实针对代码式编程语言,也有高级和低级之分,适用范围也各不相同。

图形化编程语言通过图形化的表达方式,将抽象化的编程语言,转化为了形象化的图形积木模块,首先从感观上排除掉孩子对编程代码的恐惧,同时零码台有英文版和中文版可以任意切换,让暂时有英语障碍的孩子在进入编程世界时减小了门槛。

图形化编程语言在可实现功能的范围上与代码式编程语言相比,有其局限性,但随着零码台的不断迭代,我们将提供越来越多的积木模块,让孩子们可创作的作品范围越来越广泛。

作为初入编程世界的孩子,如果还只是让孩子试探性地看看是否对这门课程有兴趣,或者家长想培养孩子的编程兴趣,那么我建议不管是小学生还是初中生,都可以从图形化编程语言入手,但对于高年级的孩子或者接受能力强的孩子,根据孩子的接受度及投入度,我们可以缩短从图形化编程语言进入代码式编程语言的周期。

当然如果孩子学习编程的目的就是为了升学加分,我们另当别论。

为什么要学编程?

1、我认为让孩子学习编程的主要目的并不一定是为了让孩子成为程序员,而是通过编程这个过程达到训练孩子多种思维能力的目的,参见前文《通过编程能培养孩子的哪些思维能力》。

2、从适应时代发展的需求来看,我们需要让孩子掌握一些编程知识,可以说以后大部分的生产和创造都将离不开计算机。

3、让天生就具有良好创造力的孩子,多一条途径去实现和表达出自己的创造想法。而编程是一个容易让孩子实现创作,相对简单的途径,这种即时能达成的创作的愉悦感和成就感,同时又能刺激孩子的学习兴趣和信心。

4、对于爱玩游戏的孩子,可以引导孩子去了解游戏背后的实现原理,让孩子知道原来游戏是这样设计和制作出来的,游戏的规则是可以根据人为意图去调整的,揭开游戏的神秘面纱,从而部分削弱游戏对孩子的引诱力。

--end--

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