高中信息技术浙教版 (2019)必修1 数据与计算3.3 简单算法及其程序实现优质课教学设计
展开解析算法及其程序实现教学设计
课程标准 和 教学目标 | 解析算法及其程序实现 | |||
教材内容: 3.3.1解析算法及其程序实现 | ||||
适应的课程标准: 1.7掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。通过解决实际问题,体验程序设计的基本流程,感受算法的效率,掌握程序调试与运行的方法。 | ||||
教学目标: ●理解解析算法的思想,能用解析方法来设计算法解决简单问题。 ●编写程序来实现解析算法。 ●通过解决实际问题,编写实用性程序,培养编程解决问题的能力。 | 指向的核心素养: ●计算思维:针对给定的任务进行需求分析,明确需要解决的关键问题;能提取问题的基本特征,进行抽象处理,并用形式化的方法表述问题。运用基本算法设计解决问题的方案,能使用编程语言或其他数字化工具实现这一方案。 | |||
学习环境:有教学控制软件的多媒体机房,装有Python3.x编程环境和班级讨论区。 | ||||
建议课时:1课时 | ||||
教学活动设计 | 教学环节 | 教学过程 | 设计意图 | |
情境导入 | 回顾3.1绘制正多边形的问题,提问如何根据边数计算内角度,从而确定画笔旋转的角度。 抽象与建模: 已知条件:正多边形的边数n和边长a、 要求的解:正多边形内角度数d和画笔旋转角度(180-d) 数学表达式:d = (n - 2) * 180 / n。 算法描述: ①输人要绘制的正多边形的边数n和边长a。 ②计算正多边形的每个内角度数d,其中d = (n - 2) * 180 / n。 ③将以下过程重复执行n遍:画- -条长度为a的线段,再将画笔方向向左(逆时针)旋转(180-d)度。 | 温故而知新。通过回顾学生熟悉的问题,拉进与学生的距离。设定锚点,让学生体会解析算法的基本思想。
| ||
学生活动
| 活动1:编程计算2个电阻并联后的总电阻值。 教师引导学生思考: 已知条件是什么?(两电阻的阻值R1,R2) 要求的解是什么?(并联后的总电阻值R) 已知与结果之间的表达式怎么写? R = R1 * R2 / (R1 + R2)
活动2: 编程计算多个电阻并联的总电阻。其中,每个电阻的阻值可由键盘输入,当输入了一个0时,表示输入结束。 教师引导学生思考: 已知条件是什么?(R1、R2、R3……Rn的阻值) 要求的解是什么?(并联后的总电阻值R) 已知与结果之间的表达式怎么写? 需要哪些变量?(r:存储每一次输入的电阻值; rs:累加器,存储电阻倒数的累加值) 循环体语句怎么写?(rs += 1/r) 循环控制条件是什么?(r == 0)
活动3: 编程计算s = 1–1/2 + 1/3–1/4 + …+1/99 – 1/100的值。 教师引导学生思考: 需要哪些变量?(s:累加器,存储各项和; i:各项的分母,从1递增到100; f:代表符号,分别用1和-1代表正负号) 如何控制循环执行次数?(for i in range(1, 101)) 循环体语句怎么写?(s += f / i; f = -f)
活动4: 编写函数实现计算s = 1–1/2 + 1/3–1/4 + …+1/n的值功能。 函数名:my_sum(n)。 参数表:n—总共n项。 返回值:返回1–1/2 + 1/3–1/4 + …+1/n的值。 教师引导学生思考: 如何定义函数和调用函数? def my_sum(n): s = 0 f = 1 #f代表符号,分别用1和-1代表正负号 for i in range(1, n+1): s += f / i f = -f return s
for i in range(1, 20): print(f'{my_sum(i):0.6}')
活动5: 学生自主学习教材3.3.1内容,模仿活动4,编写函数实现判断某像素的黑白颜色。 def bw_judge(R, G, B): if 0.299 * R + 0.587 * G + 0.114 * B < 132: color = "黑色" else: color = "白色" return color | 从特例到一般,由浅入深,逐渐增大问题难度,树立学生的信心,激发学生解决问题的兴趣。
虽然没有明说采用的是解析算法,但是一次又一次的引导学生思考,明确问题的前提条件,明确要求的解,寻找前提条件与结果之间的数学表达式,潜移默化地让学生体验解析算法的解题思路,最后总结其特点时就可以水到渠成了。
有了解题思路还不够,还要设计算法,编程实现算法。对于较难的问题,教师要及时给学生搭把手,提供范例,引导其往正确的方向思考。
模块化程序设计思想是计算机编程的一个重要思想,指导学生对常用的程序代码以模块化的形式进行保存,掌握定义函数和调用函数的方法,养成模块化编程的良好习惯。
自主学习教材,在理解算法设计思想的基础上,学会提炼代码,掌握定义函数和调用函数的方法,养成模块化编程的良好习惯。 | ||
课堂小结 | 1. 解析算法的解题思路: 1)明确问题的前提条件 2)明确要求的解 3)寻找前提条件与结果之间的数学关系式 2. 总结构造和调用函数,实现模块化编程的方法。 | 在学生有了使用解析算法解决问题的体验后,教师对知识进行归纳和总结,帮助学生把新知纳入原有知识结构,实现知识的升华。 | ||
作业布置 | 基础作业(面向所有学生): 本节配套课后作业。 提升作业(面向学有余力学生): 编程实现第二章中的“动动有奖”项目; 收集并编程解决更多适用于解析算法的实际问题。 | 课后作业是课堂学习的延伸,是巩固和升华知识点的有效途径。根据学生的基础和能力设置不同难度的作业,以满足不同层次的学生需求。 | ||
教学设计思路 | 本节课的教学内容为解析算法及其程序实现,主要教学目标是通过具体任务的实践活动,让学生体会解析算法的基本思想,突破从实际情境中“抽象与建模”的难点,继而强化学生用程序语言描述数学表达式的能力。 温故而知新,在课堂引入时,先回顾3.1绘制正多边形的问题,提问如何根据边数计算内角度,从而确定画笔旋转的角度,引导学生按照使用计算机编程解决问题的一般步骤,先对问题进行抽象与建模,再设计算法,最后编程实现算法。 回顾学生熟悉的问题,容易唤起学生的兴趣,增强学生掌握新知识的信心。通过设定锚点,也方便学生思维定位,突破思维瓶颈,为新知识的学习铺垫道路。 活动1和活动2分别是“编程计算2个电阻并联后的总电阻值”和“编程计算多个电阻并联的总电阻”,两个项目从特例到一般,由浅入深,逐渐增大问题难度,树立学生的信心,激发学生解决问题的兴趣。教师在引导学生解决问题的过程中,虽然没有明说采用的是解析算法,但是一次又一次的引导学生思考,明确问题的前提条件,明确要求的解,寻找前提条件与结果之间的数学表达式,潜移默化地让学生体验解析算法的解题思路,最后总结其特点时就可以水到渠成了。 活动3和活动4也采取从特例到一般的思路,不但要引导学生思考如何设计算法和编写程序,还要对学生进行模块化编程的指导,帮助学生掌握定义函数和调用函数的方法,养成模块化编程的良好习惯。 活动5是学生自主学习教材3.3.1内容,模仿活动4,编写函数实现判断某像素的黑白颜色。“黑白像素判定”是 “答题卡填涂识别”项目的一个重要组成部分,在本节课内既能落实解析算法的思想精髓,又能为后续枚举算法以及算法综合应用项目顺利开展奠定基础。教材对这一部分内容讲解非常到位,按照使用计算机编程解决问题的步骤,详细介绍了整个流程的具体做法,学生通过自学一般来说能够掌握。 在学生完成自主学习任务后,教师进一步要求学生把该功能设计成一个函数,这既巩固了学生的学习效果,又强化了模块化编程思想的应用,还为下一节课的学习做好了铺垫。 最后,教师组织学生对解析算法的解题思路进行总结,让学生理解解析算法的基本思想,并能使用该算法分析和解决更多实际问题。 | |||
针对 核心素养培养的 设计考虑 | 本节课主要采用任务驱动的方式让学生掌握解析算法的思想及其程序实现。 在指导学生完成活动1和活动3的过程中,教师虽然没有明说采用的是解析算法,但是一直按着解析算法的解题思路来引导学生思考问题,先让学生体验解析算法解题的一般思路,理解解析算法的思想,能用解析方法来设计算法解决简单问题。 活动2和活动4都属于从特殊到一般的演进,教师要求学生自定义函数和调用函数,通过模块化编程训练,培养学生提取问题的基本特征,进行抽象处理的能力,提升了学生的计算思维。 | |||
浙教版 (2019)必修1 数据与计算3.3 简单算法及其程序实现一等奖教学设计及反思: 这是一份浙教版 (2019)必修1 数据与计算3.3 简单算法及其程序实现一等奖教学设计及反思,共3页。
必修1 数据与计算3.2 Python语言程序设计优质课教学设计: 这是一份必修1 数据与计算3.2 Python语言程序设计优质课教学设计,文件包含浙教版2019必修1数据与计算3242循环结构的程序实现while语句教学设计docx、浙教版2019必修1数据与计算3241循环结构的程序实现for语句教学设计docx等2份教案配套教学资源,其中教案共9页, 欢迎下载使用。
高中信息技术中图版 (2019)必修1 数据与计算2.4.1 基于解析算法的问题解决优秀教学设计: 这是一份高中信息技术中图版 (2019)必修1 数据与计算2.4.1 基于解析算法的问题解决优秀教学设计,共5页。