Python在中小学教学中的应用
2018-09-13赵福生刘力
赵福生 刘力
摘要:在中小学信息技术课程标准中,都有“算法和编程”的模块,它既是信息技术的核心,也是难点,信息技术教师应该把这部分放在培养学生兴趣的位置,既不是走走形式,也不是培养他们成为程序员,我们教孩子学习编程的目的不是鼓励孩子学习计算机专业,而是借助这样一种工具锻炼孩子的逻辑思维,增强信息技术意识,培养他们处理数据的能力。那么选择什么样的语言比较合适成为话题,很多省市选择了Python语言,该文结合Pythton的功能分析它的优势有哪些,中小学教师如何发挥它的优势展开教学,如何克服初学者学习编程的障碍,突破语言难点,增加学生兴趣,达到课程标准。
关键词:Python;课程标准;信息素养
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)17-0190-02
最近Python语言已经进入山东省小学教材,浙江省信息技术教材也将启用Python,这意味着可能成为高考内容之一,北京市也确定把Python编程基础纳入信息技术课程和高考的内容体系。那么Python成为很受欢迎的语言,它的独特优势在哪儿,中小学生能够容易接受吗,它能培养学生的编程思维或提高数据处理的能力吗?
解答上述问题,首先要明确我們的目标是培养中小学生的信息素养,简单点儿说是数据处理能力,进而逐步培养计算思维(信息技术课程的核心素养之一),而不是培养所有学生都成为程序员,或是以后选择计算机专业。当前,编程能力正在与阅读、写作、算术成为学生从小具备的能力之一,就是说,我们希望找到一种语言,能够简单明了、高效直接地表达算法,越接近自然语言越好,这样学生可以将注意力集中在算法本身,尽量少的去思考存储空间,内存等计算机系统方面的知识,因为那样会有很多课程如《数据结构》、《计算机系统》需要额外学习,这显然不符合实际。还有我们希望它能有广泛的用途,比较长的生命周期,于是Python成为了首选,现在笔者结合中小学生初学编程的需求,课程标准的要求,给出如何利用Python的优势在教学中培养学生的信息素养、计算思维等一些建议。
在义务教育阶段,尚没有国家正式颁布的《信息技术课程标准》,可以参考中国教育技术协会信息技术教育专业委员会2012年修订的《基础教育信息技术课程标准》1,在小学部分的课程模块“结构与算法”里有3点要求:(1) 结合生活中的具体问题,能够用自然语言及手工画流程图的方式描写解决问题的过程;能读懂流程图;与使用自然语言相比较,体验使用流程图方式的优点;(2) 熟悉一种积木式程序设计工具的图形化编程环境;(3) 结合实例使用积木式程序设计工具,体验程序设计作为一种特殊的信息加工处理方式的特点和优势。其中第(2)点用Scratch软件即可实现,第(3)点教师们普遍感到无从下手,因为没有一种足够“弱类型”的语言,让学生不用过多关注语言本身,而是作为一种信息加工处理方式去体验程序的必要性和优势。现在Python语言可以解决这个问题,它的特点就是“弱类型”,我们用对比的方式进行说明。众所周知的C语言就是强类型,要处理字符型的数据,一定要声明字符数组或字符串,并要包含字符串头文件,#include
在初中阶段,《基础教育信息技术课程标准》里提出了“了解高级程序设计语言的概念,熟悉一种可视化程序开发工具的编程环境,借助实例理解控件、对象、属性等基本概念,掌握程序的编辑、编译、运行的方法”等11点要求。Python语言即是实现这些标准是最佳选择,举一个“面向对象”的例子3:
这是一个“找完全平均数”的小程序,第1行是导入数学库,意味着要用到数学相关的运算,第3行用对象的引用符“.”,所以称它结合了面向对象语言的优点。
笔者建议义务教育阶段的教师在技术上不用讲解太深,只需用一本“Python语言基础教程”方面的教材,根据课程标准,结合学生特点,重点是演示程序的工作方式,介绍算法的原理,教学中多列举一些数字计算的例子,因为小学高年级和初中生已经具备了一定的数学基础,快速的数字计算是人类的弱项,恰好是计算机和程序的强项,先让学生们用纸笔计算,应用建构主义理论,再拿出一段程序去演示,对比的教学方式一定会让学生们被计算机和程序的神奇所吸引,产生极大的兴趣。Python在语言规则方面障碍低,功能强,能否利用好它的特点,不拘泥于某种语言,是教师培养学生信息素养的最佳途径。
在高中阶段,2017年国家正式颁布了《普通高中信息技术课程标准》4,在课程结构设计上,加入了当前热门的模块四-人工智能,这部分对于一般语言来说切入难度较大,但是Python的“类库”十分丰富,包含了人工智能部分,“类库”即功能模块,越丰富,完成的功能越多,效率越高,被形象地称作“内置电池”,而且还有大量的第三方库,可拿过来直接使用。高中阶段的教师对“选择性必修”模块应根据学生的接受能力主要从质性角度去讲解,从性质、特点、功能的介绍调动学生的兴趣,如“数据结构”的“树”型结构,它的主要应用是“棋类”搜索,并启发学生是否还有其他用途,“图”型结构主要用于“交通类”程序等等,如果把功夫用在内部细节上,课时肯定不够用,与“课标组”的初衷背道而驰,还扼杀了学生对课程的兴趣。
Python语言还要其他很多优点:不考虑内存,动态加载,胶水语言等等5,就像其他语言一样,它也有缺点,但这不影响Python的普及,每种语言都有它自己的用途。还是那句话,我们教孩子写程序的目的不是要培养“程序猿”,而是帮助孩子表达自我和组织观点的新途径,锻炼孩子的逻辑思维,培养孩子的科学素养。
参考文献:
[1] 基础教育信息技术课程标准(2012版) [EB/OL].[2012-05].https://wenku.baidu.com/view/ 51e9513331b765ce04081447.
[2] David Beazley & Brian Jones. Python Cookbook[M].北京:人民邮电出版社,2015:16-17.
[3] Mark Summerfield. Python编程实战[M].北京:机械工业出版社,26-29.
[4] 普通高中信息技术课程标准(2017版)[EB/OL].[2017].https://wenku.baidu.com/view/ 5681a5752379168884868762c aaedd3383c4b594.html.
[5] 你都用Python做什么?[EB/OL].[2015-10-28]. https://www.zhihu.com/question/.