卢湾中学“信息学社团”成员正在编程。(卢湾中学供图)
■本报记者 朱颖婕
打开手机应用商店,Scratch等少儿编程软件令人眼花缭乱;在微信朋友圈,各种编程班只要名额一放出来,便会被“秒杀”;一些培训机构的各类机器人课程更是报名的大热门,学费动辄以万元计;暑假期间,各类线上、线下的编程课也是开办得如火如荼。随着国内的STEAM(科学、技术、工程、艺术、数学)教育逐渐与国际接轨,少儿编程也日益成为家长们追捧的热门课程。
不少家长认为,让孩子接触编程,有助于培养提取、处理信息和分析、解决问题的能力,更不用说,在“人工智能”时代,编程是一项不可或缺的技能,因此“学编程要趁早”。与编程相关的各类信息技术竞赛也如雨后春笋一般,迅速涌现出来。然而,在这股热潮中,不少专家表示,学习编程的前提条件是具备基本的理解能力、逻辑能力和相对扎实的数学能力,“超前学习”未必是一件好事。
“门派”众多的少儿编程,教的应该是思维
记者调查发现,针对5至15岁的少儿,目前市面上比较受欢迎的编程主要有两类,其一是图像化编程工具,其二是游戏式编程工具。前者的代表是美国麻省理工学院设计开发的ScratchJr(5-7岁)和Scratch(8-15岁),孩子们可以通过拖拽并组合不同的“积木模块”,即指令和逻辑组件,设计游戏、动画、交互程序等。乐高机器人编程就与此有异曲同工之妙。而后者的代表则是诞生于科学教育强国以色列的CodeMonkey,孩子们可以在趣味的闯关游戏中感受编程思维。
这些儿童编程工具无一例外都经过了简化和优化,而且采用了孩子们喜闻乐见的形式,虽然“更易上手”,但难免令人怀疑:这到底算不算编程?
在上海STEM云中心主任张逸中看来,现在少儿编程种类五花八门,其中蕴含的教育理念并不相同。有些以技术见长,更注重编程语言的习得;有些比较强调成果的展示;还有一些则关注内在逻辑的训练。但是,他坦言,学习何种语言并不重要,重要的是对语言逻辑的理解,进而形成一种所谓的“编程思维”。因此,若根据教育理念划分,真正意义上的编程应该以训练“编程思维”为目的。
那么,这种“编程思维”究竟是什么? 用张逸中的话来说,这是一种表达事物、发现规律、解决问题的思维方式。
在业内人士看来,在编程时,我们往往是把一个复杂的大问题,拆分成几个小问题,逐个击破。接下来,“在问题中发现新问题”,并根据已有的知识和经验,找出新旧问题之间的关联,获得解决类似问题的规律。简而言之,编程就是“把一个特例,变成一般化的过程”。张逸中告诉记者:“‘百度地图’就是这样来的。但是,我们需要知道的是,编程语言只是一个提高效率的工具,编程思维不是计算机的思维,它永远是人的思维。”
黄浦区卢湾中学计算机教师柴继祥从事编程教育已有15年之久,曾培养出数十位全国青少年信息学奥林匹克竞赛 (NOI) 一等奖得主。他认为,编程除了能够锻炼人们的逻辑思维,也有助于提高提取和处理重要信息的能力,比如在NOI中,选手看到的题目有可能是一个完整的故事,他们的第一个任务就是“寻找和发现‘题干’”。而且在学习编程的过程中,个人的耐心、毅力也会受到不小的挑战。“不少学过编程的孩子,在钻研问题的时候,更加不畏艰难。”
少儿学编程不是依样画葫芦,而需要多种能力匹配
近年来,编程教育在不少国家越来越受重视。在美国,比尔·盖茨、扎克伯格都曾宣传推介“编程一小时”活动;在英国和法国,计算科学(Computing)更是被纳入中小学基础必修课程和初等教育选修范围。尽管目前学术界对“适合学习编程的年龄”尚无定论,但不少专家认为,和任何一门学科和技能一样,编程学习的一大原则是符合孩子的认知发展规律,并且,家长千万不能将编程作为助推孩子升学的一条“赛道”。
张逸中提到,相对扎实的数学基础是学习编程的必要条件,除了基本运算能力,编程中的步序安排等还涉及抽象思维能力。根据儿童认知心理学家皮亚杰的相关理论,儿童的“具体运算阶段”为6至12岁,此时儿童已有了一般的逻辑结构,而“形式运算阶段”为12到15岁,此时儿童的智慧发展趋于成熟,思维具有更大的灵活性。
因此,一般来说,学习编程至少得安排在升入小学以后。“学编程是急不出来的,‘开窍’了才学得好,超前学习反而有可能导致一知半解、思维定势、后劲不足。”张逸中这样说。事实上,有些技能比如乐器,靠的是肌肉记忆和听觉记忆,因此是要靠童子功的,但编程不是。表面上看,编程是学习一门编程语言,内里培养的是其实是孩子认识问题和解决问题的思维方式,而这种思维方式可以跨界应用到其他领域的学习和实践中。这一定是需要有一定的思维能力才能学的。
在柴继祥看来,编程还考验阅读理解和组织逻辑的能力。就他的经验而言,三年级左右是一个较好的入门时机。他还提到,虽然编程学习有一定的“门槛”,但是与大学生相比,中小学生的思维发散性和创造性或许更强。