少儿编程就是从小学习敲代码?如何看待越来越火的少儿编程?

我的导师今年年初生了孩子,之后组会的内容时不时会有一些相关的内容。比如现在快一岁了,我该准备让他学点什么?之后一众师兄弟发表观点,是学习Python还是图形化的编程语言更靠谱。很巧的是我去年无意间看到了同办公室的美国小姐姐桌上的书,叫“为宝宝准备的贝叶斯概率”,当时还觉得有意思发了条朋友圈。


不得不说,给孩子进行早教,尤其是培养数理逻辑思维已经成了这个时代的共识。我的导师还是双教授家庭(分别是计算机科学家和统计学教授),也不能“免俗”。但退回到问题本身,我觉得少儿编程本身就跟学艺术一样,重点在于启发小朋友对世界的另一面观察。比如学美术和音乐可能是让我们体会美,而学习编程和数理知识就是让我们学会从逻辑的角度看待这个世界。而无论是学习艺术还是科学,都是为了让我们能更好的思考这个世界,并学会创造。

我以前分享过我是怎么进入计算机行业的故事。追溯源头很有可能是小时候我爸从北京给我带回来一套那个年代还很稀缺的“电子积木”,大概就是按照说明书可以把各种电器元件组装成小风扇、门铃啥的。后来想到这其实我最早入门编程的接口,给定输入和期待的输出,如何把里面的内容接起来。那会最大的困扰就是板子的面积有限且连接线的数量和长度有限,能够创造的空间就被压缩在了这一亩三分地上。除了电子积木所引发的创造思考以外,它还让只是孩子的我琢磨如何在这些限制下拼出想要的模型。其实这跟数学约束优化(constrained optimization)有点相似,即在限制条件下达成特定目标,也算是理性思维的一环。

于我而言,从小就接触编程的最大意义就是体会“理性创造的乐趣”。我算是在村里长大的孩子,我们那个时候最大的乐趣就是磨砖粉来“配毒药”,或者是种豆角(然后忍不住隔两天挖出来看看种子有没有发芽),这些都算是快乐的创造,但其中的过程是不可控的,一切都是天马行空的去做。而编程算是少数的有严格定式的活动,比如我们要编写一个计算器,那么输入的就必须是数字和合法的运算符,而得到的相对应的结果也必须是严格的、且符合数学逻辑的。在这个过程中,孩子不仅仅是享受创造的乐趣,且还能体会遵守规则创造的乐趣,我觉得是值得在小的时候就去尝试的。

除此之外,在适当的年纪接触编程应该可以培养孩子解决问题的能力。编程中的一个重要概念就是面相对象编程(object-oriented programming, OOP),当然不是字面上的面相对象,而是指可以把问题抽象成一个个小的模块。假设我们想造火箭,那么我们可以把这个过程拆分成5个部分,在推进部分只要我们提供燃料,火箭就可以获得动力,中间的过程我们不需要时时刻刻的操心。这就是一个简单的OOP思想,也就是说把具体功能和模块封装起来,再组装起来,降低整体系统的复杂度,让各个部分各司其职。小朋友的思想是发散式的、天马行空的,适度的掌握这种模块化的思维提供了新的思维模式,遇到复杂的情况时候可以更好的拆解问题,各个击破。

除此之外,我觉得少儿编程还可以帮助孩子准备好对于人工智能时代的到来。抛开编程能力和数理思维,一个很重要的概念就是“向量化”和“矩阵化”。举个简单的例子,1+1+1可能需要进行两次加法,而1*3只要进行一次乘法。虽然可能在计算机硬件层面其实都是一样的,但这两种运算其实是两种不同的思路。在人工智能时代我们面临巨量的数据,我们可以把他们想象成一个个数字矩阵(甚至是高维的张量),那么如何高效的处理这样的矩阵/张量,不仅仅是运算的问题,更多的是思维上的改变。刚入行的新人可能会选择一个个数字的去遍历,而在这行小有经验的人都会用向量化和矩阵/张量化的方式去处理。在更早的阶段能够给孩子一个这样的准备,也有助于当他们接触到人工智能知识时可以更加游刃有余。

