面向实例应用的Python教学探讨
2021-05-24宋鸿梅韩连福吕秀丽周围付长凤韩建
宋鸿梅 韩连福 吕秀丽 周围 付长凤 韩建
摘要:python是当今最受欢迎的编程软件之一,在大学本科中也广泛开设python编程课程,但是大部分学生未能达成学习目标。返璞归真,回归学习的本质,以应用需求驱动学习,以生活实例探讨语法规则,激发学生学习兴趣,使学生学了python会用python,提升教学效果,让学生从被动学习变为主动学习。
关键词:python教学;教学方式;案例驱动
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2021)12-0018-02
、
苹果创始人乔布斯说过“每个人都应该学习编程”,奥巴马也曾表示“编程关乎美国的未来”。早在1984年,邓小平就发出了“计算机的普及要从娃娃抓起”。编程语言是工科大学生必须学习一门课程,尤其是电子、计算机相关专业。Python是一种面向对象的解释型语言,是自由语言,源代码和解释器遵循GPL协议,代码简洁清晰。Python语言在各个领域有着广泛的应用:如系统编程、图形处理、数学处理、文本处理、数据库编程、网络编程、Web编程、多媒体应用,尤其是在人工智能领域和数据分析领域有着广泛的应用。
1python教学中存在的问题
Python编程语言强大的功能和丰富的扩展库让其成为很多大学教学采用的编程语言,同时也受到同学们的欢迎。但是本科的课业繁重,python编程语言的课时也非常有限,python入门的例子往往也是求阶乘,判断素数,判断完全数等和生活脱节的例子,使得学生的学习枯燥乏味。最后往往兴趣殆尽,只学会了屏幕打印“Hello world!”,背离了学习的初衷。
2以需求促学习,让学习效果体现在生活中
需求是科技进步最为重要的动力,对于学生学习来说也不外于此。现代学习、生活往往离不开电脑的使用,如果可以自己编程实现一些学习、生活的需求,定会在一定程度上刺激学习兴趣,激发学习热情、提升学习效率。
大学本科阶段,学习任务繁重,学生伏案学习、工作的时间越来越长,或者有部分学生长时间沉迷游戏而没有得到及时提醒,浪费了大量宝贵时间,但又没有足够的自我管理能力。而且紧张的脑力工作使得对时间的流逝感觉迟钝,投入时往往两三个小时往往转瞬即过,站起来的时候才感到腰酸背痛,长此以往严重损耗了同学们的身体。养成良好的学习、工作习惯,每隔四五十分钟起来活动一下是一个非常值得推荐的做法。
3以贴近生活的实例探讨python语言要素
在程序语言设计的教学过程中,引导学生自己完成一款适合自己的桌面提醒软件,不仅会很好地锻炼学生的编程技能,并且加深对程序设计流程和相关编程语言知识的领会,激发学生编程爱好,长此以往一定会深层次的提升编程技能[1]。
借助于python语言来设计一款久坐提醒的桌面软件,实现这一提醒功能,是非常方便的,是同学们稍加努力就可做到的。
图1所示的代码段可以实现在预定的时间弹出一个图片,提示学生休息一下,编程时可以按照自己喜好选择一个比较有趣的图片,例如这里选择的是从百度图片里下载的如图2。然后稍微停顿一下,打开一个运动视频,学生可以跟着视频做一下室内运动,如图3所示。
程序虽然简短,但是包含的信息并不少。第一行代码“# -*- coding: utf-8 -*-”,编辑器自动生成,表示python3.x的采用的编码是utf-8. 第二行到第六行是注释信息,记录程序编写时间和作者,引導学生编程时,有详细的注释信息,养成良好的编程习惯。8、9、10、11行表明需要用到的模块,从而引导学生对python的模块进一步了解,模块是python的一大特色,极大地提升了代码的复用性。培养学生阅读帮助文档的习惯,例如webbrowser模块提供了一个高级界面,允许用户显示基于web的文档。这里采用的编程环境是spyder,在spyder的控制台,输入help(webbrowser), 会弹出简短的帮助文档[2]:
Help on module webbrowser:
NAME
webbrowser - Interfaces for launching and remotely controlling Web browsers.
MODULE REFERENCE
https://docs.python.org/3.8/library/webbrowser
然后按照提示便可以查找详细模块使用文档
time是经常使用的内置模块,time模块有着非常丰富的函数和方法,time模块为控制时间变量提供了丰富的函数。例如time.time()函数以秒为单位返回自第一台计算机问世以来的系统时间。time.sleep()函数可以让程序的执行暂停一段时间。通过time.gmtime()函数不止可以查询日期、时间、星期几,还可以知道一年过去了多少天。
Matplotlib是一个用于在Python中创建静态、动画和交互式可视化的综合库。是一个非常强大的绘图工具,使用起来和MATLAB非常相似,不止可以通过help函数获得使用信息,同样官网上有着教程,并且Matplotlib有中文官网,给学生的学习提供极大便利[3]。
通过13行进行设定工作时间,这里引入input()函数的使用,同时强调,input()的参数虽然是可选的,但是要养成添加提示信息的编程习惯,着重向学生说明程序可读性的重要性。input()输入的数据是字符串类型,如果后续需要计算,需要转换为数值类型,根据需要使用强制类型转换int()、float()。还可使用eval()进行强制类型转换,同时向学生介绍三种函数的特点和使用规则。
程序中用到几个函数:input()、sleep()、imread()等,提醒学生这些函数的不同之处,从环境配置到调用方式的不同。使学生了解Python模块函数的三个层次:
(1)内置函数,不需要import语句导入,函数可以直接调用,例如input()、eval()等;
(2)标准模块函数,用import语句导入后再调用,但不需要安装,例如time()模块,调用时需要指明命名空间;
(3)第三方模块函数,需要安装后才能使用,例如webbrowser、matplotlib。培养学生搭建开发环境的能力,养成阅读官网文档的习惯。
一段小程序中包含了大量python语言知识,通过实例的训练教学python语言要素,从理论到实际再到理论,加深对python的理解并逐渐使用python解决实际问题。诸如此类,由浅入深设立编程实例,锻炼学生的编程思维,凝练对语法和算法的理解,鼓励学生发散思维,如有突出表现,以成绩鼓励,用分数刺激学生主动学习[4]。
4总结
从Python教学中出现的问题出发,解决理论教学与生活实践脱节,学习兴趣逐渐减弱的问题,让学生在学校里的知识、技能应用的生活中去,从而激发学生学习兴趣。鼓励学生深入生活,勤于思考,把生活的实际应用和学习内容联系起来,用生活实例训练编程技能,学与用融会贯通,激发学生的创新意识,引导学生利用自己的所学让自己的生活更加科学、更加便利。
参考文献:
[1] 朱雄泳,张菲菲,陈忆群,等.新工科《Python程序设计》课程改革探索[J].电脑知识与技术,2020,16(24):131-133.
[2] Spyder documention, https://www.spyder-ide.org/.
[3] Matplotlib documentation, https://matplotlib.org/contents.html.
[4] 马文秀,李焱.Python程序设计从知识型课程向能力培养型课程的改革实践[J].电脑知识与技术,2019,15(28):162-163,187.
【通联编辑:代影】