结合高一学生基础,通过狼羊菜过河的问题,探究解决问题的过程,即算法,有趣的编程实例——"最强大脑"游戏,初步了解算法的三种基本结构,即顺序结构、分支结构和循环结构,以及用自然语言和流程图对算法进行描述,熟悉计算机程序设计语言Python的开发环境,了解程序设计语言的发展,学会编写简单的程序解决问题,初入程序设计的大门。
【学情分析】
1.起点水平:继第一单元的学习,学生了解了信息和数据的特征,理解了数据、信息和知识的关系,感受到了数据在现代社会生活中的重要作用;通过比较多种计算方法在解决问题时的特点,体会到计算机在处理数据上的优势和价值。本节课初步接触Python语言,对于学生来说是陌生的,且有挑战性。在教学过程中要注意将代码简单化,不能将代码讲解得过于详细、复杂,不能让学生产生畏难情绪。在教学中要充分考虑到学生的个性差异和创造性,创设宽松、和谐的学习气氛,给学生自由发挥的空间,让学生多尝试多感受。
2.学习特征分析:学生总体思维活跃,对游戏或生活中的实际案例较为感兴趣;在有挑战性和竞争的教学环节中表现出十足的积极性。
3.学习动机:学生在课堂上主动学习的动机还是较为匮乏的,学生的注意力极其容易被机房设备和游戏分散。教师在课堂中要注意把控课堂纪律,用有趣的课堂吸引学生注意力,引导学生参与课堂活动中,提高学生学习的兴趣。
【教学目标】
1.通过探讨表示游戏的算法,了解使用自然语言、流程图描述算法,进一步理解三种基本结构的流程图。
2.通过用Python语言实现游戏的研究,掌握计算机解决问题的一般过程,熟悉Python语言的开发环境,了解程序设计语言的发展。
3.在项目活动中体验数字化学习过程,感受利用数字化工具和资源的优势。
【教学重点】算法的表示及算法的三种基本结构。
【教学难点】能够使用流程图表示算法。
【教学方法、策略】
主要教学方法:
问题解决法、启发法、创设情境、讲授法、比较法
教学策略:
情境-陶冶教学策略、指导性探究
【教学资源】
SWF文件、PPT课件、机房教室
【教学融入点】
以狼、羊、蔬菜过河的游戏:一个人带一只羊、一只狼和一篮菜过河,只有一只小船,一次只能带一个物品。如果羊和狼在一起,狼吃羊;如果羊和菜在一起,羊吃菜。怎样才能安全渡河?引出本节课的重点之一算法。该游戏中狼吃羊、羊吃菜的生物界完善的食物链引出平衡的思想政治教育。物理上有质量守恒;水在0~100度之间就是水,高于或低于这个区间就为水蒸气或冰;空气的温度在5~26℃就适宜人舒适的居住,太冷太热都不适宜;地球有白天就有黑夜,否则就是极夜或极昼;有大就有小,有阴就有弱,有舍就有得,有快就有慢;古代的三国鼎立,现代的一超多强带来现代的和平。凡事有度、不走极端。
【教学过程】
教学环节
教师活动
学生活动
设计意图
导入新课
小游戏1——狼、菜、羊过河
本节课学习2.1计算机解决问题的过程。首先我们先来玩个小游戏。
一个人带一只羊、一只狼和一篮菜过河,只有一只小船,一次只能带一个物品。如果羊和狼在一起,狼吃羊;如果羊和菜在一起,羊吃菜。怎样才能安全渡河?
运行"狼羊菜.swf",试试你的想法是否可行?
(演示swf文件的运行)
运行"狼羊菜.swf"。尝试游戏通关。
狼羊菜是经典的算法问题。以游戏来进入课堂,激发学生的学习兴趣。
思政小课堂——平衡
同学们在这个游戏中体会着平衡。狼吃羊、羊吃蔬菜,这是生物界的食物链平衡。生活中还有很多的平衡。
水在0~100度之间就是水,高于或低于这个区间就为水蒸气或冰;
空气的温度在5~26℃就适宜人舒适的居住,太冷太热都不适宜;
地球有白天就有黑夜,否则就是极夜或极昼;
物理上有质量守恒;
有大就有小,有阴就有弱,有舍就有得,有快就有慢;
古代的三国鼎立,现代的一超多强带来现代的和平。
凡事有度、不走极端。
当你每天都觉得不开心的时候,不妨找朋友、老师、家人聊聊天。
听讲
世间万物强调平衡,我们个人也是在平衡——不平衡——新的平衡中不断发展。注意学生的心理健康教育。
描述步骤——算法
请用语言描述你完成游戏的步骤。
第一趟(去):人带羊过河
第二趟(回):留下羊,人单独回
第三趟(去):人带狼过河
第四趟(回):留下狼,人带羊回
第五趟(去):留下羊,人带菜过河
第六趟(回):留下菜,人单独回
第七趟(去):人带羊过河(人狼羊菜都过河了)
算法是解决问题的方法和步骤。
解决问题的过程,就是实现算法的过程。
算法的描述要求尽可能精确、详尽。
常用的描述算法的方法有:自然语言和流程图。
算法的特征:
1.有穷性
2.确定性
算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。
3.输入
有零个或多个输入;
4.输出
至少产生一个输出
5.可行性
原则上能精确运行,用纸和笔做有限运算后可以完成。
请一位学生描述步骤。
狼羊蔬菜的游戏仅仅引出算法的概念及特征。
小步子走,慢慢深入分析。
自然语言、流程图描述算法
小游戏2——"最强大脑"
过渡:刚才我们有说到描述算法的常用方法有自然语言、流程图,我们分别用自然语言和流程图来描述下最强大脑小游戏的算法。感受下两种方式的差异。
游戏规则
用10秒记忆10个物品及其编号,之后根据提问回答5个物品的编号,看你能记住几个物品及其编号?
活动一:用自然语言描述算法
观察"最强大脑程序.py"游戏运行的过程。填写课本P19表2.1.1。
(双击运行)
解决的步骤:
1.显示游戏规则、物品及其编号,屏幕停留10秒
2.清屏
3.给出一个物品名称
4.回答编号
5.如果回答正确,答对题数+1
6.重复以上步骤,直到答完5题
7.输出答对的题数
活动二:用流程图描述算法
用流程图符号试画出"最强大脑"的流程图。
过渡:用流程图描述算法的方式不像自然语言描述方式那样简单,日常语言就可以,它是图形化表达,需要了解一些框图符号的含义。
过渡:这些符号是如何使用的呢?我们来看三个例子。
例:"超市购物"的算法表示
用自然语言描述
1、进入超市
2、选购商品
3、付款结账
4、离开超市
用流程图描述
例:"超市购物之选购商品"的算法表示
1、拿起商品查看
2、如果是想要的,转3,否则转4
3、放进购物车
4、放回原位
例:"超市购物之付钱结账"的算法表示
1、查看有没有商品,如果有就转2,否则就转3
2、扫描商品条形码,转1
3、停止扫描、收钱找零
他们也就是三种基本结构的流程图。
打开"流程图填空.ppt",将步骤移动到对应的流程图方框内,使流程图完整。
两种方式对比后,我们来总结自然语言描述算法的特点:
自然语言就是人们日常使用的语言,它是最简单的描述算法的工具。
用自然语言描述算法符合我们的表达习惯,并且容易理解。
用自然语言描述算法容易产生歧义,表示的含义往往不大严格。
流程图描述算法的特点:
流程图也称为程序框图,是算法的一种图形化表示方法。
与使用自然语言描述算法相比,流程图描述算法形象、直观、更容易理解。
流程图规范是由美国国家标准学会制定的一系列流程图符号。
明确游戏规则,填表2.1.1。体会自然语言描述算法。
了解流程图中图形的含义,补充流程图。
从狼羊蔬菜完全的人工解决问题,到现在的编程的参与,慢慢的过渡。最强大脑的游戏也比较有意思,运行过程也比较清晰。
用自然语言和流程图来描述下最强大脑小游戏、超市购物的算法,感受下两种方式的差异。
编写程序
算法有_________和________描述算法,但计算机是无法直接识别这些描述的。
计算机解决问题的过程:提出问题—分析问题—设计算法—编写程序—调试程序—得到结果。
只能通过编写程序,才能让计算机解决问题。
用Python语言实现"最强大脑"
importrandom
importtime
importos
things=["苹果","香蕉","橙子","梨子","猕猴桃","柚子","猴魁","铁观音","彩蛋","复活节"]
foriinrange(10):
print(i,":",things[i])
#在屏幕上显示编号及物品
time.sleep(10)
#延时10秒
os.system("cls")
#清屏幕,隐去编号及物品
n=0
#记录答对的题数,初值为0
t2=random.sample(things,5)#随机抽出5个物品
foriint2:#出5题
ans=int(input(i+"的编号是:"))#输入编号答题
ifi==things[ans]:
n=n+1
#如果回答正确,答对的题数加1
print("\n你一共答对了",n,"次")
#屏幕显示答对的题数
input("\n按回车键结束程序")
活动三:借助流程图分析代码
活动说明:借助"最强大脑"游戏问题的完整流程图,分析书本P22的代码,尝试找出与P23流程图中的处理框对应的代码。
填空
请四位同学回答连线。
描述算法过渡到编写程序。同时这里点题:计算机解决问题的过程。与人解决问题的过程类似。
分析程序与流程图结合,降低程序理解的难度。
程序设计语言的发展
程序设计语言经历了机器语言、汇编语言到高级语言的发展过程。
比较流行的高级语言有Java、C/C++、FORTRAN、Python等
粗略介绍程序设计语言的发展。
课堂小结
计算机解决问题的过程是提出问题—分析问题—设计算法—编写程序—调试程序—得到结果。
在设计算法环节我们要学会自然语言、流程图描述算法,同时知道三种基本结构的流程图。最后我们从下节课开始就要开始慢慢学习程序设计语言Python的语法。