少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!

2020-01-02 19:26:55 评论 2,505

上周的分享文章《少儿编程那么火,真的有用吗?有什么用? | 逃妈说编程(上)》推送后收到了很多鼓励,

少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
于是快马加鞭地赶出了下篇。

其实本来写完上篇后我脑袋里对下篇的框架已经有了大概的构思。但后来从文章的留言,读者微信群里的讨论,以及大家私下给平台小助手、给我发的微信留言中发现,“咦,原来大家最关心的问题跟我之前的设想还是有点儿出入哦~”。于是我稍微做了些调整,以回答几类典型问题的形式,争取把大家最想知道的,和我最想说的,揉在一起。

少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
第一类问题:编程和乐高和机器人,究竟是啥关系?

——“编程就是学乐高吗?”

——“编程就是学机器人吗?”

——“编程就是学乐高机器人吗?”

——“一直弄不懂编程,好多积木拼装也说是编程,感觉好糊涂啊”

……

这是最出乎我意料的一类问题,但居然是问得最多的。看来不少麻麻被近几年儿童教育领域冒出来的新概念新名词给搅得有点儿昏菜了。问题稍稍有点跑题,我下面的回答可能也会有点跑题,BUT,没关系,只要是对娃有用的,咱们就撸起袖子把它啃透彻搞清楚!

首先,乐高是儿童拼装搭建积木的大品牌,旗下包括很多很多的系列产品,我把它们按功能分成三大类:

少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
砖块搭建类大家应该非常熟悉,绝大多数孩子刚开始接触乐高时玩的就是这一类。我们平时给孩子买的很多一盒一盒的场景类、建筑类主题积木,或者散装的积木桶(Lego Classic系列)都是这种类型。孩子可以按照图纸说明一步一步从头到尾,或者凭自己想象创造拼搭出成品。它最大的特点是——不能动。

少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
砖块搭建玩熟了之后,渐渐地可以让孩子接触机械搭建类,机械搭建时会用到轮子、齿轮、梁、栓、马达、控制器等器件。我们平时给孩子买的很多一盒一盒的汽车、火车、飞机、变形金刚等等主题积木,或者专门的科技积木套装(Lego Technic系列)都是这种类型。它最大的特点是——能简单地、重复地动。

少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
乐高机器人则是在砖块和机械搭建的基础之上,结合了编程控制。比方说上面这个挖土机的手臂能通过齿轮被马达所带动,它是个机械搭建。但如果它还能连接电脑程序,让它可以自动地从指定的A点挖些土搬到B点,就是个机器人了。它最大的特点是——想怎么动就怎么动,通过编程来控制。

所以,回答前面的问题,学乐高机器人是包括了学编程的。

BUT(注意是一个大大的BUT哦),编程只是乐高机器人的一部分,可以说是比较简单的一部分。比如就挖土机这个例子,编程要干的活很少,控制它走到A点,挖土,再跑到B点,倒土,完了,期间可能需要判断一下距离,角度,或者调用一下传感器,逻辑非常简单。可在没有图纸的情况下,怎么搭出这个能前进、后退、转弯,手臂能抬起放下,还能挖土、倒土的机器却是难点。没有这个灵活的机器,程序编得再好也没招,叫天天不应叫地地不灵。

去年逃逃和几位同学一起参加FLL(FIRST Lego League,FIRST乐高联赛),开始他们想当然地把团队分成一半一半,一半负责搭建,一半负责编程,后来发现要完成任务的瓶颈全集中在机械搭建上,编程则很简单,派一人搞定即可。

所以说如果想培养孩子的编程能力,我建议最好专门学编程,玩乐高机器人通常可能只有30%左右的时间会花在编程上,而且一般不会很深入(当然如果你要整个机器人去解魔方,编程的比重就会很大,但这种Project毕竟是少数)。乐高机器人的机械搭建部分很有挑战,而且非常培养孩子的综合能力,比如力学知识、空间思维、想象力、创造力、美感等等。只是说如果你的目的是让孩子学编程的话,通过乐高机器人学编程,有点像报了个“平面设计”的班来学画画一样。

第二类问题:学编程究竟该学啥语言?

——“6岁孩子学Scratch怎么样?”

——“那种拖块块看起来像玩游戏,不算正规编程吧?”

——“11岁学C++OK吗?”

——“现在Python很火,是不是该学Python?”

问这类问题的麻麻们肯定对少儿编程比较熟悉了。不过为了让大家都能看明白,我还是先解释一下这些Scratch、C++、Python是怎么回事,为什么会有这么多编程语言。

在上一篇我谈到编程的本质,用一句话来解释,就是和电脑对话,用电脑听得懂的语言,告诉它我想让它做的事。可电脑那台冷冰冰的机器能听懂啥啊?其实它只能听懂由0和1组成的序列。所以long long ago,程序员写代码都是靠在纸带上打孔,打孔代表1,不打代表0…

