前期通过公众号发了一些关于少儿编程教育的推文,录制了一套Scratch入门视频课程,就吸引了很多家长过来问我,什么是少儿编程?如图:

家长普及课:到底什么是少儿编程教育?-少儿编程网

所以今天,我来给大家解除心中疑惑来了。到底什么是少儿编程教育?

我今天分享的内容有四个方面:

第一个,为什么全球都在重视少儿编程教育?不单单是中国,其实国外更加重视少儿编程教育。

第二个,家长对于编程教育存在怎样的误区?

第三个,少儿编程到底是在学什么?是在学代码还是在学什么?

第四个,学习编程,能培养孩子哪些能力?

(一)为什么全球都在重视少儿编程教育?

目前,编程教育在全球范围内都在快速的普及,据我所知,目前大概有16个欧美国家已经将编程这门学科作为学校的日常课程。比如说12年,日本中小学生开始学习编程,13年,美国总统奥巴马号召全美学生学编程,现在美国大概已经有500万的青少年在学习编程,14年,英国把编程作为5到16岁学生的必修课,17年,新加坡在中小学考试中加入编程,我们的宝岛台湾18年也把它纳入初中和高中的必修课,17年我们看到我国也推出了一个新一代人工智能发展规划,也提到要推广全民智能培训,推广编程教育。

那么一个问题来了,就是为什么目前包括我们国家在内,这些国家都在大力的推广编程教育?

我认为其实这是因为目前我们整个商业社会环境的深刻变化,造成的人才需求的变化,从而导致了大家对于编程教育的一个强烈诉求。

其实今天的世界,我们可以看到身边已经遍布程序和算法。比如说我们打开手机,看到微信,滴滴打车,去银行取款机取款,在电脑上打开网页,或者淘宝上买东西,这一切其实都是和程序和算法有关的。今天我们能叫得上名字的一些明星公司,比如说苹果,亚马逊,国内的腾讯,阿里巴巴,百度,这些公司其实都是算法公司。他们都是跟程序有非常大的关联的公司,而且现在有一个概念非常的火爆,那就是人工智能,也就是说人工智能的大幕正在缓缓拉开。

那么,我们看了国内外这样的商业环境,我们其实不难预测,未来完全没有计算式思维训练的人员,至少是在高科技企业里面,他的作用会越来越边缘化,而对这种复合型计算式思维人才需求的激增,这正是发达国家意识到,从孩子培养编程思维是未来国家竞争力的重要因素。

那么各国其实也意识接下来人工智能的时代,少不了符合计算式思维人才的需求,所以这也是为什么在大环境的驱使下,这么多国家,包括我们中国,对于编程教育越来越重视,而且把编程教育从娃娃抓起,那么这就是其中的原因。

(二)家长会存在这样几个误区

第一个误区就是,一听到编程以为这个就是在写代码,然后用一些天书一样的语法结构写代码。其实,我们的今天孩子学编程,是一个非常丰富多样的形式。小孩学习编程,是采用积木快拖拽的方式来学习编程它的色彩很鲜艳,然后都是在拖动积木块。孩子对积木块,天生都很喜欢,在编程的时候,通过这样的形式,就会把孩子的兴趣调动起来。

少儿编程,更多的是引导、启蒙、入门的作用,通过用图形化界面、简单拖拽代码块的方式,创造出各种好玩的游戏并获得成就感。小孩不需要写代码,呈现给他们的都是积木块,也就是小孩只需要有理解问题的能力就可以学习少儿编程。

例如Scratch是一种图形化编程工具,利用它可以轻松创建自己的交互式故事、动画、游戏、音乐等。Scratch软件的特点就是让编程变得像搭积木一样简单,只需采用拖拽、组合的方式就能轻松实现,程序运行的结果会即时显示在舞台上。Scratch简单易学,趣味性性,能充分调动少儿创造力的探索性实践活动,是真正的“脑力冲浪”,是充满创造乐趣的编程课,是令孩子惊奇的魔法。

还有一个就是家长一听到少儿编程就浮现机器人,乐高。这也是对少儿编程课程类型不清楚。少儿编程课程的类型也是很多家长不明白的地方。由于机器人编程发展比较早,所以很多家长对机器人还是听说一些,一提到少儿编程,很多家长就想到机器人编程。

其实少儿编程课程分两大类型:软件编程+硬件编程(机器人编程)

