启“探秘”之旅,历“解密”之程

2017-10-31 22:43金婧孙碧波
中国信息技术教育 2017年20期
关键词:控件探秘编程

金婧++孙碧波

● 内容分析

《体验可视化编程》一课选自教育科学出版社出版的《算法与程序设计》(选修)教材。本课内容是在必修模块“信息加工与表达”基础上的继续深入,有助于学生了解程序设計在解决问题过程中的地位和作用。根据课题分析,本课内容涉及两个部分,一是“体验编程过程”,主要是第一章第三节的内容,二是“可视化编程”,与第二章第一节的内容有关,主要是让学生了解可视化编程的过程,感受可视化编程的特点与魅力,而VB中的对象、属性、方法、事件和事件驱动等基本概念是本课重要的知识基础。学好本节内容,为第四章的学习奠定基础,有助于培养和提升学生利用VB等可视化编程工具解决问题的能力,促进他们计算思维的养成。

● 学情分析

教学对象是高二年级的学生。通过“信息技术基础”课程的学习,学生虽然已经有了比较好的应用软件使用基础,体验过用计算机解决问题,但没有真正接触过编程过程,并且计算机语言的编写基础较差。从认知发展来看,高中学生逻辑思维能力逐步趋于成熟,具有一定的演绎归纳能力和数学基础,这为计算思维的进一步发展创造了条件。

● 教学目标

知识与技能目标:熟悉VB集成开发环境;理解控件、对象、属性、事件及事件驱动等基本概念;能初步使用标签、按钮、文本框等基本控件;初步认识赋值语句。

过程与方法目标:通过设计界面理解“可视化”的含义;通过具体实例分析,进一步理解应用计算机解决问题的基本过程,并在使用VB实践中逐步梳理出可视化编程的一般步骤;能利用学案开展自主学习。

情感态度与价值观目标:培养分析处理问题的能力,在尝试设计编写小程序的过程中体验利用VB解决问题的乐趣,增强逻辑思维能力;形成对技术带来的道德与法律问题的理性的价值判断,进一步强化信息安全意识。

● 教学思路

1.内容重组

本节选题涉及两个章节的内容,前一部分是算法初步,后一部分是程序设计,二者之间亦是承上启下的关系。同时,高二学生虽完成了必修与网络技术应用选修模块的学习,但对“算法与程序设计”是第一次接触。如果教师机械地根据教材顺序,从算法开始到程序编写,不仅时间不够充足,也不容易引起学生的兴趣。所以,笔者尝试将“可视化编程”移到模块最前面,这样学生在学习初期就可以利用可视化编程动手解决一些小问题,初步具备可视化编程的能力。

2.“程序”优先

学习可视化编程,不是要将学生培养成“编程”高手,而是培养其编程思想,形成科学的思维方式。可视化编程的步骤中有“编写程序代码”环节,不可避免会涉及到算法的实现,走进使用指令编写程序的情境。因此,笔者让学生亲历“程序”本身,即可视化编程解决问题的过程,而“算法”(代码编写)应进行弱化处理。

● 教学过程

课前准备:在学生机上安装“改造”后的QQ。

1.登录QQ,激起疑惑

学生进入机房后,发现电脑桌面与以往有所不同,多了个QQ图标。好奇心与兴奋感驱使学生主动点击打开程序,当输入自己的QQ号与密码后,学生发现密码竟然显示出来,他们大呼“上当”(如下页图1、图2、图3)。

师:看来大家太不小心了,账号密码已经被盗了!

生:老师,这个程序怎么会知道我的密码呀?(学生疑惑,议论)

师:看来大家都很想知道这个程序背后的秘密呀。现在我们就开始探秘解密之旅!

设计意图:本课创设了一个真实的生活情境(从学生经常使用的QQ软件入手,制作了一个QQ模拟登录器“吸引”学生登录,从而完成“钓鱼”行动)。因为账号密码被盗是学生生活中常碰到的事,这立刻就引发了学生探究秘密的欲望,教师趁热打铁,引出本节课内容,从而顺利进入下面的教学环节。

2.认识“创作室”,建立概念

师:请大家回忆一下,刚才你们进行了什么操作,为什么会出现这样的结果?

生:在文本框内输入信息,然后点击“登录”按钮,出现新按钮点击后就出现了自己的账号、密码。

师:这些操作其实是人与计算机的互动。那计算机是如何对我们的行为做出反应的呢?我们就从秘密的发源地、编程的创作室——VB开始。

