时间:2024-05-04
宋鸿梅 曹志民 韩连福 付长凤 韩建
摘要:以Python编程语言课程为例,探索教学实例的设计与发掘。结合传统文化和生活实践的实例可以引发学生共鸣,产生良好的教学效果。设计典型案例,和学生讨论并选择方案,把Python语言要素融入案例中讲解,引导学生完善程序功能和优化,提高学生编程技能,培养编程习惯。
关键词:Python教学;课程思政;传统文化;实例教学
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2022)02-0158-02
编程是工科大学生必须掌握的一项技能,尤其是电子、计算机相关专业。而Python语言简单易学、功能强大,尤其在人工智能、大数据方面的应用,成为最为欢迎的编程语言之一[1]。
1 Python教学存在的问题
Python语言以其简单易学吸引着广大初学者,同时应用广泛促使大学纷纷开课,但是由于学时限制,只能做入门级的引导,而未实现其功能强大的优势。有限的课程学时能够让学时掌握Python的基本语言要素和基本规则,未能进一步深入探讨。学校的教学方式和学生们任务式学习往往使得学生完成任务之时便是抛弃Python之日,难以令其成为有效的学习研究工具。那么把学习Python变为使用Python,让Python融入生活,真正使Python成为除了母语、外语的第三门语言,才是真正达到了学习Python的目的。
2 学生情况分析
年轻学生的自我意识的觉醒达到了前所未有的高度,他们思维更加活跃,独立思考能力和判断能力极强,如果没有得到他们的认同,很难激发学习积极性,这当然是国家的发展社会的进步,我们需要这样的年轻人,但是这种与众不同的新青年同时给教育工作者带来一定的困难,经典的编程案例,如温度转换、计算完美数、输出素数等,可以完美体现程序的实质,即规则+算法,但是类似的例子比较枯燥,要么过于简单,完成程序编写没有成就感,要么没有明确的物理意义,没有办法直观感受应用。这类实例虽好,但很难达到激发学习热情,刺激独立思考的目的。针对学生特点和教学知识点,设计合适的教学案例对于教学效果和培养学生学习习惯是非常重要的。
3 教学实例设计
设计教学案例的基本原则就是要向学生灌输我们学习编程是为了用,“用”是出发点也是立足点,设计教学案例时围绕着“用”,这样可以比较容易引起学生共鸣,激发学生学习热情。
3.1 案例1. 应用Turtle库绘制太极图
在学习Turtle库绘图时,按照Turtle的官方文档通常绘制多边形、五角星等几何图形,这些很难引发学生的兴致,而太极图案与我们有着深远的文化渊源,是我国传统文化的瑰宝,充满了神秘色彩,令人神往遐思。太极图案也可以很好覆盖Turtle绘图指令,并且可简可繁,满足程序优化和功能拓展的需求,同时学习编程与传承民族文化有机结合,达到知识传授和技能培养与思政教育同行同向的要求。
绘制如图1所示的太极图案,图案由圆和直线组成,颜色有黑白两色,确定其相对位置关系就可以完成图案的绘制。
Turtle是Python的标准库,在使用时首先要导入库,使用指令为import turtle。Turtle基本绘图指令如表1所示。
3.2 案例2:查询某人出生的天干纪年及生辰属相
中华优秀传统文化是中华民族的精神命脉,是中华民族的“根”与“魂”,前辈们为了文化传承做出了艰苦的努力,而在当今的教学中,可以与时俱进,结合自己的教学内容肩负起新时代传统文化传播的重任。天干地支纪年和生肖是中华特有民族文化,并且可以如星座一般测试,这就成功地引发了学生的兴趣,在实际教学中的确也如预想一样,较之其他的案例,学生们更加兴致盎然,甚至纷纷对程序进行扩展,把自己感兴趣的内容加到程序中,课程项目取得了空前的成功,果然“知之者不如好之者,好之者不如乐之者”。
天干、地支中国古代为方便农时,常以天干地支来纪年、纪月、纪日、纪时。共有十天干和十二地支。其中十二地支与属相一一对应,它们分别是:[2]
十天干:
甲、乙、丙、丁、戊、己、庚、辛、壬、癸
十二地支:
子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥
對应的十二属相:
鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪
两者按固定的顺序互相配合,组成了干支纪法。公元纪年和干支纪年的换算关系为:
天干算法:用公元纪年数减3,除以10所得余数,就是天干所对应的位数;
地支算法:用公元纪年数减3,除以12所得余数,就是地支所对应的位数。
以2021年为例:
天干算法:(2021-3)%10=8, 8对应天干第8位是辛,即天干为辛;地支算法:(2021-3)%12=2,2对应地支第2位是丑,即地支为丑。所以公元2021年对应的干支纪年为辛丑(牛)年。
编写程序如图2所示。
这里有一个问题,输入的年份需要是农历,如果是公历,那么在年初的时候,换算结果是基本上不会正确。以2021年元旦为例,运行程序,会得到如下结果:
请输入出生日期(格式样例:2000 01 01)2021 01 01
您出生于辛丑年,属牛。
但是2021年元旦这天按照万年历是庚子年 鼠。所以需要修正这个程序,有两种修正方案,一个是在输入出生日期时输入农历,这个不太符合案例要求;另外一个方式是要把公历转换为农历。农历是天文历,公历是计算历,换算起来非常复杂,有人做了转换模块,可以拿来直接使用,这也是Python倡导的理念之一,“不要制造重复的轮子”。通过pip直接安装:pip install zhdate[3-4]程序代码如图3所示。
测试改程序,仍然使用2021年元旦:
请输入出生日期(格式样例:2000 01 01)2021 01 01
您出生于庚子年,属鼠。
程序的bug得到了修正。
这个案例用于教学取得了非常理想的效果,通过编程查询生肖,看似简单,但是埋藏着陷阱。公历纪年和农历纪年的大部分都可以重合,第一个程序也非常简单,只要了解两种纪年法的换算关系,并且会使用Python的字符串就可以编写程序,而且每一位同学都可以拿自己做测试,参与度高。在实际教学活动中,学生们也十分活跃,积极参与,取得了意想不到的效果,比方说生日在年初的学生甚至发现了程序中存在的问题,在帮助学生修正bug的时候向学生灌输Python的编程理念,介绍第三方库的使用,如何把自己的需求和已有的资源有机结合起来,从而快速高效地解决问题。
4 结束语
实例教学的推广已经很多年了,在教学实践证明中更好的实例选择才能达到更好的教学效果,好的实例可以激发学生学习兴趣,培养良好的思维习惯。多年的教学经验证明,从学生本身和学生生活中发掘的实例更加有亲和力,学生的参与度会显著提高,并且可以培养学生习惯课堂中学到的知识和技能解决生活中的问题。引导学生转变被动的学习态度,扎根于生活,灵活地运用知识,把学和用形成正向激励的机制,才是真正完成教学任务。
参考文献:
[1] 朱雄泳,张菲菲,陈忆群,等.新工科《Python程序设计》课程改革探索[J].电脑知识与技术,2020,16(24):131-133.
[2] 干支纪年[EB/OL].[2021-03-10].https://baike.baidu.com/item/%E5%B9%B2%E6%94%AF%E7%BA%AA%E5%B9%B4/3383226?fr=aladdin.
[3] 農历和阳历日期互转,Python实现.[EB/OL].[2021-03-10].https://blog.csdn.net/eylier/article/details/111145748.
[4] 不用网络接口直接本地计算中国农历,支持农历阳历互转.[EB/OL].[2021-03-10].https://github.com/CutePandaSh/zhdate.
【通联编辑:王力】
1819500783389
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!