以实例促进高中信息技术算法与程序设计的教学
——以山东省高考等级赋分制程序设计为例
2020-06-15赵艳艳
赵艳艳
山东省济南第三中学,山东 济南 250001
《普通高中信息技术课程标准2017版》中提到,高中学生学习算法与程序实现,并不是要求他们系统地掌握专业知识,更不是要把他们培养成编程专家,而是希望他们体验计算机解决问题的过程,能真切的理解数字化世界的运转方式,成为合格数字公民。如何让学生体验和理解计算机解决问题的过程?这是高中信息技术教师需要思考的问题。从VB到现在流行的python,这是语言工具的改变,而我们要培养学生的计算思维,让学生做到举一反三,融会贯通。现在的高中生是信息化社会成长起来的“数字原住民”,他们对算法和编程充满了兴趣,但他们的计算思维的发展还处于初步建构阶段,所以在教学中要注重从实例出发,加强学生对于算法和程序设计的理解,培养学生的计算思维。
笔者作为高中信息技术一线教师,深感用学生感兴趣的实例进行教学更能吸引学生的注意,所以本文以《揭开山东省高考等级赋分制的神秘面纱》一课为切入点,以python语言为工具,阐述如何让学生体验程序设计的过程,理解算法。
一、情境创设,项目导入
2020年山东省实行3+3新的高考政策,除语数外,学生可以在理化生、政史地中任选三科,每个学生都会面对不同的选择,而每个学科的考试难度系数难以统一,那么如何按照统一的标准转换分数呢?由此引出山东省高考等级赋分制。
在赋分制中,根据考生的名次比例、人数占比,将考生分成8个等级,每个等级有对应的赋分区间,还需要知道同一等级内,考生所考分数的最高分和最低分。
将这些参数代入万能公式,在这个公式中,A为等级赋分区间内最高分,a为最低分,B为同一等级内考生的最高分,b为最低分,y为原始分,代入万能公式,求出等级分x,并进行四舍五入。为了让学生更好的理解等级赋分制,笔者让学生先用数学思维求解问题,这为理解程序设计打下基础,并引导学生,将计算等级分的步骤分解为:求等级、得区间、转分数三个环节。这样的设置,贴近高中学生即将高考的实际情况,能够快速引起学生的共鸣,将学生的注意力吸引到课堂上,为课堂建立了一个好的开始。
二、体验程序、理解算法
教师将设计好的程序提供给学生,学生运行程序,输入考生考号,得到转换后的等级分,之后学生带着问题阅读程序。这样的设计能够更好的适应学生基础较弱的学情,让学生感受编程的魅力,并在学生头脑中形成疑问,从而激发学生进一步探究的兴趣。
在程序中,模块一利用第三方库xlrd,导入考生的成绩单,学生观察输出的结果,分析如何利用for循环将“化学成绩单”中的数据导入到table中。
模块二是根据学号和“成绩单”,获取原始分、排名,学生分析如何利用for循环历遍表中的数据,利用if选择结构找到对应的考号,并得到相应的原始分和排名。
模块三是求等级分,学生分析如何利用if多分支结构得到等级赋分区间和实际成绩区间,并将相应参数代入万能公式,求出最终的等级分。
在阅读程序的过程中,学生分析问题、理解问题、回答问题贯穿始终,教师引导学生领会程序中如何求等级、得区间、转分数。在这个过程中,教师是课堂的服务员,而学生才是吸收知识的顾客。
三、算法迁移、融会贯通
在这个环节,笔者设置三个不同难度的任务:①通过输入原始分,得等级分;②通过输入排名,得等级分;③将“政治成绩单”导入,求某考生的政治等级分;学生根据任务在关键位置修改程序,得到相应的结果。以不同难度的任务驱动学生的自主探究学习,学生根据任务,设计算法,修改程序,教师对学生完成情况给予反馈和评价,这样的设置进一步巩固了学生对于算法的理解,实现算法的迁移。
四、拓展提高、总结升华
引导学生进行拓展,提出问题:①卷面分和等级分的哪个重要?②如果某一等级区间内同等名次人数较多,超过所占比例,怎么办?③面对新的高考政策,应该如何根据自身情况进行选课?通过这样的问题,让学生融入教学情境中,并能够利用所学,结合实际,解决自身问题,做到学以致用。最后升华主题,贯彻教书育人的教育理念,激励学生,面对新高考,只有拼搏才能创造价值,努力才能成就更好的未来。
这节课是以与学生紧密相关的真实问题作为案例,激发了学生学习的热情,在理解高考等级赋分制的基础上,引导学生分析程序,思考计算机解决问题的特征,促进了学生计算思维核心素养的养成。