中小学编程教育的挑战——访华南师范大学教育信息技术学院钟柏昌教授
钟柏昌,教育技术学博士,教授、博士生导师,华南师范大学青年拔尖人才。
来源 | 中国教育新闻网-中国教育报
作者 | 黄蔚
编辑 | 申晴
开展和普及中小学程序设计教育(编程教育),是教育信息化2.0的重要组成部分,是培养学生信息素养和计算思维的重要载体,也是智慧教育背景下培养科技创新人才的重要基础。然而,中小学程序设计教育曾经饱受争议,如今又面临新的挑战,为理清思路、明确方向,我们对华南师范大学教育信息技术学院钟柏昌教授进行了专访,请他就程序设计教育的趋势与挑战发表精彩观点。
“两起一落”的U形发展阶段
记者:从我国中小学程序设计教育的发展历史来看,可以分为几个阶段,每个阶段各有哪些特点?
钟柏昌:我国中小学程序设计教育可以概括为“两起一落”的U形发展阶段。
第一次崛起始于20世纪80年代。1981年,苏联计算机教育专家伊尔肖夫在第三届世界计算机教育应用大会上正式提出“程序设计——人类的第二文化”的观点,受此影响,1982年在清华大学、北京大学、北京师范大学、复旦大学和华东师范大学等5所大学的附中试点开设BASIC语言选修课,这也是我国中小学程序设计教育的开端。
第一次低潮始于20世纪90年代末期。20世纪末,我国信息技术应用的社会普及已经达到了一定程度。在此背景下,程序设计文化的地位逐渐被网络多媒体素养、办公软件的操作技能所取代,如1997年颁发的《中小学计算机课程指导纲要(修订稿)》,该文件明确指出在小学和初中阶段不宜教程序设计语言,高中阶段可以作为部分学生的选修课,而在2000年发布的《中小学信息技术课程指导纲要(试行)》,沿袭了前述文件精神,直至2003年发布的高中信息技术课程标准,对程序设计依然未给予足够重视,其设置的“算法与程序设计”选修模块鲜有学校开设。
第二次崛起是近三年发生的。因人工智能的兴起,程序设计教育强势回归。标志性事件源于2017年国务院印发的《新一代人工智能发展规划》,其明确指出在中小学阶段要逐步推广编程教育,其后,在教育部发布的高中信息技术课程标准修订版中,至少有六个模块涉及编程内容,程序设计教育的地位被空前强化。
综上,历史上的中小学编程教育,因受“程序设计是第二文化”的影响,成为一门普遍开设的课程,而后随着信息技术的普及和素养教育的兴起而地位旁落,如今强势回归,成为中小学生的一门必修课或选修课。经过多年持续不断的教育信息化建设,我国中小学校已经具备了开展程序设计教育的良好的师资和硬件条件。根据2017年教育统计数据,我国中小学信息技术教师数和教学用计算机数均有显著增加,相对应的生师比和生机比呈逐年下降趋势,截至2017年分别下降到574.5∶1和7.9∶1。
编程工具的低门槛化
记者:目前,我们在编程工具的选择方面,存在明显的编程工具的低门槛化趋势,容易出现“入门容易深入难”,如何看待这样的问题呢?
钟柏昌:经过约10年的时间,小学阶段已基本普及积木式编程环境(以Scratch为代表),而在中学阶段,代码式编程语言Python正在逐步取代VB语言。尽管两者风格差异明显,但在进入门槛方面均较低,易学易用,用户体验较好。低门槛并非低性能,与之伴随的还有“高天花板”特征,也就是能够利用这些低门槛的编程环境设计制作出复杂的作品,完成类型各异的项目。
问题主要来源于两个方面:一是由于“高天花板”特征,容易出现“入门容易深入难”的问题;二是如何从积木式编程向代码式编程有效迁移。针对前者,设计螺旋上升的、富有趣味的学习项目是关键;对于后者,实际上也是如何解决学段衔接的问题。学术研究早已表明,积木式编程语言对提高学生设计思维和创意能力有非常积极的帮助,只要处理得当,这些思维和能力能够较好地迁移到代码式编程语言的学习。
教育对象的普及化
记者:根据目前调研情况,多数省份在小学五年级或六年级开设了程序设计或机器人课程。校外教育的情况则呈现出明显的低龄化趋势,诸多在线编程教育平台瞄准了6、7岁起点的儿童。在教育对象的普及化方面,机会与挑战在哪里呢?
钟柏昌:教育对象的普及首先体现在国家层面对推广编程教育的政策导向,尤其在修订后的高中信息技术课程标准中,必修模块1(数据与计算)已经将程序设计相关内容列为核心内容,在高中阶段普及程序设计教育已成定局。
在教育对象的普及化方面,挑战在于,“千人一面”的普及教育可能面临“一刀切”的风险,落入史上“全民学习BASIC”的窠臼。基于类似的担心,华东师范大学任友群教授认为,教育信息化2.0必须处理好信息素养提升与信息技术专长培养的关系。具体到程序设计教育,也需要处理好程序设计的一般素养提升与专长培养的关系。作为通用素养的培养,程序设计教育应该侧重计算思维的培养;作为技术专长的培养,则可以强化专业取向的计算思维(如算法)的培养。因此,必修和选修的内容区分,普及教育与专长培养的关系,必须辩证对待、互为补充。
教育目标的思维化
记者:就程序设计教育而言,核心素养主要表现为计算思维。在以数据为核心的知识创新时代,计算思维对于学生发展的价值得到了广泛的认同。我们从发达国家的体系中有哪些需要借鉴的地方?
钟柏昌:目前,一些西方发达国家均推出了基于计算思维的计算机科学教育体系,在美国2015年底发布的《每位学生都成功法案》中,甚至将计算思维上升为与读、写、算并列的素养。思维导向的教育强调通过体验、认识及内化等过程逐步形成相对稳定的思考问题、解决问题的思维方法和价值观,实质上是获得认识世界和改造世界的世界观与方法论。因此,程序设计教育的重点不是教会学生编写代码,也不是学习未来成为程序员的专业性极强的知识,而是要理解与计算机进行交流的方式,并获得利用计算机解决问题的基本思维。具体而言,程序设计教育对学生计算思维的培养是以程序思想为中心的,包含系统思维与结构思维、抽象思维与逻辑思维、实体思维与关系思维等诸种思维的塑造。
然而,思维取向面临的一个重要挑战在于如何科学评价学生的计算思维发展水平。如果只是采用作为结果的程序作品评价,则难以超越编程技能训练的老路子。除了内隐的心理变化,外显的行为意识、态度、习惯和解决问题的过程是评价学生计算思维水平的重要维度,但这需要教师耗费大量的时间精力去观察和理解学生的行为过程。实践经验表明,采用主辅式双师教学模式和提供有效的学习支架,如创意设计报告和结构化的学习反思报告,并结合一些自动化的测评手段,可以解决此类问题。
教育内容的融合化
记者:传统程序设计教育主要关注程序设计本身知识内容如语法和算法的掌握,学科中心取向明显,视野较为单一。STEM教育的兴起,推动了程序设计教育走向跨学科融合的新道路。您认为目前多学科融合面临的挑战是什么?
钟柏昌:多学科融合面临的最大挑战,在于长期以来的分科教学导致缺少多学科视野的课程和师资。课程方面的问题,亟待教材出版界推陈出新。一是要开展师资团队建设,鼓励不同学科教师以项目为中心形成教研团队,如青岛二中形成的六大类教师指导团队就颇具战斗力;二是在形成教研团队的基础上,需要开展教材的校本化改造。
例如,2016年由美国多个学术组织和学区联合制定的《K-12计算机科学框架》描述了计算科学与数学、科学、工程的交叉实践。从教育目标角度而言,计算思维的提出,就是要强调在多学科领域中运用计算工具和方法解决各种现实问题。我们的本土实践也表明,利用程序设计开展科学探究和工程实践,可与数学、物理、生物等学科和机器人、创客等进行深度融合,有效培养学生的实践创新能力。
学习方法的游戏化
记者:传统的编程学习总是与编写代码、开发算法和生成可运行的程序紧密联系在一起,学生常常还需要通过解决一些数学题(如排序、查找、鸡兔同笼问题、找素数等)来学习编程。在游戏化的程序设计课程方面,您觉得国内学校突破方向在哪里?
钟柏昌:与教育内容融合化趋势所面临的挑战类似,我们还缺乏游戏化的程序设计课程。除了期待教材编写者做出改进外,更多的希望寄托在教材的校本化改造和教学创新层面。例如,北京景山学校开展的“游戏式实践活动+编程教学”的改革,以简单有趣的方式,促进了学生从技术成长到思维成长的转变,以及个体学习与合作学习的融合。
游戏化学习有两种含义,一是指向学习结果的游戏化——开发游戏类作品(game),二是指向学习过程的游戏化——开展游戏式活动(Gamification)。前者要求学生通过项目学习开发出富有趣味的作品,如小游戏、数字故事、模拟动画、交互媒体等;后者要求将游戏元素(如游戏目标、标识、规则、反馈等)贯穿到非游戏活动中,形成一种对学习者的激励机制,驱动学习者达成预定的学习目标。游戏是社会文化的一种集中体现,无论是前者还是后者,均需建立在对社会问题和社会规则的理解基础之上。学习程序设计的活动实质上就是儿童社会化的过程,有利于实现技术学习“回归生活世界”的目的。游戏化学习在国际范围内有比较广泛的应用,麻省理工学院媒体实验室所倡导的Scratch学习的“4P”原则,即Projects(项目)、Passion(兴趣)、Play(玩)和Peers(同伴),就是游戏化学习两种含义的综合运用;Code.org所提供的课程结合深受青少年喜爱的流行元素,如“植物大战僵尸”“冰雪奇缘”等卡通形象,用不同的主题来表现编程解决问题的不同模式。
学习环境的混合化
记者:在线编程教育在学习环境的混合化方面我们有哪些需要学习和改进?
钟柏昌:一方面,尽管国内不乏在线编程教育平台,但缺少免费、共享、好用的本土化的平台;另一方面,线上和线下教育的衔接关系没有打通,校内教育基本沿袭传统的线下教育模式。此类问题的解决,亟须相关教育力量的社会化融合。
学习环境的混合化也包括两层含义:一是混合性学习,线上线下的混合;二是混合性创作,在学习和借鉴他人工作的基础上开展再设计和迭代改进。混合性学习将单纯的线下学习延伸到线上学习,拓展了学习的空间和时间,尤其是在线社区的应用,方便学习者之间的经验交流与成果展示,形成志同道合的社交圈子,接受来自同伴的反馈和鼓励,汲取创作灵感和学习编程技巧,进行在线合作编程。如今许多编程工具都提供了配套的、鼓励学生创建和分享编程作品的在线社区。最突出的例子就是青少年编程社区Scratch网站,学习者可以通过“进去看看”功能直接修改原作品的代码和元素,进行再创作。
教育力量的社会化
记者:我们的校外培训活动与校内教育衔接不够,在教育力量的社会化参予方面,有哪些需要加强?
钟柏昌:我们面临的最大挑战,是由谁来负责此类公益组织的筹建?如何协调参与各方进行组织管理和运营?这里存在一个教育办学理念的转变问题,以及教育生态的构建问题。突破学校办教育的局限,走向更为开放的教育办学理念应该成为今后教育改革的方向之一,程序设计教育亦然。如今,一些城市和学校已经出现了通过政府采购教育服务的方式引入校外师资和课程,是值得关注的一种发展动向。