- 浙教版(2019)信息技术 必修1 3.3.3 简单算法及其程序实现——算法程序实现的综合应用 课件(12张ppt)+教学设计
- 浙教版(2019) 必修1 数据与计算 3.3.3 算法程序实现的综合应用教学设计.docx--点击预览
- 浙教版(2019) 必修1 数据与计算 3.3.3 算法程序实现的综合应用教学课件.pptx--点击预览
文件预览区
|
|
资源描述
算法程序实现的综合应用教学设计算法程序实现的综合应用教学设计 算法程序实现的综合应用算法程序实现的综合应用 教材内容:教材内容: 3.3.3 算法程序实现的综合应用 适应的课程标准:适应的课程标准: 1.7 掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。通过解决实际问题, 体验程序设计的基本流程,感受算法的效率,掌握程序调试与运行的方法。 教学目标:教学目标: 能熟练使用 Python 语言 PIL 库解决实际问 题,掌握模块化编程的方法。 掌握 Python 语言文件读写操作的基本技能。 通过综合解决实际问题,编写实用性程序, 培养编程解决问题的能力。 指向的核心素养:指向的核心素养: 信息意识:能够根据解决问题的需要,自觉、 主动地寻求恰当的方式获取与处理信息;在合作 解决问题的过程中,愿意与团队成员共享信息, 实现信息的更大价值。 计算思维:针对给定的任务进行需求分析,明 确需要解决的关键问题;能提取问题的基本特征, 进行抽象处理,并用形式化的方法表述问题。运 用基本算法设计解决问题的方案,能使用编程语 言或其他数字化工具实现这一方案。 学习环境:学习环境:有教学控制软件的多媒体机房,装有 Python3.x 编程环境和班级讨论区。 课程标准课程标准 和和 教学目标教学目标 建议课时:建议课时:1 课时 教学环节教学环节教学过程教学过程设计意图设计意图 情境导入情境导入 回顾 3.3.1 判断某像素的黑白颜色 回顾 3.3.2 判断某个信息点是否被填涂的方法。 如何读取和存储从文本文件中读取的像素点颜色信息? (从文本文件中逐行读取像素点颜色信息,使用三元组 R,G,B 存储) 温故而知新。通过回顾学生熟悉的问题, 拉进与学生的距离。 引导学生熟悉二维空间的数据组织形式, 通过二维表格的创建与分析来帮助理解图 像像素的表示方法。 教学活动教学活动 设计设计 学生活动学生活动 活动 1: 如何把图片中各像素点颜色信息存储到文件? (引用 PIL 库,打开图片文件,使用 img.width 和 img.height 属性获取图片的宽和高,使用 pixx, y方 法获取坐标为(x,y)处的像素点颜色信息,再逐行写入 从读取数据到写入数据,问题环环相扣, 使学生建立新旧知识的联系,既复习的文 件读写操作,又引出了 PIL 库的方法,为 接下来的教学做铺垫。 文本文件) 活动 2: 编程判断图片中某个信息点是否被填涂。 教师引导学生思考以下几个问题: 1如何确定信息点的坐标及大小? 使用画图软件打开图片,可以获取图片各像素点的坐标: 水平方向值,垂直方向值。 标记信息点的左上角坐标,记作(x_start, y_start); 测量信息点的宽度(fill_width)和高度 (fill_height) ; 2如何获取和存储信息点区域各像素点颜色信息? 使用 pixx, y方法获取坐标为(x,y)处的像素点颜色 信息,并存储到 R, G, B 三元组; 3如何判断某像素的黑白颜色? 调用或重写函数 bw_judge(R, G, B); 4如何判断某个信息点是否被填涂? 调用或重写函数 fill_judge(x, y, fill_width, fill_height)。 5编写程序并运行和测试程序 完整源代码详见附件“判断信某个息点是否被填涂. py” 活动 3: 编程读取准考证号。 教师引导学生思考以下几个问题: 1抽象与建模 在已经确定首个信息点的坐标及大小的前提下,如何确 定其他信息点的坐标及大小? 从特例到一般,由浅入深,逐渐增大问题 难度,树立学生的信心,激发学生解决问 题的决心。 通过解决简单的问题,帮助学生掌握基本 工具的使用方法,提供思维锚点,为解决 复杂的问题做好铺垫。 重视抽象与建模环节的落实,结合前面两 个学生活动,详细和反复讲解信息点的坐 标示意图,并逐步形成解决问题的算法。 要确定同行信息点的坐标,需要测量信息点之间的水平 间隔距离(space_width) ,从而获得水平方向总宽度 (total_width = fill_width + space_width) 。 要确定同列信息点的坐标,需要测量信息点之间的垂直 间隔距离(space_heighth) ,从而获得水平方向总宽度 (total_height = fill_height + space_height) 。 这时,答题卡中的任意一个信息点的起始位置水平方向 坐标值 x 可表示为: x = x_start + total_width * col 起始位置的垂直方向坐标值 y 可表示为: y = y_start + total_height * row 其中 col 为列号,row 为行号;col0,8范围内的整 数,row0.9范围内的整数。 根据每个信息点的起始位置坐标,就可以找到每个信息 点的填涂区域,从而对其进行填涂识别。 2设计算法 (1)初始化数据:读取填涂区图像、输人信息点的相 关参数; (2)确定信息点位置:按从左到右(按列)、从上到下 (按行)的顺序对每个信息点进行检测; (3)检测信息点填涂:若该信息点被填涂,则将填涂 处信息(即 row 的值)连接至准考证号(number);若当前 列不存在被填涂的信息点,则当前列的填涂信息用 “#”标记,并将其连接至准考证号(number)。 (4)输出填涂的准考证号。 3编写程序 阅读教材中的代码,思考以下问题: (1)如何实现按从左到右(按列)、从上到下(按行)的顺 序对每个信息点进行检测?代码中的各个变量的含义分 别是什么? (2)循环体中 break 语句的作用是什么?如果去除该 语句会造成什么结果? (3)程序如何输出填涂的准考证号?符号”#”的作用是 什么?是否有其他输出准考证号的方法? 完整源代码详见附件“读取准考证号.py” 带着问题去阅读代码,理解各变量的含义, 分析关键语句的作用,思考能否有其他的 表达方式,培养阅读代码的能力和良好习 惯。 课堂小结课堂小结 1.回顾编程读取准考证号项目实践过程,总结使用计 算机编程解决问题的一般过程; 2. 列举同学们在编程过程中犯的错误和走的弯路,总 结编程过程中常见问题和注意事项。 先让学生通过分析算法和阅读代码,全面 理解需要解决的问题,并体验解决问题的 全过程。再引导学生把这些体验有机地组 织起来,形成理论框架,产生更有价值的 知识。 作业布置作业布置 基础作业(面向所有学生): 本节配套课后作业。 提升作业(面向学有余力学生): 分析本节中的准考证号填涂识别算法及其程序实现,你 认为在提高填涂识别的正确性及合理性等方面还可以做 哪些完善?相应的程序又该如何实现? 完整源代码详见“附件 6:画框定位信息点.py” 课后作业是课堂学习的延伸,是巩固和升 华知识点的有效途径。根据学生的基础和 能力设置不同难度的作业,以满足不同层 次的学生需求。 教学设计教学设计 思路思路 本节课的教学目标是通过分析和实践“答题卡填涂识别”项目,让学生完整体验真实应用程序的形成与完善的 全过程,综合解决实际问题,编写实用性程序,培养编程解决问题的能力。 在前面的课程中,我们已经单独学习了解析算法和枚举算法,解决了“答题卡填涂识别”项目的两个子问题: “判断某像素的黑白颜色”和“判断某个信息点是否被填涂的方法” ,并把该两个子问题的解决方案设计成了两个函 数,为本节课的学习打下了良好的基础。 教师先引导学生复习回顾上述两个子问题和从文本文件中读取像素点颜色信息的方法,再提问如何把图片中各 像素点颜色信息存储到文件。从读取数据到写入数据,问题环环相扣,使学生建立新旧知识的联系,既复习的文件 读写操作,又引出了 PIL 库的方法,为接下来的教学做铺垫。 “判断图片中某个信息点是否被填涂”是本节课的一个前置任务,通过解决这个小任务,让学生学会如何确定 信息点的坐标及大小,掌握获取和存储信息点区域各像素点颜色信息等方法。通过解决简单的问题,帮助学生掌握 基本工具的使用方法,提供思维锚点,为解决复杂的问题做好铺垫。 “编程读取准考证号”是本节课的重点任务,教材花了大量的笔墨来分析和描述本任务。由于项目比较复杂, 学生自主学习教材内容难度较大,教师要对项目任务进行分解,引导学生理解算法设计的每一个步骤和代码中每个 变量的含义。还要鼓励学生进行小组讨论与合作,以强带弱,共同进步。 教材中的代码语句很多,教师要引导学生按照功能模块分解代码,理解各个功能模块的作用,分清楚哪些模块 是原来学过的(两个子函数) ,哪些是新知识。理解关键语句的作用,分析能否去除或修改该语句,例如分析程序如 何输出填涂的准考证号?符号”#”的作用是什么?是否有其他输出准考证号的方法?通过带着问题去阅读代码,培 养阅读代码的能力和良好习惯。 因为答题卡图片不同,信息点的起始坐标和宽高等信息也不一样,如果信息点的定位不准,会导致填涂卡识别 的正确性大打折扣,从而导致不能读取全部准考证号。如何判断参数的设置是否合理,是一个很重要的问题,可以 采用画框的方式来定位信息点,从而设置更合理的参数。 除此之外,教师还可以引导学生思考在提高填涂识别的正确性及合理性等方面还可以做哪些完善,并鼓励学有 余力的学生编程实现自己的想法。 针对针对 核心素养核心素养 培养的培养的 设计考虑设计考虑 本条例各个核心素养的具体落点分析如下: 信息意识:落点在“能够根据解决问题的需要,自觉、主动地寻求恰当的方式获取与处理信息;在合作解决问题的 过程中,愿意与团队成员共享信息,实现信息的更大价值”。本节课的内容难度较大,需要学生仔细阅读教材内容, 从多个线索中找到有效信息,并利用该信息进行抽象与建模,设计算法,对学生主动获取和处理信息的能力要求较 高。教师引导学生思考一个个子问题,并通过小组合作学习的方式解决问题,培养学生团队协作,共享信息的意识。 计算思维:落点在“针对给定的任务进行需求分析,明确需要解决的关键问题;能提取问题的基本特征,进行抽象 处理,并用形式化的方法表述问题。运用基本算法设计解决问题的方案,能使用编程语言或其他数字化工具实现这 一方案”。本节课的教学目标是通过分析和实践“答题卡填涂识别”项目,让学生完整体验真实应用程序的形成与 完善的全过程,综合解决实际问题,编写实用性程序,培养编程解决问题的能力。通过复习“判断某像素的黑白颜 色”和“判断某个信息点是否被填涂的方法”两个子问题,并将其解决方案设计成函数,引导学生掌握模块化编程 的方法。在阅读教材时,通过分解项目任务,引导学生思考算法背后的原理和代码细节,并思考能否用不同的方法 来解决问题,思考如何完善算法,以便提高填涂识别的正确性,让学生在设计算法和编程实践的过程中,体会利用 计算机编程解决问题的全过程,提升学生的计算思维。 必修1数据与计算 第三章 算法的程序实现 3.3.3 算法程序实现的综合 应用 情境导入 回顾3.3.1判断某像素的黑白颜色。 情境导入 回顾3.3.2判断某个信息点是否被填涂的方法。 学生活动 活动1: 如何把图片中各像素点颜色信息存储到文件? 学生活动 活动2: 编程判断图片中某个信息点是否被填涂。 1如何确定信息点的坐标及大小? 4如何判断某个信息点是否被填涂? 2如何获取和存储信息点区域各像素点颜色信息? 3如何判断某像素的黑白颜色? 5编写程序并运行和测试程序 学生活动 活动2: 编程判断图片中某个信息点是否被填涂。 调用或重写函数fill_judge(x, y, fill_width, fill_height) 学生活动 活动3: 编程读取准考证 号。 1抽象与建模 x = x_start + total_width * col 2设计算法 3编写程序 y = y_start + total_height * row 学生活动 活动3: 编程读取准考证号。 设计算法 编写程序调试运行程序 课堂小结 使用计算机编程解决问题的一般过程 抽象与建模 学习评价 对自己和同伴的表现进行客观的评价,并思考后续完善 的方向。(5=优秀,4=超出一般水平,3=满意,2=有 待改进,1=不太理想) 评分项自我评价同学互评 从文件中读取的像素点颜色信息5 4 3 2 15 4 3 2 1 把图片中各像素点颜色存储到文件 5 4 3 2 15 4 3 2 1 判断图片中某个信息点是否被填涂 5 4 3 2 15 4 3 2 1 编程读取准考证号5 4 3 2 15 4 3 2 1 课堂作业 1.本节配套课后作业。 2. (选做)分析本节中的准考证号填涂识别 算法及其程序实现,你认为在提高填涂识别 的正确性及合理性等方面还可以做哪些完善 ?相应的程序又该如何实现? 谢谢观看
展开阅读全文
相关搜索
资源标签