第20讲 有问有答
2. 教学设计
第20讲 有问有答
1.教学内容分析
本节内容首先情境带入,引出程序编写的知识内容;随后,以Python编程软件为辅助,讲解程序编写方法及相关模块的应用;之后,开展实践任务,计算以输入数字为半径圆的面积和球的体积为例,熟悉Python模块的应用;然后,思维拓展,讲解程序调试及编程的建议等内容,最后,能力提升,通过Python编程进行计算学习能力差值。
2.学习者分析
1.学生具有一定的Python编程语言基础;
2.学生已经掌握一些程序编写的基本能力;
3.学生具备一定的逻辑推理能力,知识迁移能力,对人工智能的技术有较强的学习兴趣。
3.学习目标确定
1.知识与技能:
①了解 IPO 程序编写基本方法;
②掌握利用 input() 函数进行数据输入的方法;
③学生能够了解程序调试基本操作及编程技巧。
2.过程与方法:
①通过学习程序编写的相关知识,体会人工智能程序运行逻辑;
②通过项目的编程练习,培养学生设计能力和举一反三的能力。
3.情感态度与价值观:
①养成自主学习、自主探究的能力;
②培养发现问题、解决问题的探究能力;
③通过对项目的讨论、分析、制作等活动,培养严密的逻辑思维能力。
4.教学重点难点
教学重点:1. 掌握利用 print() 函数进行数据输出的方法;
2. 掌握 time.sleep() 函数的应用方法;
教学难点:1.掌握Python各种模块的主要函数及编程操作;
2.灵活运用软件完成项目的制作。
5.教学流程图

