摘要:本文从教师的主体认知和教学策略两个方面探讨了当前中小学编程教育开展过程中存在的师资力量跟不上、教师教学难胜任等问题,并就信息技术教师如何上好编程课提出了相应的对策和建议。
关键词:中小学;编程教育;计算思维;主体认知;教学策略
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2021)02-0096-03
按照我国中小学校的课程设置,信息技术课是提升学生信息素养、培养学生计算思维的重要载体。随着课程改革的不断推进,信息技术教材里面新增或更新了相关的编程内容,其中小学阶段以图形化编程为主,中学阶段则以Python编程为主。
如何上好编程课,是摆在每一位信息技术教师面前的新课题。课标的迭代、教学内容的更新,让不少信息技术教师感到力不从心。“中小学信息技术教师编程教育胜任力调查”结果显示,当前在中小学开展编程教学最大的困难是“师资力量跟不上”(多达80%的受访者选择此项),远远高于“学校领导不重视”和“学生兴趣度不高”等选项,教师对编程教育的胜任情况不容乐观。
从调查问卷中,笔者选取了四道典型的能够反映“教学过程胜任情况”的题目,结果如表1所示。
从结果可以看出,在与“教学过程胜任情况”关联最密切的教师主体认知和教学策略两方面,都能完全胜任编程教学的教师仅占受访者的20%左右,相当比例信息技术教师的编程课胜任能力有待提高。如何改善这种现状?如何才能上好编程课?提升教师综合素质和业务能力是一项综合性的工作,本文中,笔者仅从教师的主体认知和教学策略两个方面进行阐述。
● 提高主体认知,做到“知其所以然”
1.编程教育走进中小学是大势所趋
在中小学开设编程课程,让学生尽早学习编程知识,掌握编程技能,培养计算思维,已成为中外教育学界的普遍共识。
美国、英国等发达国家从幼儿园到高中都配置了计算机科学课程,系统讲授包含编程在内的计算机科学知识。除学校教育外,非营利组织Code.org发起的“Hour of Code Activities”活动(编程一小时)也在学校内外引起了广泛关注。“编程一小时”活动以学生们耳熟能详的“我的世界”“星球大战”等游戏或故事为载体,在“玩”中学习编程,这种寓教于乐的形式迅速吸引了众多学生参与其中,并让他们意识到计算机科学教育的重要性。
我国在2017年发布了《新一代人工智能发展规划》,明确提出“在中小学阶段设置人工智能课程、推广编程教育”。截至目前,中小学信息技术教材中均已更新或增设了编程内容。例如,山东省在小学第三册《信息技术》教材中增设了图形化编程Scraino的内容,在初中第三册更新了Python程序设计和App Inventor手机应用开发,在第四册开设了BBC micro:bit的相关课程,在高中全面学习算法和Python程序设计。
教育学界普遍认为,在中小学开设编程课程,普及编程知识,提升学生的逻辑思维能力,培养他们的计算思维,是积极拥抱人工智能时代的必然举措。
2.发展学生计算思維的必然要求
在人工智能时代,学习不应仅着眼于“知识”即事实的学习,应更多地训练“思维”,当今世界的知识膨胀速度之快是非常惊人的,每个学生在这样的大背景下都应该具备计算思维的能力,对外界信息的获取有所选择,应学习经典的、对人们现在和未来有深刻影响的思维模式。[1]计算思维是每个人都应具备的一种思维方式,目前,国家和地方出台了多个政策性文件,大力倡导创新能力的培养,计算思维的建立是培养创新能力的重要手段。
中小学阶段学习编程是建立计算思维的最有效途径。让学生学习编程不是简单地学会罗列代码,因为教育的初衷并非简单的培养更多的程序员,而是要通过学习编程使学生认识到信息化的本质,掌握AI时代的学习方法,进而建立计算思维,提升信息素养。
● 明确教学策略,做到“知行合一”
1.构建符合青少年认知发展规律的教学策略
心理学家皮亚杰将青少年认知特征[2]归纳为如表2所示的四个阶段。知晓青少年的认知特征有助于教师构建有效的教学策略。
从皮亚杰的理论可以看出,青少年的认知在不同的年龄阶段有不同的认知特征。不同深度的编程课程能够使各年龄阶段的青少年在实践中学、在学中实践,通过游戏与寓教于乐的方式来完成编程的学习,这都高度契合了青少年的认知特征。同时,了解了不同年龄阶段所对应的不同的认知特征,也有助于教师在设计教学内容时避开不符合教学对象认知特征的教学知识和教学方法,从而提高教学效率。
2.教学设计时须重点考虑的几个要素
兴趣是最好的老师。教师的教学设计应做到寓教于乐,让学生在玩中学、在学中玩,将多种好玩、有趣的方法、形式(如游戏、故事)灵活组合、合理应用,提高学生学习的主动性和参与度。
(1)注重多学科融合。信息素养的关键在于“嵌入在其他知识领域”,教师在教学中应避免“单打独斗”的局面,学会用编程知识去解决学科知识。例如,在小学阶段学习图形化编程时,可以注意多与数学知识进行融合,由于编程和数学有着密不可分的联系,很多编程知识都涉及数学上的负数、角度、坐标系等知识点,所以在进行编程教学时,应该注重与其他学科的融合,为学生打下更坚实的学习根基。
(2)多采取“项目导入、任务驱动”的教学方法。以实操和实践类项目导入、任务驱动教学法贯穿教与学的始终,激发学生的学习兴趣和动力;由学生亲自进行项目设计、创新,逐步做到学以致用。例如,在中学阶段讲授Python基础知识——print()函数时,以格式化输出一首唐诗为项目导入,既可与传统文化知识结合,又可激发学生完成任务的学习兴趣,让学生在边学边练中牢固掌握print()的使用方法。
(3)重视算法的讲授和练习。在中小学讲授编程,并不是为了培养专业的程序员,而是通过学习让学生逐步理解、体验编程,掌握编程中的逻辑操作及算法、数据结构等通用的工程方法与知识,这些核心知识才是编程的灵魂。让学生理解算法的含义、基本表示方法、算法的描述(如通过流程图、伪代码等描述),以及算法是如何转换成为相应的程序,并精确、清楚地执行的。这样,在学生需要使用新的编程语言时,这些核心知识能够帮助他们更快地融会贯通。更重要的是,学生可以脱离编程语言,更纯粹地思考如何让计算机解决问题,也就是让学生具有计算思维。[3]
(4)注重作品的分享。项目开发一般是按照“明确需求、算法设计、代码编写、调试运行、共享发布”的流程进行的。共享发布作为检验学生学习成果、激发创作兴趣的重要举措,是提供给学生展示的舞台。学生通过展示、交流,相互借鉴,共同提高,在分享的过程中增强创作的信心,激发创作的灵感。
在人工智能时代,编程可能会发展成为一项基础技能,所以在中小学普及编程教育有着极其重要的意义。编程课既是信息技术课的重要组成部分,也是一门综合性很强的基础性课程,是一门蕴含着青少年无限未来的年轻课程。对于学生而言,编程学习可以学会一种新的解决问题的技能,发展抽象思维和逻辑思维能力,并能够利用计算思维分析问题,进而通过编写程序解决相关问题。因而,培养学生具备面向未来的计算思维和解决问题的能力,信息技术教师责无旁贷。
参考文献:
[1]艾伦.中小学人工智能课程定位分析[J].中国现代教育装备,2017(20):1-5.
[2]叶浩生.西方心理学理论与流派[M].广州:广东高等教育出版社,2004,8.
[3]刘欣.追本溯源探寻编程教育的本质[J].中国科技教育,2018(01).
作者简介:尹弘震,硕士学位,主要研究方向为中小学信息技术教研、创客教育、编程教育。
本文是山东省教育科学研究重点课题“人工智能视野下初中和小学编程教育的校本研究”(课题批准号:2018JXZ3009)的研究成果。