生活中的“小程序”助力算法与程序设计学习

2020-06-21 23:56
江苏科技报·E教中国 2020年1期
关键词:小程序正整数字符

教学背景

本课例借助学生熟悉的小程序与随机函数的有机融合,在寓教于生活的过程中让学生强化用已学的算法与程序设计知识解决问题的方法与过程。小程序激发了学生学习的兴趣,让他们体验由知识的“趣味性”过渡到解决问题的“获得感”。

此外,教师也让学生发挥主观能动性。学生通过小组研讨、建立模型等一系列过程完成主题探究任务,进一步提升学生使用算法解决实际问题的能力与创造性。而结合生活中的验证码、验证字符和验证图片等实例,也能够体现网络安全的重要意义。

教学目标

知识与技能 复述随机函数Rnd( )的功能,能根据需要完成随机函数Rnd( )表达式的书写。

过程与方法 根据问题的需求分析,尝试分解和细化问题,借助随机函数Rnd( )化归为算法并解决实际问题。

情感态度与价值观 体验程序设计的魅力,提升用计算机解决生活实际问题的能力;通过验证图片与验证字符等实例迁移随机函数的知识,提升网络安全意识。

教学重难点

教学重点 随机函数在VB程序中的使用。

教学难点 应用随机函数解决实际生活中的问题。

教学过程

一、初步体验随机函数

教师采用模拟微信抢红包这一情境,逐步引申到“使用随机函数生成两位正整数”等算法问题的求解。依次围绕“体验抢红包—化归为算法问题—制作红包(编程实现)”三个教学环节逐步推进。

(一)体验抢红包

在第一个“体验抢红包”环节中,教师将事先编译好的程序“抢红包.exe”下发给学生,供学生操作体验抢红包的过程。学生在体验的过程中,逐步产生探索的兴趣,由直观体验到理性分析,进而过渡到算法问题的化归。

(二)化归为算法问题

教师展示微信群拼手气发红包界面,让学生思考:“何为‘拼手气?抢到的红包金额有什么共同特点?”再由“拼手气”化归为“产生随机数”问题,由“10元至99元”化归为“两位正整数”问题。之后教师引入随机函数概念及其默认取值范围、“随机种子”概念,进而与学生一同推导随机生成两位正整数的公式。

(三)抢红包程序实现

抢红包VB编程界面及代码如图1所示。

二、随机函数知识迁移

(一)数字验证码(随机数→数字)

1.程序背景

教师展示日常生活中手机用户收到的短信验证码截图,并介绍短信验证码:“短信验证码是通过发送验证码到手机的一种有效的验证码系统,通常由6位阿拉伯数字组成。”

教师布置任务:如何让计算机生成并显示数字验证码?

2.化归为算法问题

教师引导学生思考并回答短信验证码的共同特征,即“6位正整数”,其后组织学生以小组为单位设计算法。

方法1:每次生成1位随机正整数,重复6次,流程图如图2所示。

方法2:将该6位正整数看做是一个整体,生成1个在100000~999999范围内的6位随机正整数,流程图如图3所示。

3.短信验证码程序实现

“数字短信验证码”的方法1编程代码如图4,方法2编程代码如图5所示。

(二)字符验证码(随机数→字符)

1.程序背景

教师展示验证字符的截图,并简要介绍:“验证字符在页面的验证码输入框附近以图片的形式展示,此类验证码一般由4个字母与数字混合组成。”

教师布置任务:如何让计算机生成并显示4位数字、字母组合的字符?

2.化归为算法问题

教师阐释思路:让计算机随机产生4次随机数,每次选取的随机数要符合数字、字母对应ASCII码范围(48~122),并将其转化为ASCII码字符输出。

其中,字符“0~9”对应的ASCII码值为48~57;“A~Z”对应的ASCII码值为65~90;“a~z”对应的ASCII码值为97~122。

3.字符验证码程序实现

“验证字符”的最终程序界面如图6所示,VB编程代码如图7所示。

三、随机函数拓展探究

(一)图片验证码(随机数→图片)

为防抢票软件,铁路12306网站将验证码区域升级为选取图片模式。用户需要从给定的图片范围中选择符合要求的图片,点击“刷新”,可以随机更换图片,如图8所示。

教师布置任务:随机生成3张图片,点击刷新,随机更换图片。

(二)化归为算法问题

教师阐释思路:1.将程序界面划分为3个区域,每个区域叠放2张图片。2.设置范围1~2的随机函数,当抽到“1”时,显示图片1、3、5,隐藏图片2、4、6;当抽到“2”时,反之。3.点击“刷新”,切换图片。

(三)图片验证码程序实现

“图片验证码”最终程序界面如图9所示,VB编程代码如图10所示。

教学反思

本课例从生活的真实情境出发,以随机函数的使用为主轴线,融合“随机数→数字”(抢红包、数字验证码)、“随机数→字符”(字符验证码)、“随机数→图片”(图片验证码),让学生运用随机函数解决生活中的问题,锻炼了学生的知识应用能力。

学生体验感兴趣的新媒体应用,有助于提升学习积极性。如何把这份积极性进行有效发挥?就要由直观体验过渡到理性分析,让学生融合所学算法知识实现其功能,进而提升学生程序设计学习的“获得感”。

教师在本节课中提供了新媒体情境让学生理解知识、实现功能,与此同时学生要主动思考与实践所学知识的价值性与实践意义。所以,在课程探究环节,教师让学生带着线索(随机函数)去思考与实践,将课堂还给学生,充分体现了学生的主體地位。

猜你喜欢
小程序正整数字符
Python实现图片转字符画
最强大脑
正则表达式快速入门
图片轻松变身ASCⅡ艺术画
微信的“小程序”值得跟风吗?
超级微信的“小程序”
对一道IMO题的再研究
视频监视系统中字符叠加技术的应用
勾股数杂谈