浙教版(2019)信息技术 必修1 3.3.3 简单算法及其程序实现——算法程序实现的综合应用 课件(12张ppt)+教学设计

文档属性

名称 浙教版(2019)信息技术 必修1 3.3.3 简单算法及其程序实现——算法程序实现的综合应用 课件(12张ppt)+教学设计
格式 zip
文件大小 1.0MB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2021-01-19 14:43:10

文档简介

(共12张PPT)
必修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
1
5
4
3
2
1
把图片中各像素点颜色存储到文件
5
4
3
2
1
5
4
3
2
1
判断图片中某个信息点是否被填涂
5
4
3
2
1
5
4
3
2
1
编程读取准考证号
5
4
3
2
1
5
4
3
2
1
课堂作业
1.本节配套课后作业。
2.
(选做)分析本节中的准考证号填涂识别算法及其程序实现,你认为在提高填涂识别的正确性及合理性等方面还可以做哪些完善?相应的程序又该如何实现?
谢谢观看算法程序实现的综合应用教学设计
课程标准

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