软件编程:基于Scratch、Python、C++等编程语言给学生搭建可视化图形编程平台和代码编程学习平台等,通过编程游戏、网页、动画、音乐等来学习编程语言。Scratch是由美国麻省理工学院设计开发,能够将复杂的Python和C++等代码转化为简单的图形化的模块,通过积木式的拼搭来完成操作。而Python和C++则是要了解编程的代码和算法等基础理论知识,为学习人工智能知识建立坚实的基础。课程注重的是培养孩子的逻辑思维,独立思考,和分析问题的能力。

硬件编程:也叫机器人编程,通过机器人套件或者通过PicoBoard、Arduino等开源硬件平台构建模块式的机械部件、电子元件和传感器拼搭组合来学习编程。硬件可以作为载体来实现编程程序输出展示,通过硬件平台和软件平台的组合完成编程项目。机器人编程更偏向硬件偏向物理的一个方面,培养的是孩子的动手能力。课程的内容有硬件知识和编程知识两部分,但硬件知识的比重往往会多于编程知识,硬件知识主要是物理学,物理学当中的一些简单机械原理,电子电路,还有电机方面的知识。

第二个误区, 有些家长认为我的孩子又不想当程序员,为什么我的孩子要学编程?其实,我们今天孩子来学习编程,他不是为了成为程序员,而是我们发现通过学习编程,孩子的逻辑思维能力,设计策划能力,学习能力,沟通协作能力等等,这些方面都能得到提升。所以,今天看来,学习编程,它是学习思维,他们这种思维在未来的人工智能时代,应该是不可或缺的。我们在今天学习编程是一个开发你的左脑和右脑的一个学科,总结起来讲就叫做诗与远方,它能够同时开发左右脑了。不仅有逻辑思维的训练,也有设计策划能力的训练。

第三个误区,还有一些家长认为编程就好像当年学奥数一样,他们关心孩子学习编程可不可以参加竞赛?可不可以升学加分? 其实我并不希望,编程教育走向那一步,那样并没有让孩子们享受到编程的乐趣。我觉得都不是我们学习编程的根本出发点,我们学习编程的根本出发点就是编程更多地在训练孩子的思维。

第四个,有些教育机构宣传,在AI时代孩子不学编程就是文盲。我认为也是一个忽悠人的说法。说实话,今天我们讲的人工智能跟我们孩子学编程这件事情,并没有直接的联系,孩子学编程其实是在学习这种思维,他并不是在学习一种工作技能。AI时代,有很多的工作都会消失,比如说服务员,比如说一些重复性的劳力,人力工作,或者比如一些纯粹跟物体打交道的工作。但是,孩子学编程这件事情,就是学了也不见得就能找到好工作,这就好像今天我们的孩子学习英语一样,那么学了英语,不见得未来就一定能找到一份好工作。但是,我们知道,如果孩子不学英语,那么在未来很有可能会被边缘化。这个也是我们对于编程教育这样一个态度。在未来,你学了这个编程,掌握了计算式思维,不代表你就能够完完全全的找到一份很好的工作,或者怎么样怎么样,但是,如果你不学,那么你很有可能被边缘化掉,这倒是非常有可能的。

(三)学编程到底是学什么?

我们有过编程经历的人会有这样的感受,计算机就像一架自动钢琴,而编写程序就和音乐家作曲一样,当你编写好程序之后,计算机就会来按程序执行。

但是,程序可能不会像你预期的那样工作,他可能会失败,为什么会出现这种情况呢?有两种可能性,第一个,你自己的想法本来就是错的,那你要仔细思考一下,你到底想要做什么?第二种呢,你的想法很好,但是你的程序没有写对,也就是说,你没有把你的思想通过程序准确的表达出来。

那么,我们就是要确定的目标,想清楚要做什么,然后把它清晰的表达出来。任何任务的实现,其实都是由每一个分解的任务构成,任何一个分解任务的错误或者瑕疵,都会影响最终的结果,而在这个分解任务的过程中,需要我们的孩子去认真的对待,所以说,任务分解的方法,以及应用程序实现的过程,会对孩子的思维方法,思维方式,产生潜移默化的影响,这个其实就是我们在学习编程的过程中最最关键的一点。

孩子在学习编程的过程中,除了学习这些漂亮的简洁的代码,或者是严格规范的语言,最核心的其实是要给孩子一种思维,我们把这个思维叫做计算式思维,教会孩子用计算机的思维去思考这个世界。

少儿编程他不是那种枯燥的代码,而实际上编程是一个语言,它是一种表达方式,他是在用一种全新的视角来思考和看待这个世界。

