刘向永 马启娜
随着智能化时代的来临,人們逐渐认识到编程成为了一种人人必须具备的能力。人们依靠编程能重新认识、理解和设计人类社会系统和行为。英国著名的计算机教育专家西蒙·佩顿·琼斯(Simon Peyton Jones)就认为“计算机编码是高科技社会的基本语言,不懂得计算机语言就像不会阅读、不会写作、不会算数一样属于文盲,无法成为新一代劳动群体的一员。”面对未来社会的机遇与挑战,中小学生自然也需要掌握编程的概念与方法。在中小学普及编程教育就成为了各国政府的一致共识,并都将青少年编程教育纳入到国家发展战略规划或行动计划中。那么,国外中小学编程教育状况如何呢?我们全面地梳理国外状况,供国内编程教育发展思考与借鉴。
全力推动:各国编程教育政策不断出台
当前,人们普遍认识到编程教育对于中小学生发展的重要性。智能时代的学生不仅仅是技术的使用者,而且要成为技术的创造者,这也逐渐成为国际教育者的共识。各国政府都从国家科技发展战略角度认识中小学生编程教育的必要性和深远价值。各国政府纷纷出台了各种编程教育政策,试图推动本国的中小学编程教育。
从表1可以看出,国外中小学编程教育政策有如下的特点:第一,编程教育已经成为了国家战略。各国政府充分地认识到了编程教育的战略地位,不仅仅是一项教育举措,而且是关系到国家科技未来发展的一种战略选择;第二,编程教育融入中小学必修课程体系成为必然趋势。各国政府除了推动校外编程教育外,都在积极推动编程教育课程化,从英国的计算(Computing)课程到澳大利亚的数字技术课程,编程教育的国家课程化使其能够真正地落地;第三,统筹规划编程教育系统措施。各国将编程教育纳入中小学教育体系,只是编程教育体系中的一环。各国还积极推动编程教育的硬件设施、师资培训等,使得编程教育系统各要素协调一致推进。
发展计算思维:编程教育的价值所向
以Scratch和Python为代表的编程教学正在成为信息技术教育的又一个热潮。但编程教育并不是重新走以往的程序设计教育的老路,正如华东师范大学任友群教授所说:“今天我们重视编程,已然不同于几十年前计算机教育初期的编程教育,而是在培养学生一种‘计算思维+的能力,让个体运用计算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动和创造实践。”[1]因此,当我们重新再看如今的编程教学时,我们仍然需要让编程教育指向计算思维培养。正如罗伯特·汀克等人提出:“我们不能简单地从技术的使用中获得技术技能,正如不能从使用汽车或从飞行中获得航空工程技能一样。”仅仅依靠编程教育是不足以培养学生的计算思维能力的。
计算思维的概念是由卡内基梅隆大学周以真教授率先提出的。计算思维是在多个抽象层次上思考,是为了解决问题、用于设计系统和了解人类和机器智能的力量和极限。计算思维也意味着能够超越原有的整体,构建整体的整体,或者超越整体,以不同的方式思考整体。计算思维不能够完全地等于编程教育,两者是有所交叉的。编程教育和计算思维之间的关系,如图1所示。
编程教育跟社会上的编程职业培训是不同的,目标也不是要培养程序员,而是要让学生在编程的过程中了解如何使用计算机进行创作,进而培养严密的逻辑思维和良好的计算思维。因此,各国政府明确地在编程教育中规定的教学目标就是计算思维,例如英国的计算(Computing)课程目标就是“能让学生使用计算思维和创造力来理解和改变世界”。澳大利亚的数字技术课程也是培养计算思维。因此,编程教育重点是编程过程中学生对编程概念的理解、对数字化系统设计和实现数字化产品的过程,并在过程中所培养的计算思维、系统思维和设计思维等能力。
多样化:编程语言的选择与使用
编程教育是要有编程语言作为载体的,编程语言会影响到编程教育的发展。从最初的BASIC语言到如今流行的Python,编程语言也在不断地发展,也带动着编程教育的发展。台湾师范大学的吴正己教授就说:“就资讯科技课程而言,学习解决问题的计算思维才是最重要的,解题工具愈简单愈好,故而许多计算机科学教育者相继发展一些简化的程序语言或可视化环境,如Python、Greenfoot、Alice及Scratch等,以减少学生学习程序设计的困扰,使学习更聚焦于问题解决。”[2]因此,国际上编程教育主要是使用图形化编程语言,其中广为使用的就是Scratch语言,因其使用图形化界面以及易操作,越来越受到中低段学生的欢迎。图形化编程语言的出现使得学生降低了编程难度,让学生能更多地关注算法和编程思维,不必过度关注语法,有助于实现编程教育的真正价值。
但编程语言众多,有的编程语言适合教育使用,有的编程语言主要用于实际软件开发。各国编程教育所选择的编程语言是各不相同的。从英国所做的一个调查中,我们能发现国外编程语言的流行趋势。Scratch是小学阶段当仁不让的编程语言首选,占比达到了38%,而LOGO和KODU也占了一定比重。Python在中学阶段排在了第一位,但Scratch仍然占有一定比重。从国外编程语言选择中可以看出来,多样化是突出特征,并不存在唯一的规定性编程语言。
对我国中小学编程教育的启示与借鉴
国外编程教育的发展状况其实为我国中小学编程教育提供了很好的启示和借鉴。
第一,要确定我国小初高一体化编程教育课程体系。编程教育要想真正地落到实处,就需要在国家课程体系中确立编程教育地位。我国虽然有了高中信息技术课程标准,并加入了编程教育内容,但仍然缺乏义务教育编程教育课程。缺乏了义务教育的支撑,高中编程教育会如同空中楼阁一样。因此,我国需要根据小初高学生不同身心发展规律,制订好十二年一贯制编程教育课程体系。从小学低年级开始,学生从游戏化编程入手,逐渐掌握编程语言和算法,不断加深对计算机科学概念的理解,逐渐将真实和虚拟世界链接起来。
第二,要加快编程教育与其他学科融合。越来越多的研究转向强调将编程教育与其他学科进行整合。在编程教育中,要努力推进编程作为一种工具融入到所有学科教学中,鼓励为儿童提供在正式与非正式学习环境中进行编程教育的机会。编程教育的核心是通过基于问题或者项目的教学方式,融入工程设计和技术应用,从而促进学生对数学和科学知识的学习并发展他们的高阶思维能力。
第三,要加强编程教育师资建设。当前,中小学编程教育面临的一个突出困境是师资缺乏。很多中小学校要开展编程教育却没有合格的编程教育师资。我国要加强职前师范生的培养,在教育技术学专业(或计算机科学等相关专业)的培养方案中,加强编程语言、人工智能、机器人、编程教育、机器人教育、创客教育等相关内容。
当然,国外状况提供了发展的借鉴思路,我们仍然要兼顾国际趋势和本土现状,探索具有我国特色的编程教育之路。面向未来,只要我们认定方向,不断努力,就会开创一个编程教育的全新世界,让编程教育惠及每个孩子。
参考文献
任友群. 为数字中国培养“计算思维+”新一代[J]. 中国信息技术教育,2018(5): 7.
吴正己. 信息技术课程发展: 台湾的经验[J]. 中国信息技术教育,2012(Z1): 13-14.
凌伟. 从设计到实施: 英国计算课程改革的经验及启示[J]. 基础教育课程,2020(11): 73-80.