APP下载

《玩转Python编程中的枚举算法》微课设计

2023-03-17郑大伟天津市河东区天铁第二中学

中国信息技术教育 2023年4期
关键词:枚举编程微课

郑大伟 天津市河东区天铁第二中学

本微课以人教-中图2019版高中信息技术教材必修1第二章第四节“2.4.2基于枚举算法的问题解决”的知识为设计依据,适用对象为高一学生,兼顾其他对Python编程有兴趣的学习者。结合高中信息技术学科课程标准,从大单元教学设计视角看,本微课是“算法与程序实现”单元教学的重点和难点,旨在通过典型实例的项目探究,锻炼学生计算思维,使其增强算法优化意识,并借助Python这一数字化编程工具实现问题的解决,提升信息意识和数字化学习与创新能力,增强学习内驱力。

● 特色与亮点

1.设计理念:覆盖全面,开放包容

本节课立足数字化学习环境Python程序设计,突破使用枚举算法解决实际问题这一教学难点,以落实立德树人根本任务、培育信息技术学科核心素养为出发点,面向全体学生。“理论学习+课程实践”的设计思路全面覆盖教学过程,培育以学习为中心的教育学关系,在问题解决过程中促进学生计算思维的拓展,培育学生数字化学习与创新能力。[1]本微课不仅融合了“二分法求方程近似解”等跨学科知识,还配备了丰富的相关素材文件。这都切实增强了课程学习的全面性、延伸性、开放性。

2.结构特点:逻辑清晰,梯度显著

本微课的结构设计,融合了笔者所在学校的“互动教学模式”,以“展标引入、新知探究、深度研习、融合提升、分层练习、总结反馈”为学习主线,内容层层深入,采用情境教学、互动教学、任务驱动等教学模式,呈现科学完整的教学过程。此外,课程还设置多角度的示例点拨、多层次的课后编程作业,最大限度地实现多维度展示、多梯度教学。

3.内容创新:实例典型,充满趣味

本微课重构教材内容,大胆创新,融合跨学科背景,结合我国古代数学文化,选取既典型又有趣的韩信点兵、百钱百鸡等问题,在有限的教学时间内,研究枚举算法的Python编程思路,淡化知识重难点的单一讲授。学生在探究过程中,体验传统的数学解题思路与数字化工具Python解决问题的特色。课后,以鸡兔同笼问题、完美立方数、素数判断三个问题分别作为基础编程、能力提升、拓展探究的分层作业,寓学于乐,激发学生的编程热情和学习内驱力,引导学生互动参与,检验学习成果。

4.应用方式:注重交互,即时反馈

微课的设计不应该只是单纯的知识点讲解,更应该体现课程的交互性,以学生为主体,吸引学生参与学习。在有限的课堂时长条件下,为保证学习效果,本微课采用文字提示、箭头框图、悬停按钮、提示扫码等方式,在关键环节加强与学习者的交互,提升了教学有效性,优化了学习体验。学习者参与完答题互动、学习测评后,也会得到结果的即时反馈。

● 制作背景

第一,基于落实学科核心素养要求。2022年已经是天津市使用人教-中图2019版信息技术新教材的第三年,如何按照普通高中课程标准要求,保证信息技术学科核心素养落地至关重要。本节微课的制作以《普通高中信息技术课程标准(2017年版2020年修订)》为准绳,落实立德树人根本任务,从信息技术学科信息意识、计算思维、数字化学习与创新、信息社会责任四大核心素养出发,设计课程内容,凸显高效教学、有意义学习。

第二,基于落实“双减”政策的要求。自“双减”政策实施以来,在学校完备的课后服务体系的支持下,笔者所在学校教师团队开设了体育锻炼、文化研究、编程实践、生涯规划等多样的自选课程。“算法与程序设计”系列微课程应运而生,本节微课选自其中。本微课既可作为信息化教学资源,又可作为提升学生信息素养的活动拓展课。

第三,基于教师信息化能力提升的需要。通过天津市中小学教师信息技术应用能力提升工程2.0“整校推进”,教师充分认识到应将信息技术与学科教学深度融合,高效合理地利用多种媒体和网络资源。同时,本节微课结合深度学习和大单元教学,在线互动理论问答、自主探究编程、扫码测评反馈等环节,重视课程交互体验,有利于将知识的浅层学习引导至深度学习。韩信点兵、百钱百鸡等趣味问题情境的设置,让学生在真实的案例中体验枚举算法的问题解决思路,切实改善教学效果。

