高中必修一信息技术课本浙江教育出版社电子书

大家好,本文将围绕高中必修一信息技术课本浙江教育出版社电子书展开说明,高中必修一信息技术作业本电子版是一个很多人都想弄明白的事情,想搞清楚高中必修一信息技术课本电子书需要先了解以下几个事情。

张剑锋

《普通高中信息技术课程标准(2017年版)》公布后,根据其修改的新教材也陆续出版。拿到浙江教育出版社出版的高中信息技术必修教材《数据与计算》后,笔者仔细学习了“算法的程序实现”内容,对Python内容教学有了更深刻的理解,但也产生了一些想法高中信息技术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不妨移后介绍。

从突出重点、降低学生认知困难上来考虑,这里转换为灰度后,可使用getpixel函数直接对像素点进行操作(getpixel函数是用来获取图像中某一像素的颜色值),把实验步骤②、③不妨改为“转换各像素的颜色为黑白二色”,直接使用代码完成黑白二值转换,新代码如图1所示。

推而广之,在Python语言的教学中,是考虑技术意识优先,还是以学生的认知习惯为要,这是要好好斟酌的。思维的培养是一个长期熏陶的过程,对numpy的介绍,可随着学生的认知特点,渐进式地介绍,从而进一步加深学生对不同技术选择的理解与感悟。

另外,在教材导入模块前,可补充介绍第三方模块的安装,因为丰富的第三方模块库的安装,是学生以后学习Python必需的基础。

● 重构示例深化计算思维

教材在“3.3简单算法及其程序实现”中,主要介绍解析算法及其程序实现、枚举算法及其程序实现和算法实现的综合运用。教材中以答题卡准考证号的识别作为示例,非常贴近学生的学习生活,是一个精心构思。一般答题卡的识别大都是光学识别,本例使用计算机图像识别技术,进行分析处理,也是计算机化的一个重要途径,但教材中示例的具体设计与实现,稍显割裂,详细研读本段内容后,略感意犹未尽。

计算思维是高中信息技术学科的四大核心素养之一,教材通过答题卡识别示例的具体实现,力图抓住计算思维本质,引导学生从Python语言的实现角度来界定问题、转化问题,对问题抽象建模,合理组织数据,形成解决方案。为加强计算思维的渗透,笔者设想以项目完整实现为抓手,对教材中的相应内容进行再设计。

1.分析

对答题卡的识别,不妨把整张卡的识别问题进行分解、细化,先缩小为一道题的识别,而一道题的识别,就变成对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。这样,可以进一步分析实际填涂区域大概是11*5=55个像素点,分别累加这四个区域各像素点的值,理论上,未填涂的三个区域的值应等于55,只有一个区域的值等于0,这就是被填涂区域,即此区域选择被选中。(考虑到实际的误差因素,一般三个区域值大于53,剩下区域的值小于3即可)

3.编写程序

题号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节中的内容进行了再设计。

当然,从意识、思维、方法再到能力的过程不是一蹴而就的,需要有针对性地在课堂教学中加以培养。这里,教材也只是教师开展教学任务的参考,仅仅是一项优质资源,实际教学还要考虑各种实际情况来具体对待。

面对新课标、新教材所带来的新机遇和新挑战,教师要多从计算思维角度考虑,使教学内容的设计更具逻辑性,让计算思维凸显于项目化设计中,使计算思维能真正落地生根,更好地实现全面提升高中学生信息素养的重要目标。

猜你喜欢

转载自blog.csdn.net/chatgpt001/article/details/132955512