后来,打孔打得眼冒金星的程序员们受不了了,就纷纷开始发明新的编程语言,于是有了汇编、C、C++、C#、Java、JavaScript,Python…还有和这些语言相匹配的翻译器。这些翻译器能把它们翻译成电脑搞得懂的0、1序列,所以编程时只管用这些语言就好,剩下的就留给翻译器去办。比如在上篇说到的那个娃妈喊娃爸买包子的梗,用C++来表示就是这样:

If (看到卖西瓜的)

{

买包子(1);

}

Else

{

买包子(10);

}

再后来,一些有爱的程序员觉得这样的语言小朋友用起来太难了,那些“if”、”else”什么的很难记,所以又发明了一类拖拽式的编程语言。编程者不需要手动写代码,只需要将操作界面上的指令方框拖到主界面,并且对指令框做一些参数设置就好。这种拖拽式的编程语言有很多种,比如Scratch、Hopscotch以及国内的编程猫,前面提到的乐高机器人,用的也是拖拽式的编程语言。

少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
拖拽式编程语言

OK,有了这些背景知识,现在可以回答前面的问题了,主要有这些要点:

1、孩子一开始接触编程,建议从拖拽式的编程语言开始,难度低,上手快,孩子会比较感兴趣,一般5-6岁左右的孩子就可以开始;

2、无论是拖拽式的Scratch、编程猫什么的,都是正规在学编程,其中用到的编程思想和手动写代码是一样;

3、拖拽式编程语言有个局限,没法编写很复杂的程序,因为一旦程序逻辑很复杂的时候,满屏框框会显得很臃肿很混乱。所以当孩子学到一定程度(不一定需要按年龄来划分,只要孩子觉得拖拽式不能清爽地表达他想要的逻辑时),就可以转为更加专业的,需要手动写代码的编程语言了。

4、 究竟该学C++、C#、Java、JavaScript还是Python呢?

每种编程语言都有自己适用的一亩三分地。广义的编程可不仅仅是用某种语言编写代码,更重要的是该怎么用语言去操控它适用的环境。比如说你可能听过JavaScript用来进行网页开发,但要真正使用它得熟悉html,DOM,CSS,网页生命周期,浏览器渲染机制等等等等;而C++则适合写底层驱动,但也必须把操控的资源和硬件接口搞得一清二楚。@#¥%&()*&…逃妈你究竟在说什么?噢,这一小段搞不太懂没关系,我想表达的是:

因为孩子学的是基本的编程思想,而不是解决某个领域的特定问题,所以学哪个语言都无所谓,因为基本的编程思想在各个语言中是相通的。只有当真正去从事编程工作时,才需要根据要实现的功能选择一门合适的语言。而且,对于很多编程高手来说,换语言就像从使用Windows电脑换成使用苹果电脑一样,没什么难度,只要稍微适应一段时间就好。

如果非要排个先后次序,我比较推荐Python。Python的语法格式比较简单,孩子容易上手。而且从目前的行业情况来看,Python的需求量很大,学好了说不定暑假还可以去干个兼职补贴家用什么的^_^

第三类问题:孩子究竟该怎么开始学编程呢?

——“孩子完全没基础该怎么开始?”

——“几岁可以开始学编程?读绘本玩桌游还是直接用电脑编程呢?”

——“不想孩子老盯着电脑屏幕怎么办?”

——“推荐一些编程学习资源吧~”

有这类疑问的麻麻应该是想对孩子的编程学习做一个系统规划,所以下面我大致按照孩子的年龄和适合的学习方式和大家捋一捋:

1、 4岁以下

有没搞错,这么小就开始学编程?我之前也觉得夸张,但在美国还真有幼儿园专门为孩子设计了一些既能Get到编程概念,又有趣好玩的活动。比如这个叫“If then backyard coding game”(“如果…就…” 后院编程游戏)的户外活动:

少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
游戏的玩法是:

先选定一位小朋友当Programmer(程序员),别的小朋友当Computers(电脑)。

少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
Computers要根据Programmer的指令来做出正确的反应。从简单到复杂可以分为好几关:

第一关:“程序员”做一个动作,“电脑”们就要做相同的动作。练习“If …then…”的概念,对应的编程语句是:

If(Programmer举左手)

then { Computers举左手; }

第二关:“程序员”做一个动作,“电脑”们要做相反的动作。练习逻辑“非”的概念,对应的编程语句是:

if ( Programmer 举左手)

then { Computers(举右手);}

第三关:如果“程序员”做一个动作A,“电脑”们就要做相同的动作,否则“电脑“们做另一个动作B。练习”if…else“的概念,对应的编程语句是:

If(Programmer举左手)

then { Computers举左手; }

else {Computers 抬右腿;}

逃逃小时候我们也和他玩过类似的游戏,每人轮流扮演机器人,其他人发号施令。机器人每次只执行一条指令。比如想让“机器人”帮忙拿个东西,可以说“站起来;左转45度;抬左脚往前迈一步;抬右脚往前迈一步”…有时为了好玩还发出一些“循环”指令,比如“在听到下一条指令前请保持直行”,很快机器人就“撞墙死机”了,一通爆笑中孩子也大致Get到分解问题、顺序执行、循环,甚至“死循环”等概念。

