Python语言教学实施与教师培训策略初探
2019-06-19王飞
王飞
当前Python程序设计教学现状和问题分析
目前,中学教师整体编程水平不高,部分甚至处于零起点。我们通过与教师交流和问卷调查了解到,绝大多数中学信息技术教师对于新技术和新内容具有较高的求知欲,但对于在中学阶段开设Python语言教学,一半以上持反对态度或处于困惑状态。
设计教师培训方案前,需要对中学Python教学中的需求进行整理,并从中选取适用于教师的案例,选择适当的教学方式。当前,采用Python语言的教学方式主要有如下几种。
1.基于一般算法问题开展教学
基于常见的数学问题,经过一系列的算法演示,生成最终的结果。常见的案例如航海问题、生成问题、排序问题、数字猜谜游戏等。
此类内容的选取降低了教师备课的难度,可以充分借助以往经验,有利于夯实学生的语法基础。其劣势在于对Python语言的特点呈现不够,优势无法凸显,不利于信息技术知识的梳理和思维方法的提升。
2.基于图形绘制问题开展教学
利用Turtle库(类似Logo语言)绘制图形,在绘制图形的过程中渗透相关知识。引入Turtle库帮助学生在学习的过程中生成更多生动形象的内容,能有效地激发学生的兴趣和参与度。由于语句相对简单,学生可以将主要时间、精力聚焦在思维层面。但是单一应用Turtle库,生成的作品和图形应用价值较低,实际意义不尽如人意。
3.基于图形化界面程序开发开展教学
Python提供的Tkinter库和Pygame扩展库可以使用户进行图形化程序的开发,从而使Python也可以设计美妙的交互式界面。教师从界面入手,以功能分析作为引入,从搭建界面开始,通过编写事件触发代码,实现各种功能。整个教学的内容主要以编写触发事件为主,强调面向对象的设计方法。
图形化库的引入使得教师的备课难度加大,界面的搭建和事件的響应需要大量面向对象的知识。大量的准备工作和搭建工作需要教师在备课时完成,课上需要学生完成的任务量相对较少,学生所学比较有限,投入产出比偏低。
4.基于数据处理应用开展教学
数据处理是Python最大的优势之一,借助丰富的工具和强大的数据处理能力,结合大数据平台接口,可以设计很多有实际意义的项目。
数据处理任务可以充分发挥Python的能力,选取实际生活中的真实问题,带领学生充分体验信息学中收集信息-处理数据-应用数据的整个流程,引导学生充分感知计算思维在问题解决中的巨大价值,也可以很好地和数学、科学、文学等问题进行整合。这种教学方式要求教师能熟练运用Python语言,同时需要有较强的数学基础,对教师要求较高。
5.基于人工智能技术体验开展教学
Python在机器学习算法设计和大数据处理方面的优势明显,上手容易,适合广大师生从应用层面进行发掘和实验,可以作为开展人工智能教学的重要实验工具。Python语言加上智能平台接口是目前人工智能技术教学实施可行的途径。但该类内容过于综合,从对大数据平台的调用到对生成的结果数据进行解析,应用的基础知识较多,生成的数据结构复杂,教学难度较大。
基于问题解决的培训方案设计
鉴于上述问题,开发一套具有普适性的培训方案,为教师提供相应的学习方法,保证其在今后能够独立不间断学习才是问题的关键。而解决这一问题的关键在于培训过程中基本思路和方法的渗透,站在问题解决的角度对Python相关内容进行知识的重新建构。
1.面向对象的方法与计算思维
Python语言是一门面向对象的动态解释型语言。“万物皆对象”是Python语言的一个重要特点。围绕这一特点,在指导学生学习的过程中,应该关注Python语言在解决问题时的基本思路。
与面向过程的语言聚焦问题的解决步骤不同,面向对象的思想方法强调将一个综合问题看成一个复杂的系统,然后抽象出相关的、不同类型的对象,通过对对象具体状态的描述(属性)和执行的功能(方法)去解读系统,最后将这些关系进行组合。
以游戏开发为例,面向对象的设计理念不是按照游戏的执行步骤和规则对其进行一步步描述,相反是要将游戏中的内容进行不同的分类与概括,如可控角色、敌人、奖励等,然后依次对他们的状态(外观、动作等)进行描述,同时对其可以进行的操作进行概括性描述(封装过程)。在描述之后,根据不同类型的内容创建具体的角色,根据上述描述的内容进行具体对象的创建(继承、多态)。最后是对规则进行描述,从而完成游戏的设计。
鉴于此种思想,学生和教师关注的不再是简单的语句,更多的是考虑系统背后的联系与数据的利用过程(如表1)。
2.问题解决方法的重构
在面向对象的基础上,利用Python语言解决问题的主要流程可总结为:在分析系统的基础之上,利用开源工具包构建对象,建立联系,通过特有的方法和属性完成对象的调用。程序的运行过程则是在程序三大结构基础之上对项目的过程进行描述和使用。最终,将生成的一系列内容转换为最基本的数据类型(字符串、列表、字典、元组、集合等)操作,通过这些数据进行条件的判断和流程的控制。
3.知识重构
在方法论的基础上,我们会看到,程序越到底层面临的内容越具体,问题越聚焦。因此,教学应强调最基本的知识,然后关注应用层面的升华。中学信息技术教师不需要掌握过多的开发库的应用方法和复杂的语法结构,而是要能够根据课程标准的要求,将Python语言中最基本最核心的内容进行提炼和整理。教师应尝试充分发挥Python的胶水特性,让知识节点存在关联不至于孤立,内容更加综合化。● Python教学实施策略与建议
1.实施的一般模式与方法
开展Python语言教学,建议使用项目教学方式。整个过程分为项目分析、分解问题、技术转换、数据处理和拓展引申几个环节。
首先对事件的流程进行分析,然后从中提取相关的对象。在提取对象后考虑要将问题进行分解,关注不同条件下对象的执行过程,同时思索每一步需要执行的技术要点。在完成要点分析后,考虑向具体的程序执行过程转化,在转化的过程中,教师注意引导学生与现有的知识建立联系,区分哪些是学生通过已有知识可以解决的内容,哪些是没有学过的内容,对于新知识可以考虑借助学案或者提供工具包和源码的方式帮助学生突破难点。在程序编写的过程中,要注意数据的流向、运算和处理过程,要关注影响判定结果的核心数据,同时还要注意实施过程中生成的内容,关注收集与存储方式,这些内容可以作为程序二次开发使用。最终的任务一定要开放,具有可拓展性。在拓展层面,教师要考虑两方面的内容,第一从代码结构到功能能否更加简洁与优化,第二是否可以添加拓展功能。
2.项目实施过程的建议
在项目的实施过程中,任务一定要综合,条理清晰,分解的问题既要有交集,又要保持问题解决方式方法的独立性,使学生可以用若干节课完成一个复杂的任务。每個基本问题都可以转化为若干个技术要点进行分析和实现。对于程序需要调用或生成的资源要建立合理的文件路径进行管理,教师一定要在这个过程中指导学生学习数据收集与整理的技巧与方法。在后期的拓展中,引导学生从数据处理的角度进行拓展与延伸,补充新的功能。
3.实施的案例应用——人脸对比项目思考
(1)进行项目分析
项目分析内容如表2所示。
(2)核心代码
核心代码包括摄像头采集的实现、人脸对比结果的呈现、对比后数据的应用三个部分。
①摄像头采集。摄像头的采集使用OpenCV扩展库,控制摄像头捕获动态图像。利用快捷键实现直接拍照功能,捕获当前帧的信息,生成图片文件。②人脸对比。利用百度工具包实现接口调用,将对比组图片进行编码传递给服务平台接口,通过服务端进行识别判断,将判定结果的数据返回给客户端。③对结果的应用。此部分内容可以让学生进行拓展,通过拿到的对比结果制订相应的规则,根据判定条件完成相应的操作,如直接输出信息、修改数据库状态、语音签到等。
综上所述,基于Python语言的程序教学在学科教学中还有很长的道路需要摸索,广大信息技术教师在不断淬炼新知和能力的同时,还需要关注学科体系的建设和学科核心素养的发展,在曲折中行进,不断提升自己的教学水平和专业地位。
参考文献:
[1]林伟,樊磊.在高中信息技术课中培养学生计算思维的有效方法探讨[J].新课程研究(下旬刊),2017(10):10-13.
[2]刘向永.面向核心素养的高中信息技术课程标准修订——访教育部高中信息技术课程标准修订组组长任友群教授[J].中国信息技术教育,2017(12):4-8.
[3]沈晓彬.浅谈高中信息技术学科中核心素养的培养[J].中华少年,2017(09):165-166.
[4]钟建业.高中信息技术教学评价指标体系研究[J].中小学信息技术教育,2017(03):56-58.
[5]胡正勇.高中信息技术核心素养的内涵分析[J].教育信息技术,2017(Z1):138-141.