但再退一步说,编程不仅仅是敲代码这么简单,绝大部分码农的时间也不是花在写代码,而是花在处理代码中的问题,俗称找bug上(捉虫),而直接上手比较成熟的语言,即使是最简单的Python可能也会造成相当的挫败感。作为家里跟计算机打交道最多的人,前一阵子堂哥让我帮着看看有没有适合的少儿编程给我的侄子。经过了一番搜索和体验,我觉得编程猫是一个平衡了易上手性和全面性的少儿编程产品,它也是首批通过了中国质量认证中心颁发的5A级在线教育服务认证(证书编号CQC2020283001100004)的少儿编程品牌。

1. 首先它涵盖的种类非常丰富,从完全零基础的编程到Python的进阶课应有尽有,适合不同年龄段和性格的小朋友。我搜了一下他们有超过500项专利(专利号:ZL 2018 2 1223261.X),多款自主研发的编程学习工具产品,比如移动端图形编程kitten等。以下图为例,其实就是把各种编程模块图形化,比如if else,比如随机数,比如删除一个object。也包括各种各样的数学运算,以及休眠等功能。更多的还是通过积木式图形化教学,让孩子玩着就能熟悉了解编程的底层逻辑。假设未来孩子再接触到纯代码编程时,应该能马上想起这不就是我当时玩的xxx功能。


2. 其次是上课的模式很丰富,从完全自主着视频学习的类型到直播上课到跟着老师一起做的方式都有,并搭配课后老师的辅导与作业跟进。其实对于所以给小朋友的课程而言,最大的挑战就是注意力。我觉得在这点上编程猫做的很棒,有各种各样的动画场景以及结合学科知识的场景进行引导。比如最近很火的探月主题就非常与时俱进,还可以让家长给小朋友讲一些登月和火箭之类的科普知识。

3. 而另一点我觉得很有趣的体验,也是其他一些同类型产品所不拥有的就是编程猫自主研发的矩阵化编程的思维与模式。就像我前面说的,培养类似的想法跟OOP一样重要,尤其是对于迎接全面编程,半人工智能时代来临很有铺垫作用。

我个人认为小朋友接触少儿编程的目的并不是为了功利的“拔得头筹”,而是去更早的培养一种逻辑思维的能力,从纯感性的看待这个世界走向更全面的角度。这种思维方式我觉得是无价的。或许再退一步来说,在与小朋友一起探索编程世界的过程中,我们或许也会看到他们独特的视角,更好的了解自己的孩子。对于我而言,这就是少儿编程的最大意义。

这几年,国内少儿编程行业发展迅速,越来越火。这背后不但有全球少儿编程运动的影响,还有国家一系列相关政策的助推。不过,目前仍然有很多人不太了解:少儿编程教育到底是怎样一种教育,是不是就是教孩子敲代码?还有很多人有疑问:少儿编程有没有可能成为像英语一样的基础学科?

我来说说我的理解。

1. 少儿编程,有望成为基础学科

国务院在2017年7月印发《新一代人工智能发展规划》,规划中明确指出,将实施全民智能教育项目,在中小学逐步推广编程教育。之后,教育部在2019年3月发布了《2019 年教育信息化和网络安全工作要点》,再次明确要在中小学开设人工智能相关课程。

在这些政策的鼓励下,一些与编程教育相关的试点项目开始落地。比如作为新高考改革的首批试点,浙江省将信息技术纳入2017年高考选考科目[1]。 2018年,南京等地将编程纳入特长招生范围,重庆则规定加强编程教育,小学高年级和初中不得少于36课时[2]

12月9日,教育部官网公布了一封《答复函》,针对全国政协委员提出的《关于稳步推动编程教纳入我国基础教学体系,着力培养数字化人才的提案》予以回应。《答复函》称,将包括编程教育在内的信息技术内容纳入到中小学相关课程中[3]

可以预想,随着数字化社会的大力发展,以及国家出台更多有利于编程教育的政策,少儿编程的需求会越来越大,甚至可能成为一门基础学科,在K-12教育中广泛实施和推广。

