视野 | 北欧四国的编程教育有哪些理念和特点?
看点 英格兰于2014年将编程正式纳入学校课程之后,欧洲其他国家也陆续开始重视计算机科学、编程和计算思维教育。欧盟联合研究中心2016年发布的公民数字能力框架,将编程作为21项数字能力之一。
当今社会数字化趋势日益加强,青年更需要数字化的知识、技能与态度,才能应对未来难以预期的职业与技能需求。经济合作与发展组织(OECD,以下简称“经合组织”)认为,各国日益重视培养学生的数字素养、高阶思维及社交和情绪处理能力。其中,编程日益成为重要能力之一。
英格兰于2014年将编程正式纳入学校课程之后,欧洲其他国家也陆续开始重视计算机科学、编程和计算思维教育。欧盟联合研究中心2016年发布的公民数字能力框架,将编程作为21项数字能力之一。随后,欧盟发布的《数字教育行动计划2018》,行动之一是将编程课堂带到欧盟所有学校,编程被认作是与读写一样重要的基本素养与能力。特别是北欧地区的芬兰、瑞典、挪威、丹麦四国,从理念引领、课程设置到项目活动、教师培训等,在义务教育阶段不断推进编程教育。
2006年,美国计算机科学家周以真开创性地提出“计算思维”概念,引发国际范围对计算思维本质及其教育问题的广泛讨论。她提出,计算思维是借助计算机科学的概念和原理,系统阐述并解决问题的一种思维方式或思维过程。据经合组织研究,计算思维的核心要素主要包括抽象、算法思维、自动化、分解、调试、概括等。“抽象”是通过削减无关紧要的细节,使事物更容易被理解的过程。“算法思维”则是一种通过清晰界定步骤和顺序,获得问题解决方案的思维方式。“调试”则是综合运用测试、追溯和逻辑思维等分析与评价技能,来预测和验证结果的思维方式。
伴随着社会数字化趋势显著加强、人工智能迅猛发展,计算思维被认为是未来公民都应具备的,与数学和读写能力一样重要的基本素养。有学者认为,计算思维有助于学生和青年从不同视角、用不同方式来思考、分析日常事物,并更有效地解决问题。也有学者认为,计算思维与问题求证、数据搜集分析与呈现、复杂问题求解与毅力坚持等一系列能力的养成密切相关。
北欧国家非常重视中小学生计算思维的培养,认为计算思维主要包括两方面能力:一是问题解决能力;二是数字能力,如创新数字解决方案及对数字技术的批判分析。
丹麦教育官员和学者表示,尽管国家政策文件未明确使用“计算思维”这一概念,但要求中小学教育要重视培养学生“理解技术”的能力。在挪威,“算法思维”的概念被政策文件广泛使用,而“算法思维”是“计算思维”的核心要素之一。芬兰政策文件中,既使用“算法思维”,也使用“计算思维”。芬兰教育官员和学者认为,这是一种针对开放性问题进行高度抽象概括,从而生成解决方案的思维过程。挪威信息技术教育中心也提出了有关“计算思维”的独特理解:计算思维更加侧重问题解决能力,尤其是创新性问题解决能力,这种思维有助于技术使用者更好地设计和创造个性化的数字工具与解决方案。
计算思维如此重要,中小学教育该如何培养?诸多学者认为,编程教育是促进学生计算思维发展的重要途径。原因在于,编程是将实际问题进行抽象、建模、求解的过程,它能使人的大脑运转更高效,是目前培养学习者计算思维的必经之路。据卡内基·梅隆大学研究,计算思维的培养与编程分不开,因为编程不仅包括程序编码,而且涵盖问题解决、逻辑思维、系统设计等更广泛的能力。
北欧国家在义务教育阶段开展编程教育的目的与理念虽不尽相同,但总体来说,旨在弥补现有课程内容与未来社会对学习者能力需求之间的差距,增加学生在信息技术行业的就业竞争力、提升编程编码技能、加强问题解决和逻辑思考等计算思维能力、激发数学学习兴趣、提升数字素养及其他关键能力。
北欧四国都将编程课程融入中小学教育。芬兰和瑞典将编程能力作为学生数字能力的重要部分,并与具体的学科培养目标挂钩。芬兰2016年和瑞典2018年的新课程方案,明确将编程全面纳入小学和初中课程。与芬兰和瑞典相比,丹麦与挪威力度稍弱一些,但近年也在积极开展编程教育课程实验。挪威2017年发布的中小学与职业教育数字化战略规划,明确建议将编程教育纳入学校课程。丹麦从2017年开始,在初中学校启动了为期三年的编程教育选修课实验。
北欧四国编程课程融入学校教育的路径与方式各不相同,有的主要融入小学,有的则同时融入小学和初中;有的将编程作为单独科目设立专门课程,有的则以“跨学科”的方式将编程教育融入现有科目;有的将编程作为学校必修课,有的以选修课的方式开展实验探索;有的已经在全国范围内作统一部署全面推进,有的还在部分区域或学校先开展试点实验。
具体来讲,芬兰和瑞典以“跨学科”的方式将编程教育融入学校现有科目。而且,芬兰是欧盟首个以“完全跨学科”的方式在中小学融入编程课程的国家。芬兰编程教育融入的主要学科为小学和初中阶段的数学与手工,瑞典则主要融入数学与技术学科。另外,瑞典在社会学科中也融入了一定的编程教育,包括引导学生负责任地使用数字技术、增强数字沟通能力、理解编程原理等。与“跨学科”融入方式不同,丹麦和挪威两国主要将编程作为一门单独的课程,以初中选修课的方式开设。
从课程内容看,芬兰和瑞典小学阶段的编程课程主要包括两方面:一是在数学课中让学生应用可视化的编程工具学会编写简单的程序,二是在手工课中引导学生通过编程来操控机器人等实物。到初中阶段,数学课中的编程教育,开始聚焦培养学生的算法思维和问题解决能力;而手工课中的编程教育,主要让学生学习更高难度的编程,并进行作品创作。由此可见,从小学到初中,芬兰和瑞典两国的编程教育,从可视化编程向文本编程过渡升级,课程由易入难、渐次进阶。
而在丹麦和挪威两国,初中的编程选修课内容聚焦基于编程的“设计与应用”。例如,丹麦的课程主要包括加强学生设计与应用数字产品的能力,同时增进对数字产品社会价值的理解;而且,课程内容与数学、自然科学、人文及艺术学科有着广泛关联。挪威的课程内容更加强调算法思维培养,及利用编程解决问题的能力,学生需要学习运用不同的编程语言创造程序、对数学和自然科学中的问题进行建模,从而解决复杂性的问题。
为推动中小学编程教育切实落地,北欧各国开展了丰富多彩的自上而下及自下而上的编程教育项目。这些项目多数是非营利或公益性的,有的主要针对小学生,有的同时面向小学生和初中生,有的则主要针对教师进行专业支持与指导。总目标在于,为教师提供编程教学专业指导和资源支持,提高教师编程教学能力,提升青少年编程学习兴趣。项目活动形式多样,包括编程俱乐部、夏令营、竞赛、家校合作共同引导学生完成一定的编程任务等。
北欧国家开展编程项目一方面在于为校外非正式教育和校内正式教育合作衔接、共同开展编程教育,提供重要的信息互通、资源共享的桥梁纽带;另一方面,为多方主体合作推进中小学编程提供了不可或缺的平台。有学者指出,编程教育在中小学的实施推广,需要政府、大学、科研院所、中小学、企业、行业协会等多方力量共同探索。政府可以为中小学编程教育提供政策保障和资金支持。企业具备技术优势,可以通过开发优质的编程教育产品和平台,为中小学提供必要的服务与支持。学校更熟悉教育内在规律,而科研院所则可以依托先进理念和前沿研究成果指导促进学校教育实践。多方主体依托编程项目平台,实现优势互补、形成合力,达到互惠共赢。
丹麦的“编程课堂”,是一项由丹麦信息技术产业协会、城市、教育部及非政府组织共同协作,推动编程教育进入小学课堂及大学教师教育课程方案。项目组织者为小学课堂配备编程教学专业讲师,利用一年时间与学校教师密切协作,共同开展编程教学实验探索,为学校及当地市政教育管理部门赋能,使他们从第二年开始自助开展编程教学。
芬兰的“编程俱乐部”项目旨在面向全国组织编程俱乐部活动,针对三年级以上学生,以各地学校为依托每周开展一次下午俱乐部活动,学生可在7周内掌握编程基础知识。课程由项目招募的志愿教师施教,课程材料由项目组织方提供。这些教师既包括对编程感兴趣的教师,也包括从事信息技术职业的热心家长。
挪威的“教孩子学编程”项目也是由志愿者组成,旨在为所有儿童提供学习编程的机会。项目合作伙伴包括学校、政府、信息技术企业、图书馆、大学和国际合作伙伴,与欧盟区域层面的编程项目也有密切协作。该项目主要为教师提供资源支持,帮助教师启动编程教学,指导教师在课程教学中融入编程教育。
编程教学具有挑战性,中小学编程教育切实落地,需要教师职前培养和在职发展加强相关知识技能学习,提高编程教学能力。有学者对西班牙小学教师调查发现,教师需要接受更多专业培训才能顺利开展编程教育。另有学者研究表明,很多教师对编程教学信心不足,相关技术运用能力亟待提升。
目前,很多在中小学融入编程课程的欧盟国家,已经在不同层面为教师提供培训,培训机构包括大学、企业或非营利组织。北欧国家的教师培训课程主要包括两大方面:一是算法思维和编程基础;二是可视化和文本环境中的程序编码。
芬兰地方行政部门、大学、国家教育委员会、私企等,频繁组织教师在职培训。在芬兰瑞典语区域,有大学专门开展相关培训。另外一项“慕课”培训课程由信息技术培训者协会、赫尔辛基大学计算机科学系、奥尔托大学信息技术研究院共同运行,并得到科技产业基金会及国家教育委员会资助。瑞典国家教育委员会受政府委托开发了在线培训课程,课程内容包含若干模块,分别为历史与现代社会中的编程、编程初体验、学校编程课程介绍、编程主要概念、编程实战、编程前景展望、编程教学策略等。瑞典一些大学为中小学数学教师提供基本的编程培训。挪威信息技术教育中心为教师提供“慕课”培训课程,一些非政府组织也为教师提供专业支持,如针对不同编程语言的指导和工作坊等。丹麦教师教育机构已经在课程方案中纳入编程内容,一些高校研究者也提供面向在职教师的试点课程,为教师提供大量技术支持和案例资源。北欧四国几乎都采取了“慕课”方式提供培训,一方面可以实现规模化,另一方面教师在职学习的时间、地点更加灵活。
有研究指出,目前有关编程教育对青少年学习和能力发展的实际作用与影响尚缺乏清晰认知,欧盟也只有少数国家对已经开展的编程教育项目做过效果评估。未来,科学合理设计针对编程学习过程与效果的评价工具和方法,将是编程在学校正式教育中落地实施的关键要素。