内容正文:
【课题与课时】
课题:图书小管家
课时:1课时
【学习目标】
1.了解程序设计的一般步骤,知道模块化程序设计的一般方法。
2.能够综合运用所学知识,解决生活中的常见问题;能够从规划到设计有步骤的完成一个简易程序。
3.进一步提升分析问题解决问题的能力,培养做事有条理的好习惯。
4.二分查找算法
【评价任务】完成学习任务1,课堂检测。
完成学习任务2,课堂检测。
完成学习任务3,课堂检测。
重点:综合运用所学知识,解决生活中的常见问题。
难点:培养从规划到设计有步骤的完成一个简易程序的能力。
教具准备:安装有python3.6的计算机
【学习过程】
环节名称
活动设计(任务、步骤、要求、成果)
设计意图
反思
第一环节
生活发现
一、生活情境
为了丰富同学们的课余生活,学校为每个班级购入了一些图书,同学们也把自己的藏书捐献出来,建了一个小小图书角。随着图书数量的增加,管理也变的有些困难。在学习了python程序设计之后,你们都掌握了一些编程技巧,那么有没有办法让电脑成为我们的图书管理小助手呢?
二、问题提出
引导策略:引导学生将生活情景转换为程序问题
如:你能试着将电脑助手的功能用语言描述出来吗?
1.讨论问题
(1)怎样才能让电脑帮我们管理图书?(编写一个简易的图书管理程序)
(2)电脑帮我们管理图书有什么好处?(快速、便捷、精确)
2.生成问题
(1)图书管理程序需要哪些功能?(编辑、保存、统计、查询等)
(2)每个功能需要用到我们学过的哪些知识,怎么实现?(主要用列表和函数来实现)
(3)通过什么样的形式分配组员完成程序?(将主程序分解成若干板块,每人负责不同的板块,再合在一起共同调试)
三、我的设想
(小组讨论____分钟)
1.小组讨论,绘制主要功能流程图
2.组间进行评价,根据流程图讨论程序功能是否完善和流程是否准确。
第二环节
庖丁解牛
引导策略:引导学生分析问题,了解规划一个程序项目的基本步骤。
如:通过对问题的分析可知,使用程序的人需求的功能大概有添加、删除、排序、查找等功能,另外要设计保存和退出等程序基本功能。
一、规划程序
步骤1:分析规划
对于一般的程序,可以按以下步骤进行,根据问题需要,其中的某些步骤也可以根据情况灵活调整。
步骤2:画出流程图。
示例流程图:
步骤3:分配任务
1、组员认领各自任务。
2、记录自己所使用的函数。
3、有专人编写主程序和公用函数
二、编写代码
步骤1:添加图书
1、分配任务
addbook)()函数
2、代码示例
步骤2:删除图书
1、分配任务
delbook()函数
2、代码示例
步骤3:查询图书
1、分配任务
seekbook()函数
2、代码示例
步骤4:显示所有
1、分配任务
showbook()函数
2、代码示例
步骤5:保存退出
1、分配任务
savebook()函数
2、代码示例
步骤6:总装程序
1、分配任务
getbook()函数
主程序
2、代码示例:
三、完善程序
步骤1:测试程序
实际运行程序,输入数据进行测试,记录出现的错误并加以修改。
步骤2:完善功能
根据测试结果调整各模块的功能使之更加实用和便捷。
(分开“保存”和“退出”功能,使用字典来记录更多图书信息等)
四、算法研究
步骤1:对查找功能进行分析
如果给定1到100的整数中随机抽取一个n让你猜,需要几次能够猜对?
分析:若从1开始猜,需要n次,最少1次最多100次。
思考:若有更多的数据进行查找,最多可能性为查找所有数据一次,有没有办法简化一下算法?
步骤2:算法优化
分析:可以先找到50若不对返回“大”或“小”,然后再查找一半的中间值,这样重复很快就能找到需要的数值。
思考:
1. 请实验一下,对1至100个数,最多需要几次能够找到n?
1. 比较一般情况下两种算法的效率。
1. 第二种算法实现的前提条件?
步骤3:二分查找法
二分查找要求线性表中的结点按关键字值升序或降序排列,用给定值k先与中间节点的关键字比较。中间节点把线性表分成两个子表,若相等则查找成功;若不想等,再根据k与该中间结点关键字的比较结果确定下一步查找哪个子表。这样继续进行,直到查找到或查找结束发现表中没有这样的结点。
步骤4:程序功能扩展
若在程序里增加记录图书价格的功能,就可以根据价格查找书籍。请试着用二分查找法来编写该程序功能。
第三环节
学以致用
一、创意研究
引导策略:引导学生思考本程序的外观美化问题。
如:现在我们已经有能力自己分析解决问题并设计一个完整的程序了,但美中不足的是只有文字组成界面,如果我们能设计出具有漂亮图形界面的程序那该有多好