2. 国外的少儿编程运动

那国外的少儿编程教育又是什么样子的呢?

其实,在欧美很多国家中,无论是政府还是企业以及K-12教育层面,已经有大批的资源涌向基础编程教育。编程已经成为孩子继阅读、写作、算术三项基本能力外所需掌握的第四项必备技能,全球已有许多国家将编程教育纳入中小学课程大纲及教学场景。

美国在2016年发起 “计算机科学全民运动” (Computer Science for All Initiative),就是要在全美K-12学生中普及计算机科学教育,让孩子从小就接触编程,为迎接未来智能时代的挑战做准备。这次运动的理念是,编程关乎美国的未来,孩子们需要熟练地掌握这些技术,所有人都应更早地学习编程,最好和ABC字母一起开始学习。

其实早在2013年的时候,美国还曾发起过“编程一小时” (Hour of Code)活动站台。各界名人包括比尔盖茨、扎克伯格、桑德伯格、和NBA球星波什等都纷纷为这个活动站台,号召全国孩子学编程。

当然,英国在这方面也不甘落后。2014年的时候,英国提出了“编程者国度”(A Nation of Coders)计划,把编程纳入幼儿园及中小学课程,要求英国5-16岁的孩子必须学习编程[4]。此外,日本也大力普及编程基础教育,预计将在2022年之前,把编程教育在日本小学、初中和高中作为必修课全面开设[5]

在人工智能的这场竞赛中,世界上有实力的国家,都不想被时代落下。相信,在不久的将来,会有更多的国家把编程教育作为中小学的必修课来推广。

其实,计算机科学家艾伦•佩里斯,早在上个世纪60年代初就认为,每个人都应该学习编程,这应该成为基础教育的一部分。这在当时,在计算机还远没有走进大众生活的时候,算是十分超前且有远见的观点了。不过,这个想法终于在21世纪的今天,开始成为现实了。

3. 少儿编程教育到底是什么样的教育,就是教孩子敲代码吗?

谈起少儿编程,有不少的家长有这样的疑问:“孩子以后又不一定要当程序员,真的有必要从小就学习怎么敲代码呢?”

说到编程,大家第一时间会想到“代码”, 这不奇怪。毕竟,编程的主要工作涉及写代码。但就此认为,少儿编程就等同于敲代码,就是对少儿编程的一种狭隘认识了。

  • 训练思维能力、创造力、和解决问题能力

即使是成年人的编程,其主要目的也并不是敲代码。代码,只是人和计算机之间沟通的工具,最终目的是让计算机替人解决问题。要达到这个目的,可不是个简单的事。编程者首先得用自己的脑子去思考,怎样一步步地去实现一个目标或者解决一个特定问题,然后再把想法和思维过程所产生的语言描述,转换成计算机可以读懂的语言,最终让计算机按代码指令去操作,达到为人服务的目的。

所以,编程看似只是敲代码,但实际上是思维过程的一种提炼和表达。如果这个思维过程不够完整和严谨,计算机就无法正确地、有效地完成特定的目标。因此,编程是人在和机器不断沟通的过程中,不断地编辑和调试编程者自己思维的过程

这也是为什么,已故Apple创始人乔布斯在接受采访时候会说:”每个人都应该学习编程,因为它教你如何思考。” [6]

少儿编程的主要目的,同样不是教孩子如何去敲代码,而是以符合孩子认知的方式,让他们在借助代码和计算机沟通的过程中,锻炼自己的思维能力(逻辑思维能力、批判性思维能力,和计算思维能力)、创造力、以及解决问题的能力。而这些能力,不但在孩子的学习场景下发挥作用,还可以让孩子在其他方面,更好的思考和解决实际问题。

正如比尔•盖茨所说:“学习编写程序能帮助拓展你的思维,能帮你更好地进行思考,并训练出一种思维方式,我认为这种方式在任何领域都有用。”

  • 陪养自信心,激发学习的热情和动力

除了对思维能力、创造力以及解决问题能力的训练外,让孩子学习编程,还可以有效地培养孩子的自信心,激发孩子学习的热情和动力。

