2. 教学设计

18讲 打破无尽的重复

点击此处下载教学设计

1.教学内容分析

本节内容首先情境带入,引出多种语句的知识内容;随后,以Python编程软件为辅助,讲解break语句、continue语句和pass语句的原理及应用方法;之后,开展实践任务,以猜数字为例,熟悉不同语句的流程控制及使用方法;然后,思维拓展,讲解bug及如何Debug相关知识,最后,能力提升,通过Python编程设计猴子分桃程序。


2.学习者分析

1.学生具有一定的Python编程语言基础;

2.学生对Python语句有一定的基础认识;

3.学生具备一定的逻辑推理能力,知识迁移能力,对人工智能的技术有较强的学习兴趣。


3.学习目标确定

1.知识与技能:

①了解 break 语句的工作原理,掌握其编程应用方法;

②了解 continue 语句的工作原理,掌握其编程应用方法;

③学生能够认识了解程序bug以及如何Debug。

2.过程与方法:

①通过学习对不同语句的相关知识,体会Python编程流程的控制的应用;

②通过项目的编程练习,培养学生设计能力和举一反三的能力。

3.情感态度与价值观:

①养成自主学习、自主探究的能力;

②培养发现问题、解决问题的探究能力;

③通过对项目的讨论、分析、制作等活动,培养严密的逻辑思维能力。 


4.教学重点难点

教学重点:1.了解不同语句的区别去联系;

          2.掌握break语句和continue语句的应用方法;

教学难点:1. 综合运用 break、continue、pass 语句进行流程控制;

          2.灵活运用软件完成项目的制作。


5.教学流程图

18 流程图

6.教学活动

环节一:(情境导入)5min

教学活动1

 

1.教师讲授情境故事,设置悬念,吸引学生兴趣;(教师播放PPT)

 

教师:“随着互联网的发展,信息安全愈发重要。不少用户的账户密码被黑客获取,造成了数据泄密。密码破解技术中最基本的就是暴力破解,也叫密码穷举。如果黑客事先知道了账户号码,如邮件账号、 QQ用户账号、银行账号等,而用户的密码又设置得十分简单,比如用简单的数字组合,黑客使用暴力破解工具很快就可以破解出密码来。因此用户要尽量将密码设置得复杂一些。小楷准备设计一个趣味小游戏,模拟密码生成和猜测过程,普及网络安全常识,提醒同学们平时注意密码保护。同学们,你们要不要一起试试呢?”

 

学生聆听情境故事,积极回应老师,对密码保护和猜测产生兴趣;

 

教师:“好的,同学们,我们一起去学习一下如何编写程序进行密码保护及破解吧!今天我们的学习将分成三个模块,第一个模块,认识一些常用语句;第二个模块,一起完成数字的猜测的实践任务;第三个模块,思维拓展,学习一下程序bug及如何Debug等知识。”

 

学生聆听教师讲授。

 

活动意图说明:

通过情境故事吸引学生的注意力,激发学生的学习兴趣,导入本节课的内容----打破无限的重复

环节二:(原理讲解)20min

教学活动2

 

1.教师讲解break语句、continue语句和pass语句的原理及应用方法,并进行相关演示;

 

教师:“break语句用来终止循环语句,即循环条件没有False条件或序列还没被完全递归完,也会停止执行循环语句。 break语句的工作流程如图示。break语句可以用在while和for循环中。如果使用在嵌套循环中,break语句将停止执行最深层的循环,并开始执行下一行代码。例如:想一想,两处break 语句执行会后应该得到什么样的输出。在IDLE工具中录入这段代码,执行后验证一下结果。接下来,我们做一个使用break退出循环的编程练习,程序及结果如图;其次,我们了解一下continue语句,continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。continue语句的工作流程如图所示。对比break语句和continue语句流程图可以看出, continue 语句用来跳出本次循环,而break跳出整个循环。continue语句也是可以用在while和for循环中。示例程序如图:想一想,程序执行会后又会得到什么样的输出。在IDLE工具中录入这段代码,执行后验证一下结果。接下来,我们做一个使用continue语句,实现打印奇数功能的编程练习,程序及结果如图;最后,我们学习一下pass语句,pass 是空语句,不做任何事情,也叫占位语句,使用它是为了保持程序结构的完整

性。比如,在程序设计过程中,对于个别处理逻辑还待确定的程序段,可以用 一个pass语句代替,保持编程过程的连续性。pass语句的存在,不改变程序的处理逻辑,不影响程序功能的正常运行。pass 语句可以应用于程序调试过程,对可疑之处暂时用pass语句代替,有助于确诊问题。在 Python3.x 的时候 pass 可以写也可以不写,如图所示。想一想,程序执行会后会得到什么样的输出。在IDLE工具中录入这段代码,执行后验证一下结果。”

 

学生聆听教师讲解break语句、continue语句和pass语句的原理及应用方法,并播放PPT,进行操作演示

 

活动意图说明

配合PPT和Python编程语言进行讲解,让学生从亲身经验中体会break语句、continue语句和pass语句的原理及应用。

环节三:(项目制作)25min

教学活动3

 

1. 教师带领学生借助软件完成奇葩国号码的躲避;

 