笔者打开VB,在“新建工程”对话框中选择“标准EXE”后单击“打开”按钮,进入集成开发环境一边演示,一边解释。(VB是一种可视化程序开发工具,提供各种控件。每种控件都有其自身的功能。例如,将“按钮控件”拖到窗体上,就生成了具有这个控件所有功能的具体对象。可以像搭积木一样利用各种控件构造应用程序的各种界面,然后再编写少量的代码就可以构建应用程序)

师:我们尝试在VB环境中制作一个简易的QQ登录程序。

设计意图:通过问题引发学生思考程序大致的工作流程:输入—处理—输出(反馈)。通过介绍VB环境使学生初步建立起“控件”“对象”“可视化”的概念。

3.设计界面,内化概念

笔者演示简易版QQ,输入账号、密码,单击“登录”按钮,在上方显示出当前账号的密码(如图4),启发学生抽象地表达需要本程序解决的问题:账号密码可手动输入、判断密码以及显示密码;再引导学生把问题分解、约简为不同部分:输入、获取密码以及输出。

师:要实现这些功能,我们需要哪些控件?

学生观察界面,分析程序界面有哪些对象,思考需要哪些控件。

教师根据学生的回答,总结归纳后展示,验证并肯定学生的想法。

(1)添加控件

学生根据学案提示,自主完成如下页图5所示的界面。

(2)设置对象属性

学生完成界面构造后,会发现它与演示界面有些不同,如Label1显示成“账号”、Command1显示为“登录”。

师:我们所看到的Label1、Commad1是对象的默认名,就像我们每个人有自己的姓名一样。而除了姓名,我们每个人之间还会有差异,如身高、年龄、胖瘦等,这些特征就是我们与旁人区别的特征。同样,在窗体中,具体的对象会表现出不同的特征,也就是属性。(提示:在单击界面某一对象时,请观察右侧属性窗口的变化)endprint

学生会发现每个对象都可以被选中,并在“属性”窗口显示其相关属性,找到对应的属性,将自己的属性预设值填入表格,并在此基础上,在VB环境中修改对象的属性值。

(3)保存文件

学生完成设置后,根据学案要求保存文件,会发现需要保存两次不同格式的文件,提出疑问。

教师抓住时机对学生操作进行广播,并强调工程与工程文件的关系,即一个工程(*.vbp)往往包含多个不同类型的文件,如窗体文件(*.frm)。

设计意图:①通过对界面的分析设计,引导学生经历分解、模块化的方法,培养学生在VB环境中进行问题解决的思维方式,以期达到计算思维的迁移。因为学生有使用软件的经验,所以教师对工程新建、控件添加未过多交代,而是将时间交给学生,让他们根据学案选择合适的控件,自主完成。学生通过实践,熟悉标签控件、文本框控件的功能,进一步理解控件与对象的关系。②引导学生观察不同类型的对象,强调“对象”和“属性”的概念以及它们之间的联系。同时,借助表格填写帮助学生整理形成条理性思路。学生只有充分理解“对象”“属性”以及它们之间的联系才能在后续的学习中更好地理解“事件”概念。

4.编写代码,破解秘密

师:界面已经搭建好了,大家可以运行测试一下程序。

学生单击“登录”按钮,界面上方沒有显示密码。

师:大家回到窗体,能找到问题所在吗?问题出在哪里?

生:界面好像没有什么问题,但感觉按钮不给力呀!

师:我们将问题分解成三部分——输入、获取密码以及输出显示,现在输入没问题,主要在显示获取密码,那密码显示是在什么操作之后出现的?

生:单击按钮之后出现。

师:看来是按钮没有听指挥呀,那我们一起探索按钮背后的秘密。(教师演示选中按钮对象双击打开“代码设计”窗口,在代码窗口可以看到三个部分——对象、事件和代码)事件就是发生在对象上的事情。例如,对登录按钮(Command1)对象进行单击,此时应该选择“Click”事件。单击以后要如何显示密码?大家可以试着改变Lable3的Caption属性。有一句咒语大家可以试一试:Label3.Caption=“你的密码为:”&Text2.Text。

学生添加代码并调试运行程序。

教师巡视,提示代码添加的位置,引用对象的名称以及工程的保存,出现共性问题时集中演示讲解。

设计意图:①教师预先设下“陷阱”,引导学生运行测试程序发现按钮无响应的问题,通过一连串的设问,启发学生回溯问题,理清思路,找到问题所在,分析什么对象被什么事件触发,从而引出对“事件”概念的讲解。这也是换一种方式强调对象、属性与事件的概念。②因为本节课的重点是编程过程的体验,所以要从最容易理解的“Click”事件以及简单的赋值语句让学生能读懂什么代码段执行了什么操作,体验程序设计的思想。在此过程中,教师并不着急解释代码的含义,而让学生先自主实践,在运行错误后强调对象引用的名称问题,让他们尝试修改代码完善程序。

5.拓展美化,尊重个性

学生尝试修改QQ窗体的其他属性,如背景、字体等,增加个性化,设计一个自己喜欢的界面。

设计意图:本环节留给学生自我创作的空间,既是巩固学生对“可视化”的理解,也是拓展延伸,让学生在实践中进一步熟悉对象的属性在VB中的含义。这一环节中突出了“优化”,让学生尝试从不同的角度思考问题、解决问题。

6.评价总结,提升意识

教师选择并展示1~2幅具有代表性的作品,邀请作者本人、其他同学一起从对象、属性等方面点评;由学生回忆整个操作过程,归纳总结可视化编程的一般过程:设计程序界面—编写程序代码—调试、运行程序;强化信息安全意识。笔者从两方面对学生进行引导:一是道德方面,可以让学生讨论这种想法或者行为是否符合社会规范,对自己以及他人的影响;二是技术方法,通过什么样的方法可以解密,通过什么样的方法才能保证自己的信息更加安全。

设计意图:注重评价交流,不仅可以培养学生的表达能力,还能够帮助其形成开放客观的态度。学生归纳操作流程,形成自主探究总结的能力。教师引导学生对此类钓鱼软件技术带来的道德与法律问题形成理性的价值判断。

● 教学反思

本节课笔者以“探究”为关键,未将内容刻意分解成明显的子任务,而是将其融入到可视化编程的过程之中。笔者从学生遇到账号密码被破解的实际问题出发,激发学生因惑而主动探究答案的欲望,帮助学生分析解决问题需要的步骤,设计出解决问题的“程序”,每一个步骤之间的衔接都是以上一个步骤中出现的小问题为突破口,让学生自己发现环环相扣的问题,使他们经历完整的编程过程,形成严谨的逻辑思维。

1.好奇心引导,直接激发学生兴趣

思维从惊讶开始,学生的创造活动来自对某件事情的兴趣和好奇心,正确地引导这种好奇心可以促进学生学习的发生。QQ在机房基本是被“禁用”的,但本节课反其道而行之。桌面上出现的QQ图标立刻“吸引”学生登录,殊不知这款改造的QQ登录器轻松完成钓鱼行动,成功破解了学生的账号密码。因为账号密码被盗是我们生活中常碰到的事,而学生的亲身经历立刻调动了他们的好奇心,“为什么?”“怎么破解?”……一连串的好奇心直接激起学生的兴趣。在这种情境下,教学顺利导入。

2.问题驱动,持续学生探究意识

好奇心激发了学生的兴趣,而如何让这种“激情”持续呢?人们常说“做学问”,可见学习与疑问不可分割,起始于问题,终结于问题。而“算法与程序”作为信息技术的一项重要学习内容,也是解决生活问题的一种路径。所以,要让学生浸润在“问题”情境之中,一方面,可以通过问题来进行学习,如在本节课中,从起初“使用什么样的方法解密”的大问题切入,使其成为学生学习的动力、起点和贯穿学习过程的主线;另一方面,可以通过学习来生成问题,如在本节课中,先进行程序界面的搭建,从而引入对象、属性,在完成界面设计之后又发现按钮无响应,继而过渡到代码编写中的事件等概念。每一步之间都是以学生遇到的问题为桥梁,学习过程则是发现问题、提出问题、分析问题和解决问题的过程。

3.过程体验,发展学生计算思维

“算法与程序”其实就是计算机解决问题的方式方法,是一种计算思维。由此可见,体验可视化编程,并非让学生成为编码与译码的熟练工,重要的是让他们从操作编程工具的应用步骤入手,体验数字化工具的运行原理,在这个过程中逐渐领会可视化编程的基本思想和方法。从起初的疑惑到界面设计时分析问题,再到程序完成测试成功的喜悦,学生经过一系列的质疑、判断、选择以及相应的分析、综合、概括等认知活动,这种多样化的思维方式和认识方式有助于他们分析问题、解决问题能力的提高,从而发展其计算思维,提高数字化生存与创新能力。endprint

猜你喜欢
控件探秘编程
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
玩游戏学编程,Blockly Games上手玩
纺织机上诞生的编程
编程屋完成数百元万天使轮融资
学编程,先画画
魔法洞大探秘
探秘浮力
探秘“纸船承重”
利用VF6.0的Timer控件实现动画效果