第四,基于师生实现高效教与学的需要。当前,线上与线下教学的频繁切换容易影响正常的教学进度和学习效果,学生的学习内驱力也可能因此减弱。探索线上线下教学有效融合策略,提高学生学习内驱力是教师急需考虑的问题。交互式微课资源比传统课堂资源更能激发学生的学习兴趣,更有利于教师探索线上线下教学融合策略,进而提升学生学习内驱力。

● 设计思路及内容结构

1.设计思路

总体而言,本微课设计以“展标引入、新知探究、深度研习、融合提升、分层练习、总结反馈”为学习主线,采用情境教学、互动教学、任务驱动等教学模式,提升学习内驱力,立足核心素养培育,落实立德树人。

具体来讲,设置韩信点兵、百钱百鸡等趣味问题情境。在体验枚举算法解决问题的过程中,添加在线互动问答、自主编程、测评反馈等环节,重视课程交互体验,支持学生信息素养发展。同时,教师辅以思路点拨、示例展评、分层练习,既鼓励学生编程创新、彰显个性,又重视学生利用数字化工具深度思考解决问题。微课设计思路思维导图如图1所示。

图1 微课设计思路思维导图

2.内容结构

(1)微课名称

玩转Python编程中的枚举算法。

(2)学习目标

①通过典型实例的探究练习,能够准确将关键文字信息转化为Python程序语句,提升信息意识。

②明确枚举算法的定义和适用条件,通过使用枚举法编程解决典型实际问题,锻炼计算思维,体会枚举法在问题求解过程的优势和局限性,增强算法优化意识。

③经过实例互动编程到自主探究的过程,熟练掌握基于枚举算法的Python程序设计及调试方法,鼓励编程创新,体会数字化工具在问题求解过程中的优势。

④负责任、规范、安全地使用信息技术工具,增强信息社会责任意识。

(3)学习重难点

重点:①理解枚举算法解决问题的思路;②利用枚举算法解决典型实际问题。

难点:利用枚举算法解决典型实际问题。

(4)学情分析

本微课适用于高一学生,学生已经具备Python编程的基本语法知识,对顺序、选择、循环三类基本程序结构能够熟练识别,掌握了简单程序的编写。枚举算法既涉及简单表达式,又包含基本程序结构,学生学习有难度。通过合理设计教学过程,配合高效的信息化教学手段,学生能较好地攻克知识难点。

(5)学习过程

①展标引入。本部分用剪映+MG动画人物展示课题,结合课程标准和核心素养,说明课程学习内容和重难点,如图2所示。

图2 展标引入阶段相关内容

②新知探究。本部分以“理论+情境”的结构完成微课设计。首先,微课介绍枚举算法的编程思路—确定枚举对象、枚举范围、验证条件,借助循环语句或条件语句进行相应的程序设计,实现问题的解决。接着,引出问题情境—韩信点兵问题,如图3所示。微课内容则使用文字提示、鼠标悬停按钮,引导学生互动思考,鼓励学生自主探究程序设计。如果此时学生思考遇到问题,则继续观看微课,先借助流程图厘清问题再进行编程。最后,教师展评两种编程示例,深度解读while循环和for循环的应用。

图3 新知探究阶段相关内容

③深度研习。本部分枚举算法解决百钱百鸡问题,即一百个铜钱买了一百只鸡,其中公鸡一只5钱,母鸡一只3钱,雏鸡一钱3只,问一百只鸡中公鸡、母鸡、雏鸡各多少。根据提示,学生可以着手确定枚举对象、枚举范围、验证条件,选取合理的程序结构尝试编写程序。同样地,如果学生遇到编程问题,依然可以先根据教师的引导,分析问题的流程图,然后进行编程。与上一学习阶段不同的是,本部分设计留白,提示学生扫描二维码或者参考素材文件,参与实时互动,在课程引导下获得即时反馈。接着,视频以三重for循环为例,就百钱百鸡问题进行点拨指导,指出二重for循环如何实现算法优化。

④融合提升。本部分主要体现算法优化思想与跨学科知识的延伸。微课使用MG动画,以天平找次品为例,即借用天平,查找100个标准零件中的1个轻质次品。引导学生回顾利用枚举算法解决问题的基本思想,体会逐一对比查找与折半查找在算法效率方面的差异,树立算法优化思想,进而延伸跨学科知识“二分法求方程近似解”。

⑤分层练习。本部分设置并解读梯度显著的编程延伸训练,提示学生编程后,互动获取即时反馈,对比参照解析,再次体会枚举算法的求解思路、算法优化思想。[2]分层作业内容如下。基础编程题:有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。采用枚举法编程求解鸡和兔的个数。能力提升题:形如a3=b3+c3+d3的等式被称为完美立方等式。例如,123=63+83+103。编写一个程序,对任给的正整数N(N≤100),寻找所有的四元组(a,b,c,d),使得a3=b3+c3+d3,其中a,b,c,d大于1但小于等于N,且b≤c≤d。拓展探究题:输出100以内的所有素数,请利用枚举算法设计程序。

⑥总结反馈。本部分对整节课的教学内容进行总结,回扣学习目标,鼓励学生完成并分享学习态度、学习行为、学习目标达成度三个维度的学习评价,客观反馈自己的学习结果,完成个性化测评。教师则获得全体学生的学习反馈档案。

● 关键技术处理

1.技术难点

①如何体现微课教学在重难点知识(利用枚举算法编程)学习方面的有效性、高效性。

②如何提升教学过程的交互性,指导学生自主探究和参与编程实践。

③如何满足不同学习能力学生的学习需求,获得全体学生的学习反馈。

2.制作软件:PPT、剪映、录音软件

本课程使用PPT对学习内容的基本框架进行设计,设计合适的背景图片、插图、文字素材等,借助剪映电脑版进行交互式按钮、MG动画、转场效果的编排,利用iOS手机系统自带的录音软件和无线领夹麦完成音频的采集和优化,最后在剪映电脑版进行音画合成。

3.处理技巧

①在教学内容方面,本课程优化和重构教材有关枚举算法的介绍,站在深度学习理论和大单元教学视角,选取典型的情境教学案例。在技术实现方面,使用“PPT+剪映+音频”制作微课,既保留PPT学习的简单直观优势,又融合剪映在视频呈现方面的流畅性与趣味性,吸引学生好奇心,激发学生学习热情,实现有效教学。

②利用文字提示、悬停按钮、扫码测评等工具引导学生交互,淡化知识的单一讲解,科学设置互动问答题目和实践编程难度,持续吸引学生注意力,鼓励学生参与程序设计,增强学习内驱力。

③注重选取丰富、全面的配套素材文件,拓展延伸有限的课程内容,设置课后分层练习、在线学习测评,反馈学习评价,以满足不同学习能力学生的学习需求,最大限度地实现个性化指导。

● 幕前幕后

第一,微课开发前,笔者充分调研了学情,明确了学生在算法与程序实现单元学习的困难,切实站在学生角度设计教学流程、教学思路。对于Python程序设计难点问题,本节课充分考虑了教材结构和学生喜好,合理地处理了学习内容间的逻辑关系,设计了学生喜爱的授课风格和动画效果,协调呈现字、音、画等多媒体,合理调节元素布局,融合信息技术促成学科核心素养。

第二,在学习的关键环节,微课也设置了互动环节,有延伸,有留白。一节成功的微课应该注重教学实效,但教师过多的讲授总能引起学生学习的疲乏。因此,本微课重视学习互动,重视课程延伸,重视教学留白,努力做到让学生学习后获得感十足,意犹未尽,想听下回分解。

第三,微课是优化教学过程、提升教学实效的有效手段。在开发“算法与程序实现”系列微课程时,教师应该充分利用线下教学,对学生进行编程指导。这样既可以让教师了解本课程在服务教学时出现的不足,也可以实现对学生的个性化指导。

猜你喜欢

枚举编程微课
基于理解性教学的信息技术教学案例研究
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
微课在幼儿教育中的应用
微课在高中生物教学中的应用
纺织机上诞生的编程
微课在初中历史教学中的应用
数组在处理枚举无规律数据中的应用
基于太阳影子定位枚举法模型的研究