张欢 袁军
黔南民族师范学院计算机与信息学院 贵州都匀 558000
创客教育就是把创客文化和教育相融合的教学模式,它是培养学生勇于探索科学、运用智能技术创新的素质教育[1]。在2015 年国际教育信息化大会上,习近平总书记指出,要应用信息技术的发展,推动教育变革和创新,构建网络化、数字化、个性化、终身化的教育体系,建设人人皆学、处处能学、时时可学的学习型社会,培养大批创新人才,是人类共同面临的重大课题[2]。创客课题包括切身性、复杂性、充足的资源、互动和合作、高强度、合理的时间安排、分享教育、新颖性等八个要素。2015年,创客教育被引入我国,是我国创客元年,随后创客也在高等教育、职业教育、中小学教育等领域出现。
近年来,创客教育和STEAM 教育(科学、技术、工程、艺术、数学多领域融合的综合教育)作为中国中小学教育领域新课改的试验田,在突出其项目学习、体验式和个性化学习等优势、培养学生的计算思维和创新思维能力、激发学生的创造力和想象力方面,进行了卓有成效的探索与实践[3]。积极营造适切性创客教育环境、开发系统性创客教育课程、探索高效率创客教学模式、打造高水平创客教师队伍,同时积极联合家庭和社会,寻求教育系统外部的支持,是协同构建我国中小学创客教育良好生态的必由路径[4]。创客教育在培养学生利用信息技术解决问题,提升学生创新意识方面具有无限的价值潜能,因此,许多国家大力推广中小学创客教育,这将对个体发展、课程改革、教育系统变革以及国家人才战略产生重大影响[5]。
中小学创客教育内容有3D 打印设计、切割技术、可视化编程等学习模块。在编程学习模块中,学生运用编程技术制造智能玩具、智能生活用品,最终通过软硬件整合实现模拟交互系统,强化人机互动。在创客教育蓬勃发展的今天,积极开展中小学编程教学具有积极的现实意义。
编程教学是指通过开设编程课程,让学生在学习编程语言的过程中学会独立思考问题、拥有解决问题的能力[6]。编程教学不是直接让学生像大人一样能完整地敲出所有代码,而是让学生学习合适的编程内容并且把这些内容适当地改编,运用游戏化、可视化的方式,培养学生的计算思维和创新思维能力。中小学生计算机编程语言的教学,目标在于培养学生的观察、想象、创造、逻辑思维、问题解决、空间思维、判断性思维、调试操作能力[7]。中小学编程教学课并非独立学科,在基础教育阶段,编程会融入其他学科中。随着物联网、智能技术的快速发展,如运用程序控制LED 灯亮或灭、设计智能交通红绿灯等新型科技实践创新项目纷纷进入中小学校园,编程教学已成为中小学开展创客教育的必要基础。
近年来,各国把中小学编程教学作为储备科技人才、增强国际竞争力的重要工作举措,欧洲学校网(European School Net)于2015 年发布的报告显示欧盟近二十个国家已将或即将在中小学纳入编程教学,包括法国、波兰、芬兰等。作为基础教育备受瞩目的国家,2014 年,芬兰发布了新的课程标准《国家基础教育核心课程2014》(National Core Curriculum for Basic Education 2014,以下简称芬兰新课标),首次将编程纳入中小学课程标准中,并将其设为芬兰基础教育的必修课,于2016 年开始实施。2016 年芬兰正式将编程教学写入其中,还提出较高要求,从一年级开始开展编程教学,并把编程教学完全融入数学等其他学科中,具有一定模式独特性。美国教育界非常重视中小学学术编程教学,形成了政府、学校、社会组织、科技公司广泛参与、多元互动的格局。美国中小学将编程教学纳入学校STEM 课程已成为主流,甚至很多幼儿园都开始进行编程教学。目前,国外已经积累了丰富的结对编程教学经验,并且已有研究发现结对编程在提高学生编程能力、计算思维、编程学习热情、元认知等方面有积极效果[8]。
近几年我国也在推动、普及中小学编程教学活动。2017 年国务院提出要大力开展人工智能科普活动,在中小学阶段开设与人工智能相关的课程,要逐步普及中小学阶段的编程教学,这是我国首次把“编程教学”纳入政府的重要决策中[9]。我国青少年编程教学起步较晚,所以编程教学的过程与研究总体还处于初步发展阶段,以行业、企业的推广为主。目前中小学阶段的编程教学相关教师极为短缺,也没有规范的课程标准和教材,尚未建立成熟的教学模式,一切还在探索阶段[10]。2021 年9 月27 日,我国教育部对十三届全国人大四次会议第6219 号关于在基础教育阶段普及编程教学的建议的答复中提到“信息素养”是国民基础教育中必须具备的素养之一,编程也是中小学信息技术教育的重要内容。
近年来,国内许多省份积极探索中小学编程教学,培养学生运用信息技术创新的综合能力。2017年相关政策出台后,各省份纷纷在中小学开设编程课程。自2018 年以来,浙江、江苏等部分地区已经把编程设为高考必考内容,南京、天津等地区把编程作为中考特招的考试范围。总体来看发达地区编程教学普及率较高,编程知识已融入中小学信息技术教材,Python 作为使用率最高的编程语言也逐渐被加入中小学教材中,在学科网中可查到,浙教版(2020)八年级上册、新世纪版(2018)八年级上册、青岛版(2019)第三册、龙教版(2018)九年级上册都含有Python 相关知识,这些教材主要涵盖初识Python、变量、算法、画图、结构等基础知识,加上一些彩色图文并茂编排,设计新颖。对于中学阶段的学生而言,这类教材较适用,积极地推进了中小学编程教学的发展。
相较发达地区,贵州省等欠发达地区中小学编程教学起步晚,发展较为缓慢,但也在积极探索推进中。自创客教育出现后,贵州省某些中小学在创客教育中开展了编程教学方面的积极探索,如贵州省D 市各中小学已基本建有创客教室,但由于条件限制,创客教室的设备较落后,相关专业师资较为缺乏,中小学编程教学发展较为缓慢。在“双减”政策实施后,各校在开展编程教学方面,得到一定程度的发展,许多校外辅导机构纷纷转型投身编程教学中,但综合来看仍处于初级探索阶段。
笔者曾在贵州D 市S 校承担编程教学工作,对该校的情况较为熟悉。2021 年,S 校首次开设Python 课,一学期下来教学效果不是很理想,坚持学到最后的学生较少。S 校作为该市重点中学很重视编程教学,目前有三位相关专业教师,因为创客是综合活动课,所以学生是自愿选择参加该课程,该校创客课分为A、B 两个班,A 班在新创客开展教学,主要授课内容为图形化编程、开源硬件设计、激光切割、3D 打印等。在创客实验环境下,编程教学能实现某些软硬件产品的功能,可以说是中小学创客教育中的灵魂。中小学生很少有机会参与实际的水利工程、土木工程等实操项目,但编程设计却可以让学生在编程学习中对整个程序进行总体规划,考虑程序项目合理性、功能拓展性、代码规范性等内容。创客可视化编程工具可以让学生通过积木搭建便可完成编程学习,从而激发学生的学习兴趣,培养学生的创造性思维和计算思维。
Scratch 是美国麻省理工学院发布的不断更新的面向少儿编程的一款图形化编程工具,在市面上很受欢迎。Scratch 建立程序的过程中,可以将录音、图片等这些有趣的形式融入课堂,激发学生的学习兴趣,学生可以在官方网站上注册开通一个账号,发布存储自己的程序。学生发布的程序,后期可以在个人账号内找到,站内可以通过网络共享作品,国内也有类似的官方网站,这有助于国内Scratch学生们交流学习。Scratch 作为一款编程工具,凭着其难度低、趣味性强的特点被引入我国的编程模块教学中,在低年级学生的科技活动中应用较为普遍。
另一门热门语言是Python,Python 是荷兰的吉多·范罗苏姆设计的一门能有效面向对象编程的编程语言。Python 是一门解释性语言,Python 的解释性结合动态类型与语法可以使其编写脚本,从而快速开发应用程序,且应用程序适用于不同平台。海龟编辑器是一款面向青少年Python的软件工具,它的扩展功能非常强大,Python 该有的函数和算法这款软件工具都有,并且变得更好理解,它能够使编程变得更简单、有趣,是激发学生学习编程兴趣的一个非常普遍的工具,同时也有利于新入门学生对编程的理解。综上所述,上述两种语言在中小学编程教学中受欢迎程度都较高,具有较大的市场占有率,如表1 所示,对上述两种语言的特点进行归纳,以便不同学校在开展编程教学时,根据自身的需求进行选择。
表1 Scratch 与Python 的比较
Scratch 与Python 作为两种主流的中小学编程教学语言,二者各有所长,因此,在中小学开展编程教学时,选择哪种教学语言值得商榷。笔者认为,Python 作为一门解释性编程语言应用范围较广,功能强大,但是小学生逻辑思维能力在培养发展中,选择学习软件应符合他们的年龄和认知特点。因此,小学/初中阶段的学生可以通过Scratch 学习编程,加深他们对IT 技术的理解,激发学生对编程的学习兴趣;高中阶段的学生,认知能力、学习能力、理解能力都有了很大的提升,他们可以理解Python 中的语法及规则,因此在高中阶段可以选择Python 作为编程教学语言。在教学中通过项目式的教学方式,Scratch 模块的教学可通过简单、明晰的小段的程序代码让学生体验画五星、贪吃蛇等小游戏;Python 模块的教学通过小段的程序代码可以实现人脸识别、图像分类等人工智能小实验,对引导学生对信息技术产生兴趣,培养学生计算思维与创新意识具有积极意义。
中小学编程教育在我国起步较晚,可以说是“新兴的教育模式”。要提升编程课程的有效性,真正提升学生的创新能力和问题解决能力,离不开科学的教学策略来激发学生的学习兴趣。结合学生的学习情况综合分析,形成循序渐进的教学原则。不能照搬教材或让学生毫无兴趣地敲代码,这不仅影响学生学习的动力,还不利于促进学生的计算思维发展。导入新课并开展编程教学,是教师首要面对的问题。教师要在实践过程中不断探索并找出学生的学习兴趣激发点,完成教学目标。从编程课程教学特点来分析,通常会用到项目式教学法、游戏体验教学法、情境教学法等。随着新课标改革,相关政策贯彻落实,开展中小学编程教学的学校会越来越多,笔者根据自身的授课经验及思考,提出如下几点建议。
选择科学的教学方法是编程教学成功的开始,编程教学适合采用项目式教学法,该教学法强调学生学习的主体性,学生从尝试着手,开始练习,以调动学生学习的主动性、积极性。项目教学法有利于培养学生的创新思维和实践能力,教师要注重多元化交流与评价,在设计和动手操作完成作品后,评价不仅限于个体或团体完成作品,也包含让学生自信地与全班同学分享作品,甚至可以发布到线上个人账号中去。作为编程教师要面向全体学生,同时也要注意学生的个性发展。
运用图形化编程软件设计并制造一个理想的项目,会涉及多个学科知识内容。教师在进行教学设计时要能够梳理出可能涉及的主要学科知识和能力,以便对学生进行针对性的教学辅导,同时也提供了明确的学习目标和评价依据。以Scratch 创意“贪吃蛇”活动为例,在梳理目标后,笔者可以清楚地引导学生从初级目标达到高级目标,实现不同学科的融合。
贵州省D 市S 学校七年级(5)班一名男同学每节课都很快地完成笔者布置的实例操作,笔者询问情况后发现,该生小学期间就开始学Scratch,所以不需要教师提示,每节课他自己就能很快完成课堂上布置的实例操作任务。这足以说明,在小学阶段学习编程能为中学阶段学习编程奠定一定的学习基础。因此,可以考虑把Scratch 作为小学信息技术课程必修课程,运用海龟编辑器学习Python并融入中学信息科技课中,把编程课融入必修的信息技术课程当中。
中小学生思想还不够成熟,家长的认知也是影响学生的重要因素。当前编程学习在大部分学校仍属于活动兴趣课,许多家长认为并非升学考试内容,就没必要浪费时间。在笔者所授课的班级中参加活动课的学生几乎都是七年级的学生,到八年级后学生为了中考基本不会继续参加编程活动课,所以想要更好地发展中小学编程教学,可以多渠道加大编程教学重要性的宣传力度。
在师资力量建设方面,相关师范院校应该加强师资的培养,为学校输送相关课程师资;相关教育管理部门也要正确认识相关课程的开设对于提升学生实践能力和创新能力的重要性;学校在教育资源方面,要加大资金投入。
创客教育就是把创客文化和教育相融合的教学模式,创客教育在贯彻以学生为中心的教育理念、提升学生实践动手能力、促进教育信息化发展方面具有积极意义。本文从阐述创客教育的概念出发,分析了国内外编程教育的概况、编程教学中两种主流程序设计语言的特点及选择建议,并以贵州D 市S 学校为例,重点分析了影响编程教学的因素,最后提出开展编程教学的相关建议,以期为中小学校开展科技活动实践、为创客背景下的计算机编程教学提供有益的借鉴。