新课程浪潮下的高中编程教育
2018-03-23江苏省淮安中学尹志云
□江苏省淮安中学 尹志云
为了适应科技时代的潮流,使我国在人工智能领域能够在世界上占有一席之地,2017年国务院发布了《新一代人工智能发展规划》,[1]提出了面向2030年我国新一代人工智能发展的指导思想、战略目标、重点任务和保障措施,部署构筑我国人工智能发展的先发优势,加快建设创新型国家和世界科技强国。与此相适应,越来越多的高校开设了人工智能专业。新一轮课程改革如火如荼,在高中的信息技术新教材中加入了编程教育,以往教材中的编程教育以“零食”的身份存在,而本次课改的编程教育则变成了“正餐”。以江苏的新课改为例,高中信息技术课程分为三个层级十个模块,三个层级分别为:必修、选择性必修和选修,“必修”是所有学生都要学习并且能够通过合格性考试,这个层级里包含两个模块:数据与计算以及信息系统与社会,其中,“数据与计算”模块里涉及到编程语言和算法思想,并且确定将python作为高中阶段的编程教学语言。[2]深入地看,三大类十个模块之间有一个共同点,就是都离不开编程,比如“选择性必修”里增加的模块,包括:人工智能初步、开源硬件项目设计等,以及“选修”里的算法初步和移动应用设计,无不体现出学习编程的意义。
目前,全国很多地方的中小学都在开展编程教育,有基于Scratch的创意编程,有基于C++的竞赛编程等。有的发达地区从小学四年级开始就开设了编程课,稍落后一些地区也在中学生可以参加的信息学奥赛的刺激下开展了针对竞赛生的编程教育。纵然情况不一,但无疑都在前进,编程教育势不可挡。
针对如此汹涌的改革浪潮,高中一线信息技术教师更需要思考的应该是如何有效地开展编程教育。在高中针对所有学生开展编程教育,这史无前例。所以我们需要去查阅大量资料,备好每一节课,激发学生的兴趣,提升学生的知识技能。结合实际情况,我主要从以下两方面入手:
一、“思维导图”用起来
学习一个新的知识甚至学科,最重要的就是要理清概念,概念不清对后续的深入学习将会产生巨大的障碍,直接影响到新知识的吸收甚至学生对该门学科的兴趣以及信心。特别是编程的内容,可以说对绝大部分学生(可能有极少学生在小学或者初中接触过)来讲是闻所未闻、毫无基础的全新内容。在课堂上,学生的表现往往会一脸茫然,不知所措。因此,编程课的首要任务就是帮助学生理清这门课的知识脉络,具体到每一节课,就是要求学生能够把一节的内容利用思维导图的形式作出总结,从而达到巩固知识点,打好地基的目的,为顺利衔接下一课做好准备。比如说,在python数据类型时,由于类型众多,所以等到最后一个类型讲完时,学生可能已经糊涂了,这个时候,教师要及时带领学生进行总结和回顾,利用“思维导图”工具,边作图边回忆,理清概念。思维导图可以用Xmind或者百度脑图,其中百度脑不用下载安装,且可以在线分享,所以我的课堂使用频率较高。
二、“画程”工具用起来
“画程”这个工具是湖北的伍先军[3]老师开发的,这个工具能够很好地帮助学生将算法思想和程序设计链接起来。我们在教学中常常发现,很多学生甚至包括一些老师经常会不自觉地将“算法”和“程序”的概念割裂开来。主要体现在两方面:首先,当一个问题出来时,学生们可以用纸和笔写出解决问题的步骤(即算法),却无法变成程序,上机验证自己的想法;其次,学生面对问题,启动编程软件时,又不知如何下手,忘记了程序实现的根本是算法。鉴于此,本人在课堂上采用了伍先军老师无偿分享的“画程”软件,将“程序”和“算法”完美地“结合”在一起,通过拖拽不同的图标,实现算法思想,同时还会自动生成对应的程序,方便学生学习,真可谓程序教学的神器。以“两数相加”的python程序为例。
最后,我们一线教师切记一条,高中阶段的编程教育主要目标是教会孩子解决问题的方法,锻炼孩子的计算思维以及培养孩子的学科核心素养,而不能用程序员的标准去要求学生,这样只会适得其反,扼杀他们的学习兴趣。现在的孩子都是生长在数字时代的土著,他们对数字时代的很多事物并不陌生,然而“数字土著”们如果不经过系统的培养,他们可能无法拥有这个时代要求的“计算思维”能力,不能成为真正的数字公民。作为一线教师,我们要牢记这一点,时刻关注学生的核心素养培养以及关键能力的提升。