接下来我们来仔细聊一聊,到底什么是计算式思维。

计算式思维,谷歌公司把计算式思维概括为四大步骤。

第一个就是分解问题 ,就是能够把现实生活中的复杂的问题,逐步拆分成更好理解,更可执行的小问题,这个叫做分解问题。

第二个就是模式识别。复杂问题分解完之后,根据已有的知识和经验,找出新问题,以前解决过问题的相似性,举一反三,琢磨出其中的规律,这个叫模式识别。

第三个就是抽象思维,就是聚焦在重要的关键信息上面,将问题涉及的数据抽象到数据结构对应的编程里面,比如说一个变量,数组链表等等,然后能把数据处理过程可以重复执行的部分抽象成函数模块,通过重复循环的执行,最后根据前面三步分析的一个结果,设计成一步一步的解决路径,写出这个算法,从而解决问题。

第四个就是抽象思维的应用,我们人类在思考这个问题的时候,其实是把一些关键的信息提炼出来,而忽略掉一些非关键的信息 。这个都是抽象思维的应用。

计算式思维已经渗透到我们每个人的生活当中,比如说算法,比如说前提条件,这些词汇已经成为我们日常语言的一部分,那么他在机械工程,液体力学,物理学,生物学,考古学,甚至音乐,都会运用到。而且我们也看到今天的高科技企业,这些科技领袖都是具有这种计算式思维的复合型人才 。比如说马斯克,马化腾的 。

(四)通过学习编程,‍‍在培养孩子哪些方面的能力

我们在教孩子编程的时候,应该会涉及到八个方面能力的培养:

第一个,就是编程的知识和技巧。我们在学编程的过程中,程序和算法的一些知识结构和体系,这也是最容易学到的。

第二个是,逻辑建构能力。孩子们通过编程做一个作品的过程中,就是一个创造的过程。他们首先要在心里大致构造出自己想要的作品模样,然后开始思考,第一步该怎么做?第二步该怎么做?这些都对孩子的逻辑思维能力有很大的启发作用,即使在日常生活中变成了逻辑思维,也会让他们有条不紊的解决问题和表达出自己的想法。

第三点,就是设计策划能力,在制作编程课程作品的时候,涉及到背景的设计,角色效果的设计,还有角色的行为规则的设计,这些都是需要孩子的策划和设计的。在这个过程中,孩子的设计能力和审美能力会有很大的提高。

第四点,我认为它的关键就是思考跟学习的能力,在学习编程的过程中,它不会有固定的知识领域,我们会涉及到物理的,涉及到数学的,甚至涉及到音乐的,在这个过程中的需要孩子们去主动的思考,主动地探索,而且我们也发现,在这个学习编程的过程中,孩子们有时候会存在着进度上的差异,而这种进度的差异,往往就来自于孩子思考和学习能力的差距。所以孩子在小的时候一定要注意他学习能力的培养,这个是比知识的积累更重要。

第五个能力,就是沟通与协作的能力。随着我们编程课程的项目复杂度的提升,需要团队成员之间的协作,随着沟通范围的扩大,甚至孩子们都要参与到全球的沟通和协作的当中去。

第六个是工程搭建的能力,我们在编程过程中会把硬件的再结合进来,培养孩子的工程搭建能力,并且能通过编程来解决现实中的问题,这对于孩子在现实生活中能力的提升非常有帮助。

第七个就是问题的解决能力,学习编程跟学习数学、学语文、英语不一样,学习编程一上来就是要解决问题。所以,我们在学编程的过程中去发现现实中的问题,通过编程把它解决掉,这种是非常有成就感的,孩子在做这样的过程中,他能找到他的自信。

最后一点,就是案例分析和借鉴的能力,今天编程教育在全球都会有大量的作品分享出来,所以我们鼓励孩子们,在学习编程的过程中,参与到全球化的交流和分享中,能对他人的作品有鉴赏能力,广泛的借鉴、学习优秀的案例,并且能把它优化整合到自己的作品中,当然在这过程中,我们也要对孩子们特别的强调,我们必须对他人的作品和努力,保持充分的尊重。

通过学习编程,可以在这八项能力方面得到提升,再加上计算式思维,所以说,编程教育是在培养孩子受益一生的思维和能力。

以上是我根据自己的学习和经验总结的对少儿编程教育的一些看法。希望能给一些心存疑虑的家长一些帮助。也希望家长们在这个问题上不要焦虑,要根据孩子的兴趣来,不急不躁,慢慢培养,日日熏陶。