教师:“根据人们的喜好,生成一串号码,要求避开人们忌讳的数字,利用Python编程完成整个过程,程序及结果如图。”

 

教师操作Python编程语言,并讲解根据具体操作步骤实现号码的躲避;

 

2. 教师带领学生借助软件完成密码的猜测;

 

教师:“利用while循环,使用random库产生随机数字,当密码长度拼接至3时,使用break跳出循环,随机生成3位无数字重复的密码,并将密码打印出来。然后对生成的密码进行猜测,如果猜错则继续猜测,猜对或输入ESC则结束程序。其次,设计流程图,最后,利用Python编程实现目的,程序及结果如图。

 

教师操作Python编程语言,并进行操作演示;

 

学生聆听教师讲解利用Python完成号码的躲避及密码的猜测过程和方法;

 

教师讲解完成后,教师可留给学生5min时间让学生自己操作学习;

活动意图说明

屏幕共享,教师演示操作,培养学生动手操作能力,让学生直观学习编程设计过程,掌握逻辑结构。

环节四:(思维拓展)10min

教学活动4

 

1. 教师讲解bug的控制相关内容;

 

教师:“软件的bug,狭义上是指软件程序的漏洞或缺陷,广义上还包括测试过程或用户使用阶段所发现和提出的软件待改进的细节,包括设计上与需求文档存在差异的功能等。任何软件在发布时都不可能是零bug,很多情况下新发布的软件会存在着较多的bug。评价软件开发的优劣有一些标准。软件能力成熟度模型是一种对软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述形成的标准。 CMM是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。 CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。其中,在软件过程管理中, CMM规范了软件开发质量的标准之一是(bug个数/千行源代码):如图所示。

 

学生认真聆听教师讲解bug的控制相关内容;

 

1. 教师讲解如何 Debug的相关内容;

 

教师:“(1)学会看报错信息;程序bug的出现,一般是在程序运行时才发现的。这个时候,开发环境或程序运行界面都会中断并显示报错信息。第一时间应该去仔细查看报错信息,定位到报错的位置和分析出错原因。由于报错信息都是以英文显示,很多初学者怕看报错信息。这方面的困难应该尽早克服,应该学会从报错信息寻找问题线索。如果因为报错信息常含有专业性词汇而读不懂,可以通过搜索引擎去查询,寻求答案。当然,程序bug不一定就在报错位置,但是一般都与该位置相关。可以去检查相关联的结构体或表达式,比如括号或引号对、缩进块、变量的一致性等,去寻找问题的根源。(2)观察和分析非语法错误;对于非语法错误,不能直接发现错误。可以充分利用print语句输出变量或表达式在各个运算阶段的值,有助于发现编程过程中存在的逻辑错误。例如,在程序的各个分支增加一些print输出,有助于发现哪些路径没有经过,哪些循环层次没有遍历;多利用print输出各变量或表达式的值,有助于发现运算中的设计错误。(3)选用调试功能强的软件集成开发环境(IDE);软件集成开发环境(IDE)对编写程序和调试程序都是很有帮助的,比如保留字的提示、拼写错误、缩进对齐错误等, IDE都可以直接给出高亮指示或动态提示。功能强大的IDE还有动态帮助甚至自动补全代码的能力,可以减少很多拼写错误。

学生认真聆听教师讲解如何 Debug的相关内容

活动意图说明

增强学生对程序故障作用的认识,更好利用Python编程,培养学生发散思维。

环节五:(展示小结)5min

教学活动5

 

1.学生发言,展示作品,进行逻辑代码讲解

 

2.教师对学生作品进行评价;

 

教师:“同学们,在看了大家的作品后,老师觉得大家都完成的非常好,老师给同学们一个大大的赞。”

 

2. 总结本节课的知识内容,巩固本节课的知识点,铺垫下一节课。

 

教学活动6

 

1.教师讲解猴子分桃原理;

 

教师:“5只猴子一起摘了一堆桃子,因为太累了,它们商量决定,先睡一觉再分。过了不知多久,来了一只猴子,它见别的猴子没来,便将这1堆桃子平均分成5份,结果多了1个,就将多的这个吃了,拿走其中的1堆。又过了不知多久,第2只猴子来了,它不知道有1个同伴已经来过,还以为自己是第1个呢,于是将地上的桃子堆起来,平均分成5份,发现也多了1个,同样吃了这1个,拿走其中的1堆。第3只、第4只、第5只猴子都是这样……。问这5只猴子至少摘了多少个桃子?第5只猴子走后还剩多少个桃子?

 

学生聆听教师讲解猴子分桃原理;

 

2.根据所学知识,利用Python编程设计猴子分桃程序;

 

教师:“同学们,利用循环结构及终止控制方法设计分桃程序,先画出程序流程图,然后完成Python编程。在IDLE中完成调试并运行出计算结果。。

活动意图说明

通过项目式学习的体验效果,让学生可以更直接的体验Python编程的应用,提高学生的参与感。


7.板书设计

打破无尽的重复

 

1.语句的认识:

break语句:

continue语句:

pass语句: 

2.数字的猜测:躲避号码、猜测密码 


8.作业与拓展学习设计

编程Python程序,设计猴子分桃程序