大多数少儿编程平台,比如编程猫,都具有图形化编程的功能以及相关课程,来让孩子学习编程的基本原理和过程。 它不需要孩子有任何的编程基础或者经验,只需要通过拖拉编程组块就可以开始尝试编程。这样的方式对小学五年级以下的孩子,尤其具有吸引力。孩子可以直观地感受自己的行动(指令)和行动结果(运行结果)之间的关系。这种实时的反馈,本身就是一种正向奖励,会增强孩子不断挑战困难的信心,激发他们更大的学习兴趣和热情。

苹果公司的教育副总裁约翰•库奇,在他所写的《学习的升级》这本畅销书中,就特意强调了孩子学习编程对增强其自信心的好处,而且这种自信心还会影响到孩子在其他方面的学习和表现,比如对数学的学习等。

当孩子对编程有了一定的基础之后,就可以进阶学习真正的代码编程了,比如用Python来进行代码编程,处理更为复杂的任务和项目。这种代码编程更适合五年级以上的孩子。除此之外,像编程猫这样的编程平台,还提供硬件编程(如机器人)和数学编程(如数学运算)的训练,让孩子有机会利用编程语言来实现更多场景下的应用。

  • 降低手机和电子游戏的痴迷度

让孩子学习编程,还能解决很多家长眼前的焦虑,就是孩子痴迷玩手机或者打游戏的问题。比如我家二娃,今年8岁,自从一年前开始学习编程之后,每天心心念念地都是怎么自己做动画、做小游戏,就连自己之前喜欢的电子游戏,玩的时间也大大的减少了。

不但如此,通过接触编程,他还主动去了解了很多科技领域的名人轶事,也有了自己崇拜的偶像,包括乔布斯和扎克伯格。从这个角度说,学习编程,有利于培养孩子崇尚科学的态度和践行科学的基本素养。

  • 增强未来职场竞争力

虽然说,教育的最终目的并不是为了谋生,但是充满了激烈竞争的现实生活,又不得不让家长为孩子未来的职场竞争力早做打算。

计算机和编程专业人才,一直都是高薪的职位的宠儿。高度智能化已经成为未来的趋势,社会对编程人才的需求只会越来越大。加上未来会有更多省市将编程上升到高考层面,从小让孩子接触编程就变得更重要了。让孩子学习和机器沟通的语言,培养符合智能时代要求的思维能力和技能,无疑能给他们增添更多的求学机会以及未来职场竞争力。

目前,少儿编程教育的理念,已经得到越来越多家长的接纳,但是少儿课外编程教育市场,仍然良莠不齐。在选择少儿编程创作平台和课程上,家长就需要有一定的甄别评判能力,为孩子选出体系设置科学、完善、并且符合中国孩子学习特点和文化特点的平台。

在这一点上,我个人比较推荐编程猫。作为国内少儿编程领域的头部品牌,编程猫具有卓越的专业团队自主开发的平台和课程,以及在线教育5A级认证。它的课程着重培养孩子的逻辑思维能力和计算思维能力,而非单单是编程技能的培训。另外,编程猫的整个课程体系是依据孩子认知发展规律设置的,能满足不同年龄段的孩子对编程学习的需求。感兴趣的家长,可以自行去官网了解更多的信息,还可以带孩子免费体验相关课程,了解一整套上课流程和课程体系。

希望家长们最后都能找到适合自己孩子的少儿编程平台和课程!

参考

  1. ^1 http://old.moe.gov.cn//publicfiles/business/htmlfiles/moe/s8367/201409/175287.html
  2. ^2 http://www.caixin.com/2020-11-20/101630369.html
  3. ^3 https://tech.sina.com.cn/roll/2020-12-10/doc-iiznctke5752451.shtml
  4. ^4 https://techcrunch.com/2014/02/04/uk-government-backs-year-of-code-campaign-boosts-funds-to-teach-code-in-schools/
  5. ^5 https://metropolisjapan.com/classroom-coding/
  6. ^6 https://www.youtube.com/watch?v=oNC8LEj5X4U

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注