核心素养视角下高中信息技术大单元教学实践研究
作者: 仵子俊
摘要:本文以项目学习为载体,对学科的核心素养围绕大单元教学设计内容进行细化、解构,在项目学习中对学科核心素养的支撑点重新进行整合与梳理,建构知识体系,并以“Python处理体能测试表格”项目为例,探究如何利用项目在高中信息技术课堂中落实大单元教学。
关键词:大单元教学;核心素养;高中信息技术;数据处理
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2022)19-0059-04
● 项目背景
为了贯彻落实健康第一的指导思想,完成《国家学生体质健康标准》测试,促进学生积极参加体育锻炼,养成良好的锻炼习惯,笔者所在学校对全体高中学生进行了体质数据测试,测试项目包括身高、体重、肺活量、立定跳远、坐位体前屈、800米跑(1000米跑)、一分钟仰卧起坐、引体向上、左右眼视力等。在测试过程中,由于人员的安排问题,产生了两张数据表格,现在需要用一张表格中的数据替换掉另一张表格中的数据。在本项目中,笔者利用大单元教学,把学科知识贯彻在项目分解后的具体教学任务中,使学生在完成任务的同时学习到知识,同时提高了他们分析问题、解决问题的综合能力。
● 大单元教学项目规划
本项目中的两张数据表,一张是全部学生的测试数据all.xls(大概有近4000条记录),另一张是部分学生的测试数据bufen.xls(大概有300多条记录)。现在要用部分学生的数据覆盖掉全部学生表里面的部分学生的数据。如果直接复制过去,就会产生400多条姓名和学籍号相同的记录,这是不被允许的,而如果手工操作从bufen.xls复制过去,覆盖掉相同姓名和学籍号的学生的测试数据,又太浪费时间,大概要几个小时,还容易出错。那么如何快速、准确地处理这些数据呢?其实本项目就是一个解决办公自动化的问题,为了让学生掌握利用Python处理Excel表格的技能,学习设计采用层层递进的方法,首先学习如何读取Excel表格信息,然后学习如何把数据写入Excel表格,最后学习如何利用好双层循环替换处理Excel表格数据。让学生一步步跟随项目完成的脚步,学会利用Python处理Excel表格的技能并增强学习能力,提升信息素养。
● 大单元教学项目目标
①学会使用xlrd库读取Excel数据。②学会使用xlwt库把数据写入Excel文件。③修改库xlutils的使用方法。④for循环的理解及应用。⑤会使用Range()函数。⑥理解并会使用循环的嵌套。
● 大单元教学项目实施
1.情境导入:观看体质测试的照片和视频
师:同学们,近几天大家都在在操场上进行体质数据测试,是不是有些同学测试了两次呢?这是由于第一次测试全部数据部分不准确,第二次测试的部分数据比较准确,现在我们需要用第二次的数据替换掉第一次测试的数据,怎么操作呢?
教师展示“体测全部数据.xls”和“部分数据.xls”两张Excel表格(如图1)。
师:这两张表格数据就是真实的要处理的数据。“工欲善其事,必先利其器”,为了完成这个任务,需要先完成下面几个小任务,让我们来解决问题吧!
2.任务一:学会使用xlrd库读取Excel数据(如图2)
师:请同学观看导学内容,掌握Python xlrd读取Excel数据的具体操作。
导学内容:xlrd库的安装——pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd。从清华这边的镜像去安装xlrd库(直接安装太慢了);读取工作簿、工作表、单元格信息。
3.任务二:使用xlwt库,创建工作簿、工作表并将数据写入单元格(选学内容)(如图3)
师:通过上面的学习,我们会读取Excel文件中的数据了,但是如何写入数据呢?下面请同学观看导学内容:xlwt库的安装(参考xlrd的安装);xlrd库只能读取Excel文件中的数据。如果要向Excel文件中写入数据,需要使用xlwt库,同时具备创建工作簿、工作表,以及将数据写入单元格的功能。
4.任务三:修改库xlutils的使用方法(如图4)
师:xlrd是读取Excel数据,xlwt是把数据写入Excel,如何修改Excel数据呢?我们可以使用xlutils库,注意这里的“修改”和实际意义的修改有什么不同?下面请同学们学习导学内容:xlutils库的安装参考xlrd库的安装(先安装xlrd和xlwt,再安装xlutils,不然会出错);修改库xlutils,对当前已经存在的工作簿进行复制,对复制的工作簿进行操作,不是直接修改原工作簿,最后在保存时,如果保存文件相同,就相当于把原来的工作簿替换了而已。
xlrd库只能用于读取已经存在的Excel文件相关信息,xlwt库只能新建工作簿、工作表,写入内容,没有办法对现有的工作表进行修改,要实现修改功能,需要安装xlutils库,相当于在xlrd和xlwt之间建立起一座桥梁。xlutils库可以对现有工作簿进行复制,工作簿进行读取、新建,以及将数据写入单元格,最后保存导学内容。
5.任务四:for循环与range()函数
师:如果和列表中的每一个同学打招呼,展示5个同学的姓名,打印出“你好啊,***,很高兴见到你”,同学们会想到哪5个print()语句?(教师提示:如果要和我们班每个同学说出姓名,打下招呼呢?)
导学内容如下:
在Python中,for语句的格式:
for <变量> in <序列>:
<循环体>
for语句通过遍历序列中的元素实现循环,并通过序列的元素数量来控制循环次数,即循环过程,序列中的每个元素都会依次被赋值给变量,并分别执行一次循环体。
for语句的例子。现在有一个列表hobby = ["篮球", "羽毛球", "看书", "旅行", "音乐"],将hobby中的所有元素输出到屏幕上(一行一个元素),可通过下面的语句来实现:
hobby=["篮球","羽毛球","看书","旅行","音乐"]
for x in hobby:
print(x)
该语句执行后,输出的结果是:
篮球
羽毛球
看书
旅行
音乐
range函数的用法。内建函数range(起始值,终值,步长值)由三个参数来决定序列中元素的个数和范围。range(0,10,1)生成0~9这10个整数序列,若起始值缺省,则默认值为0;步长值是序列中的每个元素之间的差,若缺省,则默认值为1;一个参数range(n)产生的范围[0,n),二个参数range(n,m)(n range函数的例子。编程实现输出1~10偶数序列。可通过下面的语句来实现: for num in range(2,11,2): print(num,end=' ') 该语句执行后,输出的结果是: 2 4 6 7 10 倒序输出1~10之间的奇数: for num in range(9,0,-2): print(num,end=' ') 该语句执行后,输出的结果是: 9 7 5 3 1 6.任务五:循环的嵌套 师:单独使用for循环,往往无法解决复杂的问题。如需要解决类似“工作要做很多遍,而每一遍都是需要重复做一些事情”的问题,就要用到多重循环,即“循环嵌套”。如果某一种循环语句中包含着自身或其他循环语句,就称为循环的“嵌套”。for循环之间可以相互嵌套。 导学内容包含用for循环嵌套语句,输出以下数字排列图形(如图5)及代码(如图6)。 i负责输入的行数,j负责每行输出的内容。 打印99乘法表(如图7)。 外层循环i从1到9控制打印的行数,内层循环控制打印的列数,代码如下页图8所示。 7.任务六:完成大单元项目 师:当完成了上面的5个任务后,完成本项目就不是什么难事了,我们要用“部分数据.xls”中的数据内容替换掉“体测全部数据.xls”中的内容。因为每个同学的“学籍号”都不一样,具有唯一性,所以“学籍号”所在的E列就是第五列,通过判断学籍号是否相等来进行查处。 外层循环就是“部分数据.xls”第二行(第一行为列名)到最后一行的数据,内层循环就是“体测全部数据.xls”第二行到最后一行的数据,依此从“部分数据.xls”取一行,遍历“体测全部数据.xls”的所有行,如果两张表格的cell(i,4).value相等,说明找到了。然后用“部分数据.xls”覆盖“体测全部数据.xls”对应的行就可以了。代码如图9所示。 ● 项目教学反思 本学习设计是大单元教学项目,计划用4~5节课完成。通过这个项目,学生逐渐掌握利用Python处理Excel的功能,并通过边学边用,增强和提高了学习和接受新事物的能力和水平。存在的问题是,上述6个任务设计得还不够细致,有些内容还需要在导学中进行细化。