Python教学探讨——以“简易收银系统”的设计与实现为例

发表时间:2021/6/10   来源:《教育研究》2021年6月   作者:周建华
[导读] 高中阶段学习计算机编程语言已经成为一种趋势,云南省在2020年开始把Python语言纳入到高中信息技术新增的内容之中,给目前的教学带来了许多新的变化和挑战。如何快速的开展教学?本文通过“简易收银系统”的教学实践,以任务驱动式教学法,把系统需要解决的问题分解到每一节课中,让学生在实践中循序渐进的体验程序设计的基本流程,在完成每个小模块的基础上层层深入,达到解决总任务的目标,取得了良好的教学效果。

云南省大理市大理第一中学 周建华     673100

【摘要】高中阶段学习计算机编程语言已经成为一种趋势,云南省在2020年开始把Python语言纳入到高中信息技术新增的内容之中,给目前的教学带来了许多新的变化和挑战。如何快速的开展教学?本文通过“简易收银系统”的教学实践,以任务驱动式教学法,把系统需要解决的问题分解到每一节课中,让学生在实践中循序渐进的体验程序设计的基本流程,在完成每个小模块的基础上层层深入,达到解决总任务的目标,取得了良好的教学效果。
【关键词】高中信息技术;python教学;案例探究
        学习计算机编程语言的重要性不言而喻,目的是让学生了解计算机解决问题的一般过程,掌握Python语言的基本知识,体验程序设计的基本流程,熟知计算机的编程思维。如何来实现既定的教学目标?本文通过创设生活中的购物收款情境,设计了“简易收银系统”教学案例供大家参考。
        一、Python教学现状分析
        Python语言是近几年很流行的计算机编程语言。笔者在边学边教过程中遇到了很多困惑,面临的问题主要有以下几方面:课时不足,学生在课堂上学习Python花费的时间不足24小时,在这么短的时间内了解一门计算机语言是非常困难的。学生基础薄弱,在义务教育阶段暂时没有开设编程方面的内容,所以零基础学Python又是学生面临的另一大挑战。教师初识Python,准备不足。大部分教师第一次接触Python语言,自己也需要大量的学习和编程实践。教学中难以把握教学的深浅,教材中的个别案例晦涩难懂,案例之间又缺乏连续性,所以在突破教学重难点方面面临了较大的困难。
        二、创设情境,确定需要解决的问题和任务
        本人在深入学习了人民邮电出版社出版,美国Eric Matthes著的《Python编程从入门到实践》[1]一书,结合教材和教学实践深受启发。针对Python《算法的程序实现》这部分内容,设计了“简易收银系统”的教学案例,利用学生日常购物时收款的场景,激发学习兴趣。
        任务驱动式教学法旨在为学生提供真实的情景,让他们围绕任务去体验实践、感悟和学习,在编程实践中教学效果更佳。案例中需要解决的总任务:用Python语言实现简易收银系统的编程开发。首先把总任务细分成多个小任务,然后把每一个模块的知识点对应到容易掌握的小任务当中,一个小任务完成了,学生就会获得成就感、满足感,从而激发他们的求知欲。
        依据前期的算法设计,教师提供帮助下带领学生探索出简约而清晰的子任务:1.用print函数输出欢迎信息;2.初始化商品总价;3.用字典来存放商品信息,包括商品编号和价格;4.用while循环连续接收商品编码的input输入。如果商品编码在字典中,价格累加后输出商品数据及当前应付总额;如果商品编号不在字典中,则输出“找不到商品”提示信息;如果用户输入“quit”时,flag赋值为False,输出购物总价并退出程序;5.if-elif-else分支结构中涉及到数据类型的转换、关系运算、算数运算。



        三、自主探究,完成任务。
        模块化的Python教学思想引领全局,以“任务为主线,教师为主导,学生为主体”来逐步探究知识点和任务模块之间的联系,引导学生逐个实现分解的任务。编程最有用的办法就是先编写行之有效的代码,然后几节课之间串联起来,在小模块的基础上做进一步的改进和升级。案例设计的连续性和系统性就显得尤为重要,始终把主任务贯穿于整个Python的教学过程中,这也符合Python的设计理念“简单胜于复杂”,在潜移默化中教会学生编程。
        任务融入到具体的知识点,基础中体现变化。在具体的教学实践方面,第一节课设计了一个print("Hello Python World!")的小程序。紧接着引导学生给出第二个print("欢迎来到简易收银系统"),这样做的目的就是让Python编程和实际问题结合起来,学生在实践探究中完成小任务,同时也是知识点的迁移和拓展。
        以此类推,在学习赋值和变量的模块时,商品总价初始化sum=0引入到本节。在学习数据类型的转换时,如int(goods[good])。input函数做简单的改变为good=input("请输入商品编码:退出请输入'quit:'"),这就完成了从输入再到给变量赋值的过程。继续加入关系运算可为if good=="quit":,顺势就可以引出if-elif-else分支结构的学习。字典模块用于存放商品信息goods={'1':'10','2':'20'},引入成员资格运算符in,用if good in goods:完成商品数据校验,商品总价引入累加模型sum=sum+int(goods[good])。
        小任务的串联和升华,教师则提供所需的资源和线索,倡导学生展开讨论和交流,在反复纠错和问题点拨中给予学生最大的帮助。整合前期各阶段的小任务,补充和修正学生解决当前问题的方案,最终完成代码的编写和调试。
        四、效果检测与反思
        注重对学生在完成任务的过程和结果作出评价。课堂观察学生的小任务完成情况,做好记录和及时反馈,对有困难的学生要给予及时的帮助和指导。自主探究学习时,尽可能的提供更多的学习资源和辅导,和学生共同探讨解决问题的多种途径和方法。在自主学习、知识探究、技能拓展、协作学习方面表现突出的给予表扬和展示的机会。
        打好基础才是关键。一个简单的任务需要反复多次才能完成,尤其是在语法规则、代码的编写和调试方面花费了大量的时间和精力。所以前期的教学内容不宜安排太多,每行代码的注释很重要,先学会读懂代码,再来编写,切莫操之过急,让学生有更多的时间去体会编程的魅力。
        通过简易收银系统的编程实践,学生在完成任务中习得了用计算机解决问题的能力,核心素养计算思维也得到了落实。模块化的编程思想和任务驱动式教学结合在一起,学习Python变得有趣、有意思,让我们在学习中有进步,探索中有提高,做一个快乐的Python学习者和教授者。
【参考文献】
[1]Eric Matthes.袁国忠.Python编程从入门到实践[M].北京:人民邮电出版社,2016.

 

投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: