基于Python语言的算法与程序设计教学策略.docx
基于Python语言的算法与程序设计教学策略
Python作为一门“解释型”语言,可读性强,语法简便,能较好地引领学生进入程序设计的世界。算法是程序的灵魂,程序设计离不开算法。阐述用程序设计解决问题的一般过程与方法,有利于帮助学生理解算法在程序设计中的核心地位。本文将以三位信息技术教师在Python教学实践中存在的问题为切入点,针对算法与程序设计教学策略分析展开探讨。
●现状与问题
问题1:精英教学与普及教学的区别。一位资深信息学奥赛辅导教师,她的上课方式类似于信息学竞赛辅导,是属于精英教学方法,但在普及教学中,学生各方面水平和能力良莠不齐,所以精英教学方法不适合Python语言的普及教学。
问题2:照本宣科与教材处理的区别。一位是刚工作的新教师,没有教学计算机语言的经历,讲述语言很容易照本宣科,学生听得云里雾里。据学生反馈,学程序设计没有想象中的“有趣”,也没有想象中的“有用”;学生仅将教师的代码敲进去并运行出结果就停止了思考与学习,这样丝毫锻炼不了学生思维能力。
问题3:一般过程与表面有趣的区别。一位参加地市级优质课评比的高中信息技术教师,上课内容是《用计算机编程解决问题的一般过程》,因为是评比课,在试上时为追求热闹有趣的课堂氛围,他利用海龟画图命令进行项目式学习,从画直线、三角形、正方形到正N多边形,一堂课下来,感觉就是换了款软件上画画课。其实这堂课的重点是让学生了解用计算机编程解决问题的一般过程,即分析问题、设计算法、编写程序、调试运行程序。学生不清楚其一般过程,刚开始抱着很浓厚的学习兴趣,但往后学习会觉得越来越难而放弃学习。
●教学策略分析
1.结合生活创设问题情境,抽象建模提升学生思维
2.适调结构利用教材重点,注重编程解决问题方法
大部分程序设计教材都是按照“先理论后实践,先语句再程序”的顺序编排,2020浙教版信息技术八上也基本采用这种模式,若在教学中也是这个顺序,语法格式的讲解就只能是采用传统的讲解法,而学生对这种讲解一是没兴趣听,二是讲了与没讲一个样,在编辑应用中根本不会考虑语句格式。
(1)While循环语句的一般格式(如图1)。
(2)While循环的执行流程:当条件判断为True时,循环体被重复执行,当条件判断为False时退出循环,else子句的语句块才会被执行。若条件表达式的值一直为True,则While循环将一直执行。因此,在循环体中一定要包含改变测试条件的语句,使循环能够结束,以避免死循环。
(3)代码展示(如图2)。
这种上课的模式是比较传统的教学方式,只是在学习语言,学生的思维没有发生火花,不知道学了这个知识有什么用。
(1)提出While循环的思想,与For循环的区别。
For循环:一般用于次数的循环。
While循环:一般用于条件的循环。
(2)初探任务:快到寒假了,几个同学准备去游乐园玩,每位同学手里都有一张游乐卡,金额为200元,游乐园的项目价格都一样:摩天轮13元/次,海盗船13元/次,过山车13元/次……引导学生:①分析玩的过程:每玩一个项目,卡里的钱就会扣13元,一直玩,当卡里余额不足时就不能玩了。②设计算法:第一步,卡里初始金额是200元;第二步,玩的条件——当卡里余额大于13元才可以玩;第三步,玩的结果——每玩一个项目,卡里的钱会扣13元;第四步,一直玩,直到卡里余额不足即少于13元,游玩结束。根据上述算法,学生结合教材讲解实现程序语句,从而引出While语句格式(如上页图3)。
经历这种以学生熟悉的场景实例引入,引导学生问题分析、算法设计,再编写程序实现的过程,学生比较容易掌握While循环的思想、格式。
其实,新教材的第10课是循环结构——While循环(重点是讲解语句格式),第12课才是While循环的应用实例。通过这次的同课异构可以发现,把这两课的教材内容打散重组处理,每一节课抛出实例或生活中的问题,根据问题进行分析、抽象建模、设计算法,用自然语言或流程图表示算法,根据设计的算法用Python语言编写代码实现,在算法表示的对应步骤中穿插渗透相应的语法知识,最后调试运行,观察程序运行结果,能让学生的上课参与度更高,学习积极性更强,更有助于培养学生的计算思维,即解决问题的能力。
3.巧用错误认识语法规则,多样实现发散学生思维
有时候,程序运行不出但在相应行有显示,这说明程序存在语法错误。初学Python造成语法错误的常见原因有字母大小写不同意义、语句的缩进输入、中英文符号的混乱等,不过语法错误程序调试运行时会提示。鉴于此,笔者在课堂中因势利导,用这些语法错误来穿插讲解语法规则,让学生在改错中学习Python语言的语法规则,取得了不错的效果。当然,在展示学生程序时,细心的学生会发现,不同的程序表示会出现一致的程序结果,教师要及时引导学生分析程序,从而引出同一程序的多