信息的编程加工——解密抽奖系统
江苏省高邮第一中学 左仁梅 225600
一、解读课程标准
信息技术基础模块与九年义务教育阶段相衔接,是信息素养培养的基础,是学习后续选修模块的前提。计算机编程解决问题部分的内容,主要是要求学生对计算机程序解决问题的基本过程有所了解,这是与选修模块“算法与程序设计”基础内容相衔接的部分,所以它所依托的技术内容不宜过分提高,可以在初中经验的基础上注入一定的实用技巧,注重对方法的归纳和总结。
从活动建议来看,教学活动可以采用“解剖实例”、“代码编写”、“算法设计”、“问题解决”等不同的主线来组织教学。采用怎样的方法来教学,要根据学生的实际情况作选择。现在的高中生,大部分对程序代码并不熟悉,如果以代码为主线来教学,常常会使学生失去兴趣。高中信息技术课程要提高学生解决问题的能力,而程序设计的最终旨归是解决实际问题。因此,教学活动应关注程序设计的整个过程,解决一些实际问题,避免单纯的算法训练的做法。
二、教材与教学内容分析
科教版对应课程标准本部分内容是《信息的编程加工》,教学案例先后出现了两个:“100米决赛项目成绩排序程序”和“编程绘制函数图像”。通过实际教学实践和对课程标准的解读分析可知,学生在学习上述两个案例时会存在较大的困难。首先,学生对程序语言不熟悉,会在程序语言语法上有一定的学习阻力。其次,案例中的算法和数据结构复杂度较高,造成教学成本(时间和学习难度)升高。再次,学生对案例没有多大的兴趣。学生对于买彩票、抽奖等活动并不陌生,而且还表现出极大的兴趣,我便根据这个情况,设计了“解密抽奖系统”,通过剖析它来学习程序的编写。
本教学设计将希望运用新的教学案例解决学生学习程序语言困难、提高学习兴趣和高效地达成学习目标三方面问题。我们需要寻求一个适合高中学生认知水平、关注到全体学生的发展的教学案例,以更好地达成课程标准的教学目标。
本教学设计以“解密抽奖系统”为主线,以“分析问题——设计算法——编写程序——设计运行——检测保存”顺序进行教学,引导学生完成半成品的VB项目,制作抽奖系统,以帮助学生初步掌握直接使用计算机程序解决实际问题的基本方法。
三、教学目标
1.知识与技能
(1) 初识程序代码,初步了解程序执行的主要过程
(2) 感受利用计算机程序解决问题的独特魅力
2.过程与方法策略
(1) 自主学习、与同学协作学习贯穿于教学的各个环节
(2) 分析抽奖系统,认识抽奖深层次的意义
(3) 通过浏览教学资源来解决知识的不足,自我定位,完成相应要求
3.情感态度与价值观
(1)在尝试编程的过程中养成良好的编程习惯
(2)体验学习的乐趣,体验成功的乐趣,消除对程序的恐惧心理
教学重点、难点
1.了解程序算法的描述与设计
2.根据算法写出代码的过程
四、教学对象分析
我校约有2/3的学生是首次接触程序设计的内容,其他学校中首次学习程序设计的学生比例更高。计算机程序对学生充满神秘感的,容易吸引学生注意。但如果教学案例中不能有效激发学生求知欲和学习兴趣,只会让学生对编程和代码产生恐惧感,不利于学生后续的发展。
高中学生已经具备一定的抽象思维和较强的逻辑推理能力。但是,学生尚未形成算法的概念,如果直接以算法引入,会让学生失去对这部分内容的学习兴趣。算法的概念往往是在大量实践中形成的。
学生通过体验程序设计求解实际问题的过程,能够容易获得成就感,保持其主动学习的积极性。
五、教学策略
1.教学案例的设计策略
案例的选择和设计是顺利完成本部分教学内容的重要保障。因此,我事先设计一个完整的抽奖系统,但这个系统有漏洞。让学生亲自体验抽奖,提高他们的学习兴趣。当“他们的不容易中奖”与“我的容易中奖”比较时,激起他们刨根问底的好奇心,顺理成章地进入程序代码的环节。分析完后,让学生改进程序代码,让他们更进一步认识程序的真理,体验成功的喜悦。
2.教学重点的定位
教师在教学过程中切忌走入纯算法的讲授,要注意引导学生完成程序设计解决问题这个过程的体验。复杂的算法学习可以考虑在选修模块中完成。
3.教学资源运用的策略
为了解决学生对程序语言的学习障碍,教学设计中提供了半成品的VB项目,网络学习课程、网络视频等充足学习资源,确保学生能够顺利完成学习任务。
4.学生学习策略
学生可以通过网络课程的内容开展自主学习、探究学习。起点相对较低的学生可以依据教师课堂讲授内容以任务驱动的方式完成学习任务。
六、教学媒体选择
1.抽奖游戏
2.教学资源
3.多媒体网络机房
4.投影仪
5.PowerPoint课件
6.黑板
7.程序教学平台:Visual Basic 6.0
8.作业提交FTP服务器
七、教学过程
1.教学课时安排:1课时
2.教学流程图

3、详细教学过程
(一) 情境引入、激发情趣
前面大家学习了信息、信息的一般特征,及其获取信息的途径与方法,现在我们将学习如何通过编程来加工我们的信息,今天的话题是解密抽奖系统,同学们你们中过奖吗?
学生回答:没有
教师:今天我就给大家提供一个抽奖的机会
学生活动:
(二) 体验游戏、分析流程
问题一:中奖容易吗?
(让学生正确认识抽奖、彩票活动)
学生回答:不容易
教师:很不容易!可是现实生活中却有不少人想一夜暴富,成天沉迷于彩票、抽奖之中无法自拔。比如邯郸农行的任晓峰,就是太痴迷于彩票,盗取金库、侵吞国家财产。这种行为怎么样呢?
问题二:你们能描述一下这个游戏运行过程吗?
(学生分析程序的流程,与下面分析出来的买彩票过程作比较,得出程序设计方法来源于生活中解决问题的方法、思路)
学生讨论、描述:
教师:根据学生的描述在黑板上画出过程
问题三:现实生活中买彩票的过程又是怎样的呢?
学生讨论、描述:
教师:根据学生的描述在黑板上画出过程:

问题四:通过比较这两个过程,能得出什么结论?
学生讨论回答:很相似
教师进行小结:从这里我们可以认识到,计算机程序的运行过程,完全是在模仿我们现实生活中解决问题的方法和步骤。 所以,以后在进行程序设计时,我们就可以利用生活中解决问题的思路来设计我们的程序结构。
(三) 演示游戏、分析代码
问题一:它聪明吗?
(好让我演示游戏)
学生回答:聪明
教师:让我也来玩一下吧!(目的在于让学生看到我每一回都中奖,引起他们的兴趣!)单击链接对象,显示游戏界面,并进行抽奖。演示两次抽奖,两次都中。
学生的反应:有点不相信
问题二:你觉得这个游戏有什么玄机吗?
(激起学生探个究竟的好奇心,顺理成章地进行代码的分析)
学生讨论:有
教师:你们想看看这个玄机到底是怎么回事吗?
学生回答:想
教师:(演示)通过链接进入游戏设计界面。(这是这节课的重点,通过分析程序代码,让学生认识到程序代码是根据我们的设计思路写出来的语句,计算机之所以聪明,实际上只是在按我们的指令在一条一条地执行而已。消除学生对程序的恐惧心理,编程并不神秘,神秘的是我们解决问题的秘诀。)
说明:进入原程序界面后,简单介绍一下编写程序前需要进行界面设计、属性设置过程:
『界面设计』
首先我们要根据程序的要求设计窗体界面,界面的整齐、工整、美观与否,直接影响到使用者、用户的心情。
教师:你们知道添加控件的方法吗?(检查自己的知识水平,同时注意控件添加方法)
学生回答:不知道
方法:我们可以通过单击控件后在窗体中拖动的方法将控件添加到窗体。演示工具箱可以从工具栏中显示出来,添加一个按钮。
为什么这个按钮控件上面显示command4?(观察控件的名称,了解系统添加控件的特点)
学生回答:不知道
教师:名称是按添加的顺序自动产生的
『属性设置』
问题:前面的按钮控件上的文字是怎么修改的呢?(了解控件的属性可以通过属性窗口进行修改)
选中需要修改属性的控件,在属性窗口中进行修改属性值。
对于我们的标签、按钮,常常需要修改caption属性值
而对于文本框控件,我们则常常修改它的text属性值。
教师提示:大家可以访问教学网站学习这部分内容。
『编写代码』(根据分析的流程过程编写代码)
界面和属性设计好之后,就需要编写控件的事件代码。我们现在双击第一个按钮,打开代码窗口,为按钮编写事件代码。
〔“输入号码”部分代码编写〕
根据流程,首先需要做什么时候?输入号码。我们该如何获取输入的号码呢?在这里,用了五个赋值语句,分别保存我们输入在文本框1到文本框5中的数据。
X1=text1.text
X2=text2.text
X3=text3.text
X4=text4.text
X5=text5.text
接下来就是产生中奖号码,就是这一段落的代码:(教师用鼠标框选)
最后是比较号码,这一段落就是在比较:(教师用鼠标框选)
请问:程序玄机出现在这些环节中的哪一环节的可能性比较大?
学生回答:
〔“产生中奖”号码部分代码编写〕
教师:那我们就仔细分析产生号码这一部分,看是不是玄机所在!
IF英文是什么意思?(学生回答)如果
If后面紧跟的是一个条件
Then是什么意思?(学生回答)那么
请大家看一下条件(教师特意框选条件内容),猜一下是什么意思?
学生回答:
对,就是看你输入的5个数的和是否等于22,如果等于22,中奖号码会怎么产生呢?请继续看:
请大家看语句:
Text6.Text = Str(Trim(Int((10) * Rnd(1)))) '随机函数语句
在这里是用随机函数产生一个0~9的数值,为了让抽奖游戏更逼真,就让它产生1000个随机数,让第1000个数作为中奖号码,这里需要用一个循环语句。同学们,你们能很容易地猜中第1000次产生什么数值吗?
学生回答:
对,不容易。怎么老师就那么容易就猜中了呢?
学生回答:
请看这里:
If i = 1000 Then
Text6.Text = X1
End If
用了if语句,当i=1000时,就是当循环到1000次时,要求将我刚才输入的第一个数赋值给文本框6。所以,我根本不用猜,而是直接用我输入的数据作为中奖号码,以下也是这样,分别用我输入的第2、3、4、5个数,作为中奖号码的第2、3、4、5位,分别显示在中奖号码文本框中。所以,我就这样中奖了。
可以,大多数同学所输入的数值之和未达到22时,中奖号码又是如何产生的呢?
Else是什么意思?(学生回答):否则
意思是说,上面的条件不成立时,就依照下面的执行。这下面的语句,就是老老实实地产生1000个随机数,用第1000个随机数作为各自位置上的中奖号码,同学们,这容易吗?很不容易,所以,我们不能把我们的希望都寄托在抽奖、彩票之中,中奖几率非常渺茫。
〔“比较号码”部分代码编写〕
分析完了中奖号码是怎么产生的,我们就来看看如何比较的。
现实生活中,最后在比较是否中奖时,你是怎么做的?
学生回答:两个对比
我们这里也是这样(用鼠标框选条件)。请大家注意观察:它分别用输入的5个娄与对应位置上的文本框内容进行对比,只有对应的5对数均相同,才算中奖,这里用了and 关系运算符,意思是同时。
如果这些数值一一对应相等,那么:
在图片框1中加载图片展1,图片1是张笑脸,同时显示相应文字内容。
否则
在图片框1中加载图片2,图片2是张哭脸,并显示相应内容。
这就是按照我们的流程来编写的程序代码。同学们,理解了代码是怎么编写的了吗?
『调试程序』
在代码窗口中输入代码,调试程序、检查、修改、完善程序
『保存文件』
分别保存窗体文件和工程文件,并生成exe可执行文件
小结:从这里我们可以认识到,程序代码是根据我们设计的思路、选择某种合适的语言工具写出来的语句。计算机之所以这么聪明,实际上只是在按我们的指令一条一条地执行,实现人机对话的目的。编程并不神秘,神秘的是我们解决问题时所采用的方法、步骤。
(四) 制作游戏、体验乐趣
任务:请打开C盘中的文件“抽奖系统.frm”,根据自己的情况进行自我定位、通过自主学习与合作学习,完成以下任务:
(五) 总体评价、总结归纳
总体评价表
总结归纳: 这节课通过剖析抽奖系统,让我们体验了从算法的设计开始、经过程序界面的设计、属性的设置、代码的编写、程序的调试、最后到程序的保存及打包的全过程,了解了程序编写的内在机制,感受到程序编写的独特魅力。
生活中我们使用的许多软件,比如音乐、视频播放器,银行自动取款系统,实际上都是编写程序的产物,不需去了解代码是如何编写的,只在需要时运用就可以了。所以,“编程加工”是无处不在的。
国家“IT”业人力资源短缺,期待着在座的各位同学的加入,希望大家经过自己的努力,成为“IT”行业的精英。
教学反思:
编写程序是书中较难的章节,我以体验游戏、演示游戏、分析程序、尝试编写为主线完成了教学。在教学的几个环节中,学生在第一、第二环节表现出极大的兴趣,但进入第三个环节的时候,这种积极性有所减弱,这可能是学生对程序代码不认识、不熟悉、我讲的时间有点多而造成的。我只能用一种比较通俗易懂的方式给学生讲解程序代码,让他们大致能理解代码的结构和意思。在第三个环节中花的时间有点长,这时学生的注意力有些不集中。当让学生动手完成半成品时,他们的热情又高涨了起来。
这节课我没有讲太多的专业知识,更何况专业的东西不是一节课就能讲完的。从培养学生兴趣角度来看,我觉得还是比较满意的。课后认真看了学生的评价,我觉得比较欣慰。很多学生对程序编写产生了兴趣,知道了程序是怎么编写的,有可能会进一步学习程序。
我能顺利地完成这堂内容的教学,很想感谢李老师,好给了我很多的指导和帮助。我也要感谢我的同事,他们给了我很多好的建议。
参考文献
《信息技术教学研究与案例》 主编 李艺团组织 高等教育出版社
《信息技术基础》 教育科学出版社
《课改 新课型》 主编:郑金洲 教育科学出版社