6.教学活动
环节一:(情境导入)5min |
教学活动1
1.教师讲授情境故事,设置悬念,吸引学生兴趣;(教师播放PPT)
教师:“2018年2月4日,世界首位机器人索菲亚做客央视《对话》栏目。面对主持人、大学教授、专业人士的提问,索菲亚表现得很睿智,对答如流,令人赞叹。索菲亚是国际上最为知名的类人机器人,是历史上首个获得公民身份的机器人。索菲亚通过嵌入的摄像头,借助计算机视觉技术,观察、识别身边人的体态动作、面部表情,并作出相应回应。索菲亚集成了语音识别技术,能识别和理解人类语言,实现人机交互。因此,机器人索菲亚表现出了令人惊讶的“察言观色、能说会道”的能力,能够与人类进行交流互动。小楷从新闻中目睹了索菲亚的人机交互能力,深受启发,准备利用计算机作为智能处理设备,编写一个程序模拟最基本的人机交互过程,利用键盘输入信息,计算机进行处理,如何把结果显示在屏幕上。小楷的想法很好,那么他还需要学习哪些编程知识呢?同学们,你们想不想和机器人对话呢?”
学生聆听情境故事,积极回应老师,对程序编写产生兴趣;
教师:“好的,同学们,我们一起去学习一下如何编写程序与机器人互动,今天我们的学习将分成三个模块,第一个模块,学习程序的编写相关知识;第二个模块,一起完成对给定数值为半径圆和球的面积求解的实践任务;第三个模块,思维拓展,学习一下程序调试及空值比较时编程的建议等知识。”
学生聆听教师讲授。
|
活动意图说明: 通过情境故事吸引学生的注意力,激发学生的学习兴趣,导入本节课的内容----有问有答 |
环节二:(原理讲解)20min |
教学活动2
1.教师讲解程序编写的基本方法及计算问题的描述等知识内容;
教师:“不管采用何种编程语言,实用化的程序都要有着共同的设计或运行模式,即输入数据、处理数据和输出数据,这种模式被称为IPO( Input, Process, Output)。首先,了解一下输入过程,输入一般是程序的开始部分。程序设计时,根据需要处理的各种数据源,形成了多种输入方式,如键盘输入、文件输入、网络输入、用户操作界面输入、内部参数输入、甚至随机输入等。其中,利用Python内置函数input()读取键盘输入是最基本的方法。在用户操作界面输入接收鼠标的单击或选择操作进行数据输入也是常用方法,批量的数据输入往往利用文件或网络数据包进行。复杂的程序中,模块之间可以通过参数传递来交换数据。然后,学习一下输出过程,输出是程序显示运算结果的方式。程序的输出方式包括屏幕显示、文件保存、网络输出以及程序模块之间的参数输出等。最后,是处理过程,所谓的处理就是对各种输入数据进行计算,产生输出结果的过程。解决复杂一点的计算问题,需要设计算法。特殊一点的程序可能没有输入或输出,比如延时程序,但是处理过程都是有的。处理过程是程序设计的核心问题,也是提高编程能力的重点。IPO程序设计过程并没有完成代码的编写,而是试图把需要解决的实际问题描述清楚,具体就是将一个实际问题从输入、处理、输出这3方面以接近自然语言的方式进行描述。以求三角形面积的计算任务为例,其IPO描述如下:输入:边长lenth和高hight;处理:三角形面积S=*lenth*hight/2;输出:三角形面积S。可见, IPO是程序设计的一种基本方法,也是描述计算问题的一种有效方法。我们做一个编程练习,根据输入求和,程序及结果如图。”
学生聆听教师讲解程序编写的基本方法及计算问题的描述等知识内容,并播放PPT,进行操作演示;
2.教师讲解Python模块及部分模块功能的使用方法等知识内容并进行相关操作演示;
教师:“模块(Module)一般是包含某方面功能的所有相关函数和变量的程序集,供其他程序引用。模块被引用后,就可以使用该模块中的所有函数。模块能定义函数、类和变量,模块里也能包含可执行的代码。把相关的代码分配到一个模块里能让程序代码更好用,更易懂。Python模块是以Python程序文件的形式封装,其后缀名是.py,包含了内部的Python对象定义和对外的函数或方法的调用接口。 Python的标准库就是按照功能主题划分,由一系列模块组成,如time、 math等。首先,我们看一下如何引用模块,在Python中,使用关键字import来引用模块。引用某个模块的语法一般如图,import语句也运行同时引用多个模块,这时模块名之间用逗号分隔。例如,编程时如果需要使用time模块的功能,就要在程序最开始的地方使用import time语句。同时引用time、 math模块就使用import time, math语句。当Python解释器遇到import语句,就会在当前路径下搜索对应的模块程序文件,如果当前路径下没有找到该文件就会去环境变量里指定的路径下搜索。找到该模块程序文件后就执行导入操作。因此,如果需要导入模块,一定要把import命令放在程序的最前面。然后,我们学习一下模块功能的使用。在Python程序的开头,使用import语句引用模块后,在程序体中需要调用该模块的功能时,必须按照如图的方式进行调用。比如,要引用模块math,就要在程序最开始的地方用import math来引入。在调用math模块中的函数或参数时,按模块名.函数名的形式使用。如图所示。最后。我们学习模块的部分引用,一般,模块往往针对某方面的功能进行设计,里面封装的函数及参数的量比较多。具体应用时,往往只需要使用模块的部分功能,在Python编程时,可以使用from…import语句来引入模块的部分功能函数。 from…import语句允许从模块中导入指定的部分到当前命名空间中,具体语法如图。例如,要导入模块fib中的 fibonacci函数,可以使用如图语句:这个声明不会把整个fib模块导入到当前的命名空间中,它只会将fib里的fibonacci函数单个引入到执行这个声明的模块的全局符号表。from…import语句还有一种用法,就是:如图,该语句把一个模块的所有内容全都导入到当前的命名空间中。这一方法与"import 模块名"语句效果是一样的。例如,如果想一次性引入math模块中的所有功能,可以使用语句如图:” 学生聆听教师讲解Python模块及部分模块功能的使用方法等知识内容,并播放PPT,进行操作演示;
3. 教师讲解Time模块及Math模块的使用,并进行相关操作演示;
教师:“首先,我们学习一下Time模块相关知识,Python中,与时间处理相关的模块有:c 、datetime和calendar。在程序设计中,往往需要计算时间,比如设计延时过程等。在调试及优化程序过程中,时间模块也很有用。比如,利用时间戳方法,来判断算法或程序段的耗时情况,作为优化程序的依据。time模块的主要函数列表如表所示:需要注意的是,time .clock()在不同的操作系统上运行结果的含义不同。在Windows上,第一次调用返回的是进程实际运行的时间,而第二次之后的调用返回的是自第一次调用以后到当前调用的运行时间。下面我们做一个编程小练习,在Python交互式环境下针对time模块进行简单的编程实践,取当前时间的时间戳以及将时间戳转换成当前时区的时间格式的Python语句及执行情况示例如图。然后,我们学习Math模块,Python数学模块math中提高了大量与数学计算有关的函数和数学常数,包括初等数论计算函数,包括三角函数、对数函数、指数函数,还包括一些数学单位之间的转换函数,在数学计算中非常实用。math模块的主要函数及常数的用法说明如表所示。需要注意的是, math.sqrt(x)函数等价于x**0.5计算,但不能对负数求平方根,编程时要对输入的x值加以检查。pow(x,y)函数可以作为Python内置函数来直接调用,内置函数的方法会把参数作为整型,而math模块则会把参数转换为float类型进行计算。下面我们做几个编程练习,先做一个求圆锥体积是,程序及结果如图。再做一个根据输入求幂指数的练习,程序及结果如图。”
学生聆听教师讲解Time模块及Math模块的使用,并播放PPT,进行操作演示; |
活动意图说明 配合PPT和Python编程语言进行讲解,让学生从亲身经验中体会程序编写基本方法及相关模块的使用方法。 |
环节三:(项目制作)25min |
教学活动3
教师带领学生借助软件完成圆和球面积的计算;
教师:“首先,设计一个程序,能够根据输入的一个数值,计算出以这个数值为半径的圆的周长、面积,以及以这个数值为半径的球的表面积、体积。当输入不是数值时,要求重新输入。其次,设计流程图,最后,利用Python编程按要求进行求解,程序及结果如图。”
教师操作Python编程语言,并讲解根据要求求解圆和球面积的步骤方法;
学生聆听教师讲解利用Python完成圆和球面积的计算;
教师讲解完成后,教师可留给学生5min时间让学生自己操作学习; |
活动意图说明 屏幕共享,教师演示操作,培养学生动手操作能力,让学生直观学习编程设计过程,掌握逻辑结构。 |
环节四:(思维拓展)10min |
教学活动4
1. 教师讲解列程序调试相关内容;
教师:“编写程序时,往往不能一次全部正确。出现编程错误时,要善于利用程序调试技巧去快速排出错误。在编程圈里,程序错误俗称bug,它与程序规模成正比。即使经验丰富的资深程序员也时常出现bug,时常为排出bug而操心。找到并排出程序错误的过程称为调试,也俗称Debug。 Debug过程非常重要,除了需要编程者的经验外,借助专业工具和编程技巧有利于快速定位到问题代码。Python是解释型语音,调试程序有不便之处。利用print()函数不断输出待观察变量或表达式的值,有利于快速定位和发现错误代码。在交互式编程环境或IDLE编程工具中,没有专门的Debug工具,多使用print()函数监控变量值得变化。在部分专业的Python编程工具中,提供了强大的Debug工具,比如单步、设置断点、连续运行到断点等功能,大大方便了程序调试。”
学生认真聆听教师讲解程序调试相关内容;
1. 教师讲解空值比较时的编程建议;
教师:“PEP8编程规范中,总结了许多编程经验供初学者学习。编程时,可能会遇到与空值进行比较的情况, PEP8给出了如下建议供学习者借鉴。(1)当遇到与像None这样的单例对象进行比较的时候,应该始终用 is 或 is not,永远不要用等号运算符。(2)在写if x语句的时候,如果需要与None值进行比较,应该尽量使用if x is notNone这样的语句。(3)应该使用 is not 运算符,而不是 not … is 。虽然这两种表达式在功能上完全相同,但前者更易于阅读,容易理解,所以要优先考虑。推荐的良好编程习惯是:if foo is not None;不推荐的编程习惯是: if not foo is None:。” 学生认真聆听教师讲解程序调试及编程建议的相关知识。 |
环节五:(展示小结)5min |
教学活动5
1.学生发言,展示作品,进行逻辑代码讲解;
2.教师对学生作品进行评价;
教师:“同学们,在看了大家的作品后,老师觉得大家都完成的非常好,老师给同学们一个大大的赞。”
2. 总结本节课的知识内容,巩固本节课的知识点,铺垫下一节课。
|
环节六:(能力提升)5min |
教学活动6
根据所学内容,完成能力值计算;
教师:“毅力是拥有持久的恒劲,毅力是对长远目标的坚持。毅力是日复一日的坚持,不是仅仅持续一个星期或一个月,而是几年甚至几十年努力奋斗,才能让自己的梦想变为现实。以第一天的能力值为基数,记为1.0。假设坚持持之以恒地学习,每天的能力值相比前一天会提高千分之一(0.1%)。反之,如果没有坚持学习,每天的能力值就会下降千分之一(0.1%)。同学们,你们尝试编写Python程序,计算一年365天下来,每天努力和每天懒散放任两种情况下,能力值会相差多少?”
|
活动意图说明 通过项目式学习的体验效果,让学生可以更直接的体验Python编程的应用,提高学生的参与感。 |
7.板书设计
有问有答
1.程序的编写:
程序编写基本方法:IPO
计算问题的描述:
Python模块:模块的引用、部分功能使用
Time模块
Math模块
2.计算圆和球的面积:圆的周长、面积;球的面积、体积
8.作业与拓展学习设计
编程Python程序,计算学习能力值