Python+语文跨学科课程设计与实施
2022-04-23王佳莉
王佳莉
笔者所在学校在2020年下半年建立了人工智能实验室,在其畅言AI实验平台中,学生对自然语言处理中的四大名著分词颇有兴趣,并产生了疑问:中文分词和词频统计的核心算法是什么?针对这种情况,笔者利用Python编程,帮助学生掌握词频统计中的枚举算法。
● 核心素养的培养
语文核心素养由语言能力、思维能力、审美情趣、文化修养四个维度组成。在思维能力方面,笔者希望从“孙悟空”这个人物的高词频中解读出作者期待从人物角色中表达的情感及写作目的,并从两个学科的核心素养出发,找到两者之间的共性与交叉点,即通过词频数据分析,了解吴承恩在《西游记》中想要表达的重点。这是本节课跨学科教学最终要达到的目的。
● Python编程教学中存在的问题
①教学形式单一。很多教师采用先例题演示后学生操作的传统教学模式,导致课堂氛围沉闷,学生感到枯燥乏味。②课例枯燥。很多教师在Python编程教学中所用的课例较枯燥,没有结合初中生的年龄特点。③缺少灵活、高效的教学策略。
● 教学设计与实施
本节课的教学活动设计以学生实践探究为主,以学生为中心,教师在此过程主要起到引导作用。课题为“西游No.1,花落谁家——词频统计中的枚举算法”。
1.项目提出,认识枚举算法
(1)激趣导入
師:(播放《西游记》主题曲)刚刚听到的这首歌,出自哪里?(学生回答并简单介绍《西游记》)《西游记》里师徒四人,谁被作者提得最多?你统计过师徒四人分别在小说里各出现多少次吗?老师带来了《西游记》这本书,如果现在让你数“孙悟空”出现的次数,你可以吗?能描述一下自己数的过程吗?(学生尝试描述“数”的过程)
(2)词频统计
教师活动:讲解词频统计,即“统计一个词语在某篇文章中出现的次数”。
学生活动:小组合作,在西游记.txt文档中,快速统计出“孙悟空”出现的次数,并填写在学习单中(教师在PPT中明确任务目标)。
教师分析学生的查找过程,师生共同整理手工查找词频的思路。
(3)枚举法
总结:枚举法的算法思想是利用计算机运算速度快的特点,对要解决的问题中的所有可能答案一一列举,并进行判断,满足条件的保留,不满足的丢弃,最后得到符合要求的答案。
2.项目分析与算法设计,理解枚举算法
(1)自然语言描述枚举法
师生活动:以“孙悟空在旁闻听,喜得他抓耳挠腮,眉花眼笑”为例,用语言描述“孙悟空”一词人工枚举的过程。
师生总结:描述人工“数”的方法,其实就是用自然语言描述枚举算法。描述过程中有重复的部分,如一直用自然语言描述会显得烦琐且冗长,可改用流程图描述。
(2)枚举法对应流程图
师:流程图是用图形符号来描述解决问题的过程。请一名同学上来,根据自然语言描述人工枚举算法的过程,粘贴流程图。
教师引导学生从人工枚举过渡到流程图,学生根据人工枚举过程,自主完成流程图。学生完成流程图后发现新问题——流程图只实现了单个词语的判断,并没有实现“逐个列举”和“逐个验证”。教师引导学生补出流程线,实现列表中的循环。师生共同总结算法思路和流程图。
(3)人工枚举与计算机编程枚举对比
师生竞赛,看谁先完成“猪八戒”一词出现次数的统计。师与生的竞赛,实则是人工枚举和计算机程序枚举的竞赛。通过竞赛,可发现计算机程序枚举的优势——高速运算、快速处理、可重复执行算法。
提问:这段程序里蕴含了什么奥秘,能让计算机如此快速、高效地计算出次数呢?(学生回答)
3.项目实施,完善程序实现枚举算法
①流程图与Python编程。学生活动:运用“词频统计”程序,通过程序与流程图的对应关系,理解每条代码的含义。
②列表与变量。教师活动:通过动画演示,帮助学生理解列表与变量的概念。
③遍历列表——循环结构。教师活动:介绍Python列表中的循环。
④学生按不同角色完成程序。学生活动:小组内4人各自选择不同人物名称为枚举条件,并独立完成程序中“☆☆☆”的填空。
4.项目优化,修改枚举算法迭代程序
①发现问题。学生质疑:发现探究结果的问题——“孙悟空”全文仅出现126次。教师活动:播放《孙悟空》小视频,引导学生发现问题所在,即师徒四人均有别称。
②迭代程序。学生活动:利用逻辑运算符or,完善程序,并将人物的别称全部写进程序,进而实现程序的迭代。
5.项目总结,拓展研究视角归纳枚举算法
①项目总结。师生总结词频统计的意义。
②枚举算法的其他有趣应用。教师提问:《红楼梦》的后四十回到底是不是曹雪芹写的?你能用今天所学的技术来解决这一问题吗?
③全课总结,情感升华。
● 总结
1.课堂知识与其他学科巧妙融合
苏科版初中信息技术教材对枚举算法只是简单介绍了其概念和应用,传统的案例很难吸引学生的兴趣,而运用枚举算法与文艺相结合对《西游记》中师徒四人的词频进行统计,能够让学生感觉到技术严谨又有趣。
2.巧设陷阱,知识点螺旋上升
初次统计师徒四人的词频,既让学生体验到成功的喜悦,又带给学生新的思考:明明程序是对的,可为什么统计出的结果却明显错误呢?教师适时给出学习支架,让学生通过小视频的提示迅速找到解决问题的关键,从算法学习回归到真实的问题情境中,从而提升程序迭代的意识。
3.拓宽技术的应用面
对于词频统计和枚举算法,在总结环节笔者给学生列举了新的应用视角,激发学生对词频统计和枚举算法的学习兴趣,引导学生灵活运用所学知识解决实际问题,拓宽了学生的技术应用面。