欢迎来访墨菲定律受益网站,本网站为你提供时间管理方法,百度在线阅读书籍

墨菲定律

阅读墨菲定律书籍一生受益

儿童学编程,教什么编程语言好?

作者:jcmp      发布时间:2021-03-21      浏览量:82141
儿童学编程,还是得看目的是什么。目的不同

儿童学编程,还是得看目的是什么。目的不同,适合的语言自然也就不同了。我来分析一下三种比较常见的情况。

一. 让孩子玩一玩,顺便了解点编程知识

如果孩子比较小(比如小学低年级),而且只是想让孩子玩一玩,那么乐趣就是最重要的。如果能让孩子主动玩编程,那是最好的,所以界面友好,编程门槛低的 Scratch 就很适合。

这种语言的界面是长这样的。

非常卡哇伊,就像看卡通片一样。孩子也不用自己输入代码(很多小孩子其实还不太会打字),只要拖动上面的积木,把它按照顺序堆积在一起就行了。每个积木都表示一个命令,搭完积木之后就能够执行了,就像玩游戏一样。

而且 scratch 很适合用来做小游戏和动画,孩子会很感兴趣。就拿用 Scratch 做小游戏来说吧,其实有很多玩法。 比如等孩子做出了自己的游戏,大人还可以跟孩子一起玩那个游戏。比一比谁玩的分数高,然后在这个过程中也可以不断地改进游戏。不但提高了孩子的动手能力和创造力,还能加强亲子关系:)。

顺便我想介绍一下 Scratch 的作者雷斯尼克的书《终身幼儿园》中的一些理念。这本书里作者提出了我们应该像在幼儿园中一样学习。那幼儿园有什么特别的吗?有,直接摘录两段吧。

所以让孩子自己 在实验和探索中学习 就是这本书的核心理念。在这个理念下作者又提出了一种培养创造性的学习法——4P 学习法。4P 就是指项目(Project)、热情(Passion)、同伴(Peers)和游戏(Play)。

但是国内这种少儿编程的社区还不是很成熟,可能无法像书中这样找到很多同伴进行分享和协作。而且 Scratch 编程班大部分还就是讲课,练习,做题的模式(跟 Scratch 作者的设想背道而驰。。。)。

但是我们可以活学活用,让孩子在线下做 4P 学习法,让孩子们在玩中学。

没有人会觉得一颗弹珠,或者一个乒乓球有什么好玩的,但是如果有几个小朋友可以一起玩、比赛,那么打弹珠、打乒乓就是一个非常非常好玩的游戏了。所以对于孩子来说,只要不是一个人,有了竞技性,很多普通的事情都可以变得很有意思。

Scratch 也一样。Scratch 是一个很好的工具,能让孩子们自己做游戏自己玩。 最重要的是要有很多小孩子一起做,一起比赛,一起玩。 如果孩子们感受到了乐趣,为了更好地在孩子们面前炫耀,自己也会往深了学的。而且在不知不觉中,动手能力和创造力都会得到提高。

比如孩子可以做出这样的游戏:

改变一下思路,其实孩子能玩的东西有很多。

二. 提高孩子的思维能力和逻辑能力

对于稍微大点的孩子(小学高年级到初中),我们会想用编程锻炼锻炼孩子的思维能力。如果能同步提高其它学科的成绩就更好了。那么我建议不要学 Scratch 了,这门语言虽然门槛非常低,但是还是一门玩具语言。封装得过于精致反而不利于深入的学习。 建议学习它的前身—— Logo 语言。 Logo 语言在培训机构比较少见,其实在十几年前,很多小学是会教这门语言的。不过那时候教的目的还是为了做题和考试。

Logo 语言的界面是这样的。

在这个语言中,孩子可以通过命令控制乌龟(就是中间的小三角形^_^')的行动。比如有:

还有其它的一些命令,但即使只有上面的几个,已经能做很多事了。

最初,为了让孩子能在编程中学习数学,Papert 才设计发明了这门语言的。在作者写《Mindstorms》这本书里面,作者提出了一个很有力的概念——微型世界。微型世界就是一个由少数几条规则构建的世界,比如由点,线构成的欧几里得世界。由速度、加速度、力等构建的经典力学世界。而只要稍加引导,就能让孩子在某个微型世界中自由地探索,从而学习到很多知识。

举个例子,比如我们可以让孩子在欧几里得微型世界中探索:

比如如果运行 fd 50 rt 20 fd 100。 看看小龟是怎么运动的。

现在可以让孩子开始构建多边形的世界了。

先画一个最简单的多边形——正三角形

看看怎么画呢?

终于完成之后,还可以画正四边形(正方形)、正五边形、正六边形。

想一想,能想到一个统一的规律概括怎么画正多边形了吗?能用这个规律画正十边形吗?

最后,用这个规律,是不是可以画一个圆出来?

你看,这样一个小小的课题,孩子就能学到很多关于多边形的知识,而且非常深刻。

那么这种方式跟传统的纸笔,尺规作图进行学习有什么不同呢?

最大的不同是计算机是可以交互的,而且反馈非常及时。我们不需要告诉还是做得对还是不对,孩子只要运行一下就能看到结果。而且计算机会不厌其烦地纠正孩子的思维上的漏洞,直到得到设想的结果。同时,就像做游戏一样,孩子也会不厌其烦地纠正自己编写的代码的 bug。

三. 为了更好地升学等原因,希望提高编程能力

如果纯粹是为了提高编程能力,最好的方法是学习算法。 程序=数据结构+算法 ,可不要小看这个公式,提出这个公式的人可是凭借它获得了图灵奖(计算机界的诺贝尔奖)的。而学算法的时候,数据结构也是不可避免要学的,所以编程里面最难,也是最核心的部分都会学到。

对孩子来说,学算法最好的方式就是跟着一本算法书学,然后同步刷 noip 的题目。当然首先要学语言,建议直接学 C++,因为过几年 noip 比赛不能用 pascal,只能用 C++ 了。

算法书的话刘汝佳的《算法竞赛入门经典》很好。如果能把后面题目都独立做出来了,编程水平即使放到大学也是第一梯队的。

刷题的话可以在 http:// noipoj.cn/ 中刷。这里面有很多很多不同难度、知识点的题目。每做一题都需要编写一个程序。然后把程序提交到网站里面,系统就会用你的代码跑内置的数据,看结果是否正确,只有所有的数据结果都正确,这题才算做对了。同时,题目还会对程序的运行时间、内存有限制。

摘选一个还挺复杂的题目^^: