浅谈如何运用建模思想发展计算思维的高中信息技术教学实践
2021-08-23林国斌
林国斌
摘 要:文章借鉴运用数学建模思想,以培养计算思维的六种子能力融入教学活动中,构建了基于发展计算思维的课堂教学模式,并以“枚举算法”一课的教学为例,探讨如何运用该模式进行教学的实施并提出相关建议。
关键词:信息技术;计算思维;数学建模;教学模式;枚举算法
一、 引言
《普通高中信息技术课程标准(2017年版)》明确把计算思维列入学科的核心素养。如何发展学生的计算思维值得一线教师进行更深入的教学实践与探索。为此,笔者尝试借鉴运用数学的建模思想,以培养计算思维的六种子能力融入课堂教学实践中,寻找一种发展学生计算思维的有效教学模式。文章以教科版高中信息技术必修一4.1节中的“枚举算法”教学为例,探讨如何运用数学建模思想发展学生的计算思维。
二、 数学建模思想与计算思维
计算思维简单的理解就是像计算机一样处理和解决问题的思路和能力。计算思维主要可以划分为如下六个子能力:问题形式化、抽象问题特征、建立结构模型、分析和组织数据、问题解决过程自动化、解决方案系统化。计算思维的本质是抽象和自动化,抽象是将真实世界中的事物或者解决问题的过程通过分解、简化等方式转化为计算机设备可处理的数学模型。可见,建立问题解决的模型,运用合理算法求解模型是培养计算思维的关键,而如何由抽象到建模到求解模型学生往往无从下手,这也是发展计算思维的难点。借鉴数学的建模思想,通过亲历数学的建模解模过程为解决学生计算思维的形成发展提供了可行的方案。
数学上的建模过程主要历经:从实际问题入手,进行抽象、简化、假设,建立数学模型、求解模型,进行模型评价改进。建模思想运用于教学过程可简化为四个阶段:①建立模型,主要是针对真实情境问题,抽象出问题的形式特征,建立可处理的数学模型;②求解模型,通过组织数据,设计算法,编程实现达到求解问题的自动化;③运用模型,迁移运用到类似问题,形成系统的解决方案;④模型迭代,针对运用问题,调整完善模型的求解算法,改进模型。围绕这一建模流程,尝试采用模型解决的思维方式,提出基于建模思想的教学模式,用以发展学生的计算思维。
三、 基于建模思想的计算思维培养教学模式
运用建模思想结合计算思维培养的六个子能力,构建基于发展计算思维的教学模式(图1)。该模式以建模流程为主线,以培养学生的计算思维能力为目标,进行教学活动设计。在教学中,教师作为主导为学生提供“脚手架”,引导学生进行自主探究学习,建构知识。学生充分扮演教学主体的角色,在历经计算思维六个子能力的训练中,提升和内化学生的计算思维。
图1 建模思想的计算思维教学模式
四、 基于建模思想的计算思维培养的教学实施
根据上述的教学模式,在“枚举算法”这一课中,采用“寻找逃逸车辆”这一项目主题,设置相关教学任务,以落实计算思维的培养。
(一)创设情境,呈现问题
【情境】播放《明星大侦探》节目片段引入新课,《明星大侦探》栏目组要来寻找班级侦破推理高手,给大家提出考核任务——“寻找逃逸车辆”。要求学生4人为一小组,组队参赛。考核任务相关线索及要求放置在一个密码为1位小写字母的压缩包里,请证明你的实力,尽快破解密码拿到考核任务。在学生顺利完成密码破解后,教师提问学生验证了几次密码才破解成功?如果密码是2位小写字母,破解难度有多大?师生一起回顾破解的过程,与学生一起总结提炼出该问题的形式:列举所有解+判断正确解。演示计算机破解密码的过程,引入枚举算法学习课题。通过创设情境,以一个简单的密码破解问题,让学生亲历枚举法解决问题的基本思路,通过师生的一起归纳,实现了求解问题的形式化表达的思维能力。通过了解计算机破解密码优越性,引发学生思考用计算机编程解决问题的必要性和意义。
(二)自主探究,建构模型
学生拿到“寻找逃逸车辆”案情:某地发生一起逃逸案,确定是当地车辆但车牌号后5位号码不明,警察找到如下线索:①车牌后五位都是数字且后一位是6;②前两位数字是72;③车牌后五位数字能被48整除。请为警察找出该车牌号。学生完成学案探究任务一——“为警察提供破案思路”。学生对关键线索进行分析,引导学生用自然语言来描述三个关键线索,明确枚举求解车牌号码的三个关键点:枚举对象、枚举范围、枚举验证条件,让学生抽象出寻找逃逸车牌号码问题的特征,即求一个五位数:72??6,满足被48整除的所有数字这一问题特征。引导学生进一步思考车牌号的枚举范围和检验方式,绘制流程图,描述出、找出所有符合的车号牌的算法,为建立求解枚举算法的数学模型奠定基础。完成流程图后,梳理出问题解决的逻辑过程,自主建构枚举算法解决问题的一般数学模型:枚举解+筛选解+输出解。引导学生实现抽象问题特征并建立模型的计算思维能力。
(三)求解模型,解决问题
学生自主建构枚举算法的求解模型后,完成考核任务二——“编程找出可能的车牌号”。提出探究任务:①分析算法求解过程中运用几个变量,他们的初值和终值分別是多少?②编程找出所有车牌号需要运用什么程序结构?③判断符合条件,运用什么程序结构,判断的表达式是什么?④如何枚举72??6中间的两个未知数,直接用Range(72006,72996)实现枚举行不行?小组成员分工协作一起完成半成品“找出车牌号.py”的代码,并在OJ平台上调试运行,测试结果。教师提供微课视频资源并全程巡视,帮助学生发现代码编写过程中的错误,并及时指导。学生通过分析组织数据、学习微课视频等完善半成品代码,实现找出车牌号码问题算法,求解出枚举算法模型为:枚举解(循环语句)+筛选解(条件语句)+输出解(或统计解的个数),培养学生由组织分析数据到模型解决问题过程自动化的计算思维能力。
(四)运用模型,迁移提升
学生通过程序验证,找到四个车牌号,继续完成考核任务三——“找出谁是逃逸者”根据警察的线索:逃逸者确定是A、B、C、D四个车牌号车主,经过审问,A说:“不是我。”B说:“是C。”C说:“是D。”D说:“C说得不对。”已知四人中只有一人说的是假话。请帮警察找出真正的肇事者。提出探究任务:1. 判断“谁是肇事者”的枚举对象、枚举范围、验证条件分别是什么?2. 用1(表示真)、0(表示假)填写《四车主真假话对照》。3. 四人中只有一人说的是假话,以上表格中数值相加为多少?如何用程序语句表达这个判断?教师讲解:逻辑运算表达式的书写。引导学生思考如何书写判断谁是冠军的表达式。之后让学生完成“求解谁是肇事者.py”的关键语句代码,并在OJ平台上调试运行,测试结果。让学生学会迁移解决其他同类型的问题,实现思维方法的迁移延伸,从而形成解决方案的系统化的计算思维能力。并在解决类似问题的过程中,学会分析问题的共性与特性,提升计算思维品质。