⾼中信息技术python教材内容_⾼中信息技术新教材内容思考
与再设计
张剑锋
《普通⾼中信息技术课程标准(2017年版)》公布后,根据其修改的新教材也陆续出版。拿到浙江教育出版社出版的⾼中信息技术必修教材《数据与计算》后,笔者仔细学习了“算法的程序实现”内容,对Python内容教学有了更深刻的理解,但也产⽣了⼀些想法。
鸡米花是什么● 技术优先还是认知为要
教材在Python语⾔程序设计的“实践与体验”环节,介绍了“编程实现图像的简单处理”,⽬的是通过调整图像的颜⾊来初步体验Python 语⾔在图像处理上的功能,实践步骤为:①导⼊Image、numpy、matplotlib三个模块;②打开图像并转换成数字矩阵;③调整每个像素的RGB值;④⽣成灰度新图像并显⽰。这段内容为后⾯的实践起到了铺垫作⽤,构思好,但在具体语句的实现上,笔者觉得还有待商榷。
在数字图像处理中,不同的图像格式有其特定的处理算法,在做图像处理之前,需要考虑清楚要基于哪种格式的图像进⾏算法设计及其实现。PIL(Python Image Library)是Python的第三⽅图像处理库,有九种不同模式,教材中⽤到了convert()函数的转换,使⽤了L模式,把原始彩⾊图⽚转换为灰⾊图像(模式“
L”为灰⾊图像,它的每个像素⽤8个bit表⽰,0表⽰⿊,255表⽰⽩,其他数字表⽰不同的灰度。在PIL中,从模式“RGB”转换为“L”模式是按照下⾯的公式转换的:L=R*299/1000+G*587/1000+B*114/1000)。
打开图像,得到各像素点颜⾊的RGB值后,直接对像素点颜⾊值进⾏操作,这符合⾼中学⽣初学Python的认知⽅式,读⼊图⽚直接操作能加深学⽣对数字图像处理的理解。⽽原例中转换为⼆维数组,再对⼆维数组的元素进⾏操作来改变像素颜⾊值,增加了学⽣的认知障碍。另外,程序此处引⼊numpy模块毫⽆优势可⾔,虽然使⽤numpy模块是图像后续处理的⾸选思路,使⽤数组来存储数据也能使学⽣养成良好的技术习惯与意识,但放在这⾥,思维脉络上略显突兀,故numpy不妨移后介绍。
interoperability从突出重点、降低学⽣认知困难上来考虑,这⾥转换为灰度后,可使⽤getpixel函数直接对像素点进⾏操作(getpixel函数是⽤来获取图像中某⼀像素的颜⾊值),把实验步骤②、③不妨改为“转换各像素的颜⾊为⿊⽩⼆⾊”,直接使⽤代码完成⿊⽩⼆值转换,新代码如图1所⽰。
推⽽⼴之,在Python语⾔的教学中,是考虑技术意识优先,还是以学⽣的认知习惯为要,这是要好好斟酌的。思维的培养是⼀个长期熏陶的过程,对numpy的介绍,可随着学⽣的认知特点,渐进式地介绍,从⽽进⼀步加深学⽣对不同技术选择的理解与感悟。
另外,在教材导⼊模块前,可补充介绍第三⽅模块的安装,因为丰富的第三⽅模块库的安装,是学⽣
以后学习Python必需的基础。
format short● 重构⽰例深化计算思维
教材在“3.3简单算法及其程序实现”中,主要介绍解析算法及其程序实现、枚举算法及其程序实现和算法实现的综合运⽤。教材中以答题卡准考证号的识别作为⽰例,⾮常贴近学⽣的学习⽣活,是⼀个精⼼构思。⼀般答题卡的识别⼤都是光学识别,本例使⽤计算机图像识别技术,进⾏分析处理,也是计算机化的⼀个重要途径,但教材中⽰例的具体设计与实现,稍显割裂,详细研读本段内容后,略感意犹未尽。
计算思维是⾼中信息技术学科的四⼤核⼼素养之⼀,教材通过答题卡识别⽰例的具体实现,⼒图抓住计算思维本质,引导学⽣从Python语⾔的实现⾓度来界定问题、转化问题,对问题抽象建模,合理组织数据,形成解决⽅案。为加强计算思维的渗透,笔者设想以项⽬完整实现为抓⼿,对教材中的相应内容进⾏再设计。
1.分析
python教材下载对答题卡的识别,不妨把整张卡的识别问题进⾏分解、细化,先缩⼩为⼀道题的识别,⽽⼀道题的识别,就变成对A、B、C、D四个选择区域的判别,如果按照答题卡的彩⾊进⾏判别,有⼀定难度;我
们就把各像素点的颜⾊从彩⾊转换为灰度,再依据⼀定标准转换为⿊⽩两⾊,将图像⼆值化后便于识别。这也是计算思维中的分解、降维思想,要在教材中加以凸显,便于引导教师在教学中进⾏深化。
⼀道题A、B、C、D四个选项的判定,取决于识别出A、B、C、D的选项区域哪个被填涂,填涂区域的像素点为⿊⾊,像素值为0;未填涂区域,像素点为⽩⾊,像素值为1。可分别累加这四个区域像素点的值,等于0的区域,就是被填涂的,即该区域的选项被选中,⼀道题的判定即告完成。重复此过程,整张答题卡的答案均可判读。
2.抽象与建模
预备:通过以下两⾏代码,显⽰处理后的图⽚。
plt.imshow(img_I,cmap="gray")
plt.show() # 显⽰图⽚,便于放⼤分析
通过zoom图标放⼤图像,可查看各点坐标,进⽽分析出相关参数:题号1,A选项填涂区域左上⾓的顶点坐标(14,240),A选项填涂区域右下⾓的顶点坐标(16,245);B选项,左上⾓的顶点坐标(14,261),B选项右下⾓的顶点坐标(16,266);详细分析C、D选项的选项区域后,可以得到填涂区域长度为12,宽度为5,各选项之间的间隔为6,各题的间隔也为6。这样,可以进⼀步分析实际填涂区域⼤
c程序语言入门教材概是
11*5=55个像素点,分别累加这四个区域各像素点的值,理论上,未填涂的三个区域的值应等于55,只有⼀个区域的值等于0,这就是被填涂区域,即此区域选择被选中。(考虑到实际的误差因素,⼀般三个区域值⼤于53,剩下区域的值⼩于3即可)
3.编写程序forest12元是永久的吗
题号1的判别程序代码如图2所⽰。
字典是Python基本的内置数据类型,针对字典数据类型的特点,我们可把四个选项的代码循环来处理,优化如图3所⽰。
items()⽅法可把字典中每对key和value组成⼀个元组,并把这些元组放在列表中返回。通过这个⽅法,可以加深学⽣对字典这⼀数据类型的理解。⽽对于准考证号的识别,则可以将其作为课后作业。
4.函数的使⽤
题号1的选项识别,是整个程序的核⼼算法,其他各题的识别,基本上是重复这段代码,我们可以将此部分优化成函数,来实现程序的模块化设计。函数运⽤及函数思想的渗透,是计算思维的重要体现,⽽培养学⽣的函数思想,是深⼊体现计算思维的⼜⼀重要抓⼿。
5.拓展思考
(1)加⼊容错分析。细⼼的学⽣如果仔细思考,应该能考虑到选项意外填涂时的容错。⾸先,没有填涂时,4个区域像素值的和均为60,可以据此判断,未填涂;若误涂了多个区域,那么,应该是有少于3个区域的像素值接近60,也可以据此识别结果⽆效。部分代码如图4所⽰。
(2)对全班学⽣答题卡的打开。全班学⽣的答题卡⽂件,保存在同⼀个⽂件夹下,可遍历当前⽂件夹下的所有图⽚⽂件,使⽤的是os.walk⽅法,该⽅法对于指定⽬录返回⼀个三元组(dirpath, dirnames, filenames),第⼀个是路径,第⼆個是路径下⾯的⽬录,第三个就是⽬录⾥⾯的⾮⽬录⽂件。代码如图5所⽰。
在进⾏了适当拓展后,基本完成“对答题卡识别”这⼀项⽬的编程实现。⾄此,笔者以完整项⽬为抓⼿,对浙教版必修1《数据与计算》3.3节中的内容进⾏了再设计。
当然,从意识、思维、⽅法再到能⼒的过程不是⼀蹴⽽就的,需要有针对性地在课堂教学中加以培养。这⾥,教材也只是教师开展教学任务的参考,仅仅是⼀项优质资源,实际教学还要考虑各种实际情况来具体对待。
⾯对新课标、新教材所带来的新机遇和新挑战,教师要多从计算思维⾓度考虑,使教学内容的设计更
具逻辑性,让计算思维凸显于项⽬化设计中,使计算思维能真正落地⽣根,更好地实现全⾯提升⾼中学⽣信息素养的重要⽬标。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。