加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

基于枚举算法的问题解决——解密唐朝诗人间的关系(全国示范课特等奖)

(2019-11-27 11:00:20)
标签:

枚举算法

分类: 信息技术

基于枚举算法的问题解决

——解密唐朝诗人间的关系

天津市南开中学滨海生态城学校 李敏


【对应课标的内容要求】

1.6运用恰当的描述方法和控制结构表示简单算法。

1.7使用程序设计语言实现简单算法。通过解决实际问题,体验程序设计的基本流程。

【教材分析】

本课选自人教地图版《数据与计算》的第二章《算法与程序实现》,教材第二章按照计算机解决问题的过程展开,第四节是在学生掌握算法与程序设计基本知识的基础上,进一步理解常见算法及其程序实现的过程,并考虑算法的效率。本课为第2课时,主要内容为理解枚举算法。由于本课时需要在本章前面章节项目实施的基础上进行。考虑到借班上课中学生的基础和课堂实施效果,我对教材内容进行处理,删减了算法效率内容,重新设计了本节课的研究问题。

【学情分析】

当今社会,各类信息技术应用程序充斥生活学习的各个角落,学生习惯用技术解决问题,但他们只是被动的使用者,很少关注算法在其中所起的作用,也很少有意识主动用技术去创新或研究问题。表现在知识技能、生活经验等方面。另外,学生从小就学习大量古诗,但对于诗人间的“关系”了解不多却非常感兴趣。而对于腾冲一中学生而言,之前没有接触过算法与程序,没有Python编程基础。

【教学目标】

基于以上学情,结合课程标准和教材,我的教学目标制定如下:

(1)了解枚举算法求解问题的基本过程,理解其基本思想,能用流程图描述该算法。(计算思维)

(2)理解枚举算法的编程实现过程,能编写程序并调试运行实现问题求解。(计算思维、数字化学习与创新)

(3)通过项目研究,认识枚举算法在学习生活中的应用价值,理解用计算机解决问题的优势。(信息意识、信息社会责任)

【教学重难点】

教学重点:理解枚举算法思想,能用流程图描述该算法,体验用枚举思想解决问题的过程。

教学难点:编写程序实现枚举算法解决相关问题。

【教学策略】

本课首先通过人工“查找诗人之间的关系”,了解枚举算法的基本思想。然后,通过抽象分析问题解决过程,结合数据类型类比得到计算机处理流程,并完善程序实现项目,得出诗人之间的关系。最后,归纳“解密唐朝诗人间的关系”项目,总结枚举算法特点并拓展其应用。

其中用到的教与学的方法主要有:项目学习、合作探究、启发式、探究法。

【教学资源】

学习单以及半成品Python程序

【教学过程】


一、项目活动热身,认识枚举算法
1. 师生围绕现代社会通过朋友圈点赞等判断两人之间的关系,抛出疑问:古时候如何判断两个人之间的关系呢?
2.结合学生的回答,师生共同观看视频,梳理盛唐几位诗人之间的关系,确定本课项目主题和范围。
项目主题:解密唐朝诗人之间的关系;
研究范围:以盛唐几位诗人(杜甫、李白、孟浩然、王维等)为例研究,感兴趣的同学,可以拓展研究更多唐朝诗人。
3.学生以小组为单位,在指定时间内查找唐诗文档中杜甫给李白的古诗,填写在学习单中。
4.分析学生的查找过程,师生共同整理问题解决思路:需要在唐诗库中对每一首古诗进行列举并判断。引出这种解决问题的方法即为枚举算法,并提出枚举算法的两个关键点:逐一列举和逐个验证。
设计意图:
本环节由学生熟识的朋友圈和微博@引入古代诗人间关系的判断,问题的切入比较独特,很容易激发学生的研究兴趣,为后续项目实施奠定基础。此外,由人工枚举解决问题入手,既初步帮助学生认识枚举算法及其基本原理,又让学生感受到枚举算法在实际生活中应用的普遍性,为后续计算机枚举做了铺垫。


二、项目分析与算法设计,理解枚举算法
1.师生分析人工枚举的问题,引出用计算机实现问题解决。

2.师生共同分析计算机实现枚举过程的步骤,学生绘制对应的流程图。
3.展示学生的流程图,分析问题,再次引导学生理解枚举算法解决该问题的过程。
设计意图:
本环节用流程图描述计算机求解诗人关系的枚举算法是本节课的重点也是难点,同时也是发展计算思维的关键。其中,通过对人工枚举过程的细化,帮助学生进一步深化对枚举算法的认识,理解算法步骤在计算机解决问题中的作用。最后设计得到的完整流程图,既是本课学习的关键内容,也是后面程序实现的重要依据。


三、项目初体验,编写程序语句实现枚举算法
1.教师引导学生认识流程图中算法步骤所对应的关键程序语句。考虑到学生的基础,教师引导给出采用Python语言编程的具体语句示范。

2.学生依据学习单,分组完善Python程序,查找诗人关系,并填写表格。


设计意图:

本环节主要是根据设计好的算法进行程序实现。考虑到学生之前没有接触过Python语句,不太了解相关程序语句及功能,因此为本节课的第二个教学难点。为了在短时间内有效突破难点,设计了两个半成品程序,分别指向枚举算法的两个关键点,学生通过补全半成品的程序,关注枚举算法的核心实现。

四、项目实现,修改枚举算法完善程序
1.展示学生的程序运行结果并分析问题解决效果(杜甫提及李白的古诗为10首,但对比史料记载,杜甫提及李白的古诗为12首),提出思考问题:如何修改枚举算法呢?
2.学生讨论交流并结合任务单进行思考,算法完善的位置应该是A还是B?
3.师生交流,进一步确定出结果遗漏的原因:需要加入对诗人别称的检验,应该在枚举过程中,增加一个判断检验条件。
4.师生共同修改完善程序,完成项目的研究。
5.师生围绕研究结果进行讨论。
设计意图:
本环节结合对程序运行结果的问题分析,引导学生关注程序调试运行的作用,并进一步加深对算法作用的理解,在采用枚举法解决问题的过程中,验证条件至关重要。其中,对于项目研究结果的讨论,再次让学生从技术学习回归到真实的问题解决中,给了学生一种基于数据研究唐诗的视角,激发他们后续综合应用语文、历史等学科知识进行深入探索研究的兴趣。

五、项目总结,归纳枚举算法拓展研究视角
1. 师生总结本节项目研究的过程以及枚举算法的基本思想,归纳枚举算法适合解决问题的特点。
2. 提出问题:枚举算法还可以用于解决哪些问题:
设计意图:
本环节的设计是对枚举算法的延伸和总结。一方面,引导学生思考枚举算法的适用特点;另一方面,引导学生思考在日常生活中的应用案例,帮助学生对枚举算法有一个全面的认识。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有