在“遇见科学之美”2019全国科普周活动中,中科院计算所大数据研究院将组织以“科普手拉手•人人爱编程”为主题的青少年科学编程普及活动,将鼓励孩子们尽早的接触编程,培养孩子的创新能力,锻炼孩子的逻辑思维能力。2017年7月,国务院发布的《 新一代人工智能发展规划》明确指出,人工智能成为国际竞争的新焦点,应实施全民智能教育项目,在中小学阶段设置人工智能相关课程、逐步推广编程教育、建设人工智能学科,重视复合型人才的培养,形成我国人工智能人才高地。编程能力和计算思维的学习将成为众多新型工科人才的必备基础素质,所以,从青少年起培养科学编程知识是推动我国新型科学人才的重要发展。我院院长王元卓也对编程教育低龄化、如何科学地进行编程教育提出了自己的看法。
编程能力是培养青少年创新意识的重要手段。 创新意识会让孩子拥有更丰富的想象力以及不断产生新想法的能力,而孩子的创新意识大都是在生活中点滴积累起来的。在当今这个科技爆炸的时代,每天都有大量新的科技成果涌现。青少年编程能力的培养对孩子日后的学习具有重要的正向作用,其关键在于能带给孩子快速学习新技能、新知识的能力。
创新包括“创造思维”和“ 动手实现”两个阶段, 同时“动手实现”又会在很大程度上促进和改善“创造思维”。在人工智能时代,很多创新的想法都需要通过计算机程序来实现,编程能力也因此成为我们实现创新思维不可或缺的手段。
青少年的学习目标应该是兴趣驱动发展,在兴趣中培养自己的思维方式与创新能力,并且从中获得乐趣。当孩子们通过自己亲手设计并动手实现的一段程序,做出了一段可交互的动画、一个智能小游戏,甚至控制了一个机器人的行动,他们会得到极大的成就感和满足感。由此,他们也将不断动脑去完善自己的设计,改进自己的作品。而当孩子遇到现有知识实现不了自己的想法时,就会主动去学习新的知识,如此呈现螺旋上升的态势。
对于编程教育逐渐低龄化的现象,我认为这是科技发展的必然趋势。现在,越来越多的我们曾经认为只能出现在科幻电影中的技术和产品,已成为我们的日常用品,如智能机器人已经成为了孩子们的玩具。 这导致深度接触智能技术和智能产品的群体越来越低龄化,很多四五岁的孩子已经可以熟练操作一些智能玩具或者计算机程序,他们其实已具备了学习编程的基础条件。
但幼儿学习编程一定要注意方式方法。区别于青少年,教授幼儿编程时应以直观的图型界面、 动态的辅助工具,帮助孩子理解自己的操作会产生什么样的结果。例如,通过拖拉拽的方式实现对实体机器人行动,表情、语言的控制,从而让幼儿对编程产生愿意学习下去的兴趣。
培养计算思维比学会编程语言更重要
计算机专业及其相关方向,已经成为高等院校招生规模最大的学科之一,且本科以上的计算机教育已经非常成熟。然而,在青少年阶段就加入编程的信息技术课程,不仅在我国还处于摸索阶段,英国和美国也是在2016年以后才开始尝试推行。放眼全球,目前还没有可以借鉴的成熟经验。
中国工程院院士李国杰,是国际上最早倡导培养计算思维的科学家之一。早在2009年,李国杰便提出:计算思维运用计算机科学的基础概念求解问题、设计系统和理解人类行为,它选择合适的方式陈述一个问题、对一个问题的相关方面建模, 并用最有效的办法实现问题求解。计算机科学本质上源自数学思维和工程思维。
然而,计算思维远远不只是为计算机编程,它是抽象的、多层次的思维,与“读写能力”一样,是人类的基本思维方式。培养孩子们的编程能力,不仅要求其学会阅读、写作和算术,更重要的是学会计算思维。 计算思维既可以提高人的逻辑思维、发散思维、批判性思维能力,又能培养善于思考、勤于观察、慎于实践的良好习惯。
中国科学院计算技术研究所( 以下简称“ 计算所”)所长孙凝晖认为,计算思维是每个人的基本技能,今后每个人都需要具备和掌握“编程”能力。 因为未来的万物互联时代,人、机、物共存,人与计算机通过编程来交流,编程将会是一个基本的素质要求。
计算机的贡献在于突破人类自身智慧的限制,解决之前无法解决的问题。然而一直以来,计算机仅仅被看作高科技工具,计算机科学技术则被认定为工具学科和辅助学科。这种狭隘的认知对信息化普及和智能化升级是极为不利的,信息技术是当今社会必需的普适资源,人才的培养和信息素养的提升,关系到国家兴盛。
拥有创新能力比编写程序更重要
青少年学习编程,其实并不是简单地学习一两门编程语言。学习编程和学习一门“ 外语”并不一样。编程更重要的是思维的锻炼。编程语言只是通过计算机解决问题的一个工具,它的基本语法很容易了解,但熟悉编程语言的规则并不代表能编写出程序。
青少年学习编程,也并非简单地学习如何编写代码,而是学习计算机语言背后所蕴含的复杂多变的逻辑运算与计算思维,进而养成良好的逻辑思维能力。只有通过学习编程达到了思维训练的目的, 培养了孩子的创造性思维,才能为人工智能时代打 下人才的基础。
编程教育的核心目标应该是培养学生的计算思维,以此锻炼学生的创新能力。编程教育可以训练学生提出问题、解决问题的能力,与传统教育模式进行有效的互补,通过具体的实践活动,激发和培养学生的创造力,逐步解决我国创新能力不足的问题。
编程能力培养需要专业环境和良性生态
目前,越来越多的家长开始重视编程学习,青少年编程教育行业拥有巨大的市场。但如雨后春笋般兴起的教育机构,教学水平参差不齐。
我曾看到有些教育机构的宣传材料上宣传,某个名人几岁就开始学编程、学习哪种计算机语言可以参加什么比赛、通过多长时间的学习可以让孩子取得怎样的比赛成绩等。这些宣传的内容和定位,从根本上曲解了政府所倡导的“人人学编程”的 理念。
学习编程是要引发孩子更多的独立思考,培养他们分析问题、解决问题的能力,是为了实现思维方式和创新能力的全面提高,绝非生硬地 学习某种计算机语言,按照既定好的程序结构,实现一个人人类似的程序执行结果,更不是为了考级或取得某些竞赛成绩。
对于青少年来说,缺乏合适的学习工具是当下推行编程教育亟待解决的一个问题。美国麻省理工学院很早就推出了适合编程入门学习的编程语言logo,但因其对孩子来说晦涩难懂,又于2008年推出scratch。scratch图形化的操作,便于9岁以上孩子理解和掌握,现在已取得非常大的影响力。
google公司开发的开源软件blockly,更是将这种积木块状的可视化编程风格移植到多种编程语言之上,进一步推动了编程教育的普及。将编程理念融入玩具中,促生了很多的编程机器人产品,其中影响力最大的就是乐高的教育机器人系列。孩子们接触这些编程机器人,有助于培养他们最基础的程序结构概念和朴素的编程思维。
然而,教育毕竟是一个系统化的工程,scratch 和乐高机器人只能起到“ 入门”的作用,并不能支撑起体系化的课程。计算所正在探索围绕计算思维, 构造适合中小学生的编程教育课程,包括计算逻辑思维、系统思维、算法思维、协议和网络思维等几大体系,并开发了适合学生学习和教师教学的编程语言和软硬件工具。
编程语言方面,计算所正在设计和研发一款适合青少年编程教学的全新编程语言 ( 木兰),支持可视化编程,具备高度的开放性,可以更好地支持各种硬件设备、传感器元器件、云端 服务,让学生能够做出更丰富的创意作品,锻炼计算逻辑思维。
此外,计算所还开发了支持单片机的可视化编程工具,可以在软件上验证学生设计的电路和程序是否正确,解决了一大教学难题,并通过 软硬件的综合设计锻炼学生的系统解决能力。
目前,计算所正与地方合作开展教材的编写工作,并与中国关心下一代工作委员会合作开展全国性公益项目, 为地方建立信息技术相关的名师工作室,从技术上 指导地方教师,提高教师的教学水平。到2019年底, 预计将帮助2000所中小学改善编程教育环境。
如何加快普及青少年编程教育、建立良性生态环境,从而让孩子掌握一门与未来世界沟通的语言、培 养孩子的计算思维和创新能力,需要教育主管部门、学校、科研机构、培训机构等社会各界共同努力,在实践中不断探索。
来源:光明社教育家