这些游戏小宝宝的家长们可以参考,不过不要期望太高,处于这个年龄的孩子才不管你是“if…then”、逻辑“非”还是循环什么的呢,可以打发时间,顺便还能隐约Get到一些编程的基本概念就算赚到啦。

2、 4-6岁

如果从小阅读习惯培养得比较好的话,这个年龄段的孩子应该对书是很感兴趣的了。推荐两本编程的启蒙书,特别适合刚开始接触编程的小朋友。

一本是《Hello Ruby, Adventures in Coding》,中文名叫《Hello Ruby 儿童编程大冒险》,它是一本讲故事的绘本,却将计算机的很多小知识悄悄带入其中,用很多有趣的故事情节将程序设计中用到的概念介绍得很清楚,非常特别。

另一本是DK的《My First Coding Book》,我是在逃逃学校的图书馆里看到这本书的,DK的品质没得说,用非常童趣的语言囊括了几乎所有的编程概念,并通过翻翻、拖拉等方式模拟跟电脑一样的分步执行,好看又好玩。不过目前好像还没有中文版。

这个年龄还可以开始接触最简单的电脑编程了,推荐由美国麻省理工学院媒体实验室开发的ScratchJr,它是有故事书一样翻页设计的编程工具,程序指令很简单,界面卡通可爱,使用起来非常方便,很吸引低龄孩子。

不过从理解编程思维方面来讲,我更推荐孩子多玩编程桌游,好处是避免长时间对着电子屏幕,而且该练的能力也能练到。首推Thinkfun家的编程桌游,从启蒙到系统学习级,它家都有一系列的桌游覆盖,其中适合这个年龄段的是编程乌龟Robot Turtles,属于启蒙级别的。

3、6-8岁

这个年龄的孩子可以上真正的编程了,前面提到的拖拽式编程语言就很合适。推荐两个非常权威的编程学习网站:

一个是Scratch,是ScratchJr的进阶版,孩子可以通过拖拽方框来学写程序,也逐渐开始了解循环、判断等编程语言的基本功能。

另一个是Code。这是奥巴马倡导了全美“Hour of Code”编程活动,并提出要将编程引入学校后,美国教育部门专门创建的一个教K-12孩子编程的课程网站,非常系统和专业。

这个年龄可以使用的编程桌游是Thinkfun的编程大师Code Master,简单的关卡和编程乌龟的玩法类似,但到后面设计闯关路径时难度会变大,逻辑和步骤也更加复杂。

4、8岁+

这个年龄段孩子的逻辑思维应该已经发展得很不错了。如果是这个年龄才刚开始接触编程,可以从上面提到的Scratch和Code,拖拽式的编程语言开始,也可以直接从手动编写代码开始。

如果是手动编写代码,我特别推荐苹果IPad(只在IPad上,IPhone上没有)上的一款编程APP——Playground,它其实算是从拖拽式编程到手写代码编程的过渡。代码不需要孩子一个一个字母敲出来的,Playground 界面底部会有可选项,直接点击选择就好。

少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
孩子虽然不需要敲代码,但能看到源代码完整的样子,这跟他以后真正要写程序时使用的代码是一模一样的,这点会让孩子很有成就感。Playground逃逃用了很长一段时间,每次通关都挺得瑟。

当然,顺利过渡之后,就可以完全进入手写代码阶段了,具体选择学什么编程语言可以参照前面“第二类问题”中所谈到的。

这个年龄段无论孩子是否已经开始学编程,还是正在学什么编程语言,我都特别推荐一套桌游——Thinkfun的“编程三剑客”。

少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
这是Thinkfun在2017年推出的一套非常专业系统、也是一套真正意义的学习型编程桌游 ,获得全美“Hour of Code”编程活动的“Perfect Game”(完美编程游戏)殊荣。逃逃用了将近一年,它的难度不低,对编程的核心知识点和培养的思维能力覆盖很完整,把它玩通了,编程中最核心的知识点也都吃得透透的了。特别推荐给每一位打算开始好好学编程的孩子,今晚推送文章的第二条有这套桌游的详细介绍。

至此,儿童编程系列的上、下篇都写完了,希望对大家有帮助。正如我在上篇中谈到的,学编程不等于一定要当码农。我大学同学毕业后头5年大多都还在IT行业,在写程序,不过10年后都七七八八地“跨界”去了,我就是其中之一。编程中积累的经验和能力让我们在其他行业也游走得尚好,因为它不光是一项技能,更是培养一种思维,一种观察世界、思考问题的角度。

所以我建议,每位孩子都应该学习编程。咦,这句话怎么似曾相识,噢,跟这位大咖说的很雷同啊~

少儿编程这么火,编程启蒙到底怎么做?这篇文章说透了!
PS:我把上面提到的几个网站资源整理了一下,有需要的同学可以私信我,回复“编程”就能得到,直接点击就可以访问了。

涛涛妈
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: