APP下载

《信息的编程加工》教学设计

2020-04-27杨兆华

中国信息技术教育 2020年8期
关键词:代码编程算法

杨兆华

教材分析

本节课所学的内容是教育科学出版社《信息技术基础》第三章第二节,本节内容比较简洁,是对上一节内容的承接,主要是通过对整个程序设计过程的体验让学生了解用计算机进行信息编程加工的内在机制,知道利用计算机解决问题的方法。

学情分析

高一学生具有一定的逻辑思维和概括能力,参与实践活动意识强烈,喜欢探求新知识,但程序设计接触得不多,算法是其较难理解和掌握的内容,尤其是对普通高中学生来说,其学业负担较重,用计算机来分析、解决问题的能力几乎为零,所以要注重循序渐进,绝不能一蹴而就。本节课在学生已有的计算机知识基础上给他们讲解程序设计中的算法以及简单的VB编程,以激发他们的兴趣,不宜深入。有些学生将选修《算法与程序设计》,那时将继续深入学习这方面的内容,因此在这里只向学生简单介绍编程,让其感受编程的魅力。

教学目标

1.培养学生的信息意识,从生活中的事例(病毒复制数量问题)入手,引导学生根据解决问题的需要,寻求恰当的方式处理信息。

2.培养学生的计算思维,通过病毒复制数量问题,在分析、解决问题的过程中产生思维活动,形成解决问题的方案,并能迁移到与之相关的其他问题解决中。

3.通过一些疫情与编程的案例的学习(隔离的必要性),培养学生的数字化学习与创新意识,助力网络环境下学习能力的提高。

教学重点与难点

教学重点:体验通过编程实现计算机加工信息的整个过程,知道利用计算机解决问题的步骤和基本思想方法,从而了解计算机信息编程加工的内在机制。

教学难点:对算法设计的理解及程序代码的初步认识。

教学策略

本节课以“病毒在第N个复制周期时的数量计算”为主线,设计了“情境导入→提出问题1,分析设计算法→编程实现,调试运行→拓展问题2、问题3,分析修改程序,调试运行→教师小结,布置作业”等环节,通过新知探究,将实践体验、课堂演示、合作探究等多种教法相结合,使学生掌握信息编程加工的整个过程。本节课的设计重在使学生对信息的编程加工有一个清晰系统的认识,学生能够真正理解信息编程加工的全过程。

教学过程

1.情境导入

教师播放短视频“程序员用计算机仿真程序告诉我们,疫情不控制将会快速传播……”,展示小动画程序“建立隔离区,控制人员流动”——疫情很快会被控制,甚至被消灭。

师:同学们好,新冠病毒肆虐神州大地,为了避免疫情的蔓延,我们都在家里进行自我隔离,疫情影响着我们的生活和学习节奏,对我们的学习和能力的培养提出了新的挑战。从视频中我们就能看到程序员们利用算法编写仿真程序告诉我们疫情期间隔离与不隔离的区别,大家肯定有疑问:这些程序到底是怎么编写出来的?

设计意图:程序员们通过他们的专业特长,对信息进行编程加工,为疫情的防控做出了贡献。通过生活中的热点事件,激发学生的好奇心与积极性,引出算法的概念(课件展示介绍算法,并强调算法在生活中的重要性)。

2.任务1:分析问题,设计算法

教师提出问题1:某病毒传染性很强,它可以自行复制,在活体中的复制呈现高速递增趋势。假如现在有x个病毒,复制能力为2,下一个复制周期将会增加2x个一模一样的病毒。你作为实验分析检验员,需要统计出在复制到第N个周期时,一共有多少个病毒单体。活体被传染时只有一个病毒,这算作第一个周期。

教师给学生时间思考问题。

师:N=1时有多少个病毒活体?

生:第1个周期,刚传染,只有1个病毒活体。

师:N=2时有多少个病毒活体?

生:第2个周期,有1个病毒复制的2个活体+原来的1个病毒。

师:N=3、4、5、6……?

师生共同小结,得出通项公式:N不等于1时,S(N)=S(N-1)+S(N-1)*2。

根据小结得出算法描述、算法流程图(课件展示类比,穿插讲述流程图中的图形符号),引导学生发現用流程图表示可以使算法更加直观、准确。

设计意图:提出问题,确定要解决的问题,做出需求分析,就是要明确设计解决问题的算法,再通过本节课后续编写程序来实现,将解决问题的过程用计算机语言表述出来,从而赋予计算机解决问题的能力。

3.任务2:编程实现,调试运行

教师课件展示介绍什么是计算机编程语言,指出本节课主要学习的语言——Visual Basic 6.0。

教师演示如何打开Visual Basic 6.0,建立标准EXE文件,用类比常用软件的方法介绍VB 6.0的界面,消除学生对软件的陌生感,启发学生用已有的知识来学习新的知识,介绍窗体、控件以及控件部分属性如Command button控件(执行命令的控件)属性caption(名称)。

教师演示程序后设计界面并输入代码,界面很简单,就是添加一个按钮,改属性caption为“计算”;双击“计算”按钮,进入到编辑代码对话框,因为本节课主要是体验程序,所以通过课件展示代码,学生只需要输入就可以了;教师操作演示为“计算”添加代码;代码完成后,点击“启动”“运行”,如果有错误,则根据提示修改代码来解决;调试运行成功后,要保存自己的作品,讲解如何生成可执行的EXE文件——选择“文件”菜单中的“生成工程文件.EXE”。

学生合作学习,根据演示模仿完成在程序的窗体中添加命令按钮,录入按钮代码,这部分内容学生很陌生,所以主要是以模仿体验为主,让学生分组体验程序的魅力。这部分是本节课的重点,由于学生的基础不一样,采取临桌分组体验、小组互助的方式,争取每位学生都能有所收获。学生完成编写后尝试调试运行,在运行过程中,遇到问题,学生可以讨论、主动思考,尝试理解并对有错误的地方进行修改,也可以小组互助,求助教师。

教师在大部分学生都体验完成之后,展示一两位学生的完成情况,然后提出问题:“大家根据代码解决了问题,那么每一行的代码是什么意思呢?”

教师带领学生一起来观察这些代码(如下页图1),主要以理解为主。

通过对For……Next语句的讲解,使学生认识到用N周期病毒的复制、循环的累加計算,得出病毒数量越来越庞大,病毒的复制能力很可怕,一定要做好防护。

设计意图:介绍计算机编程语言,在本过程中要强调编程语言有很多种,可以通过不同的语言来实现(避免学生建立“编程加工就是学习VB的片面观念”),接着再选择VB介绍并引导学生亲身体验将设计的算法转换成计算机能够识别的代码,学习掌握怎么用编程代码来将算法程序化,理解计算机解决问题的过程,体验信息编程加工的魅力。

4.任务3:拓展探究,提高创新

学生的层次不一,对于还未完成问题1的编程加工的学生,教师及小组给予指导帮助;对于学有余力的小组和学生,应创设挑战问题,并鼓励他们完成。

拓展问题2:某地区暴发的流感病毒在人体细胞内一个小时可以复制出300多万个病毒,如何验证结果?(15分钟一个周期,一周期复制150个病毒粒子)程序怎么修改?

师:任务1中的问题,病毒一个周期复制2个,现在呢?需要修改哪个地方?

生:一个周期复制150个,把a=S*2修改成a=S*150。

师:任务1中的问题,周期是任意的N,不固定,而现在呢?怎么去验证一个小时300多万个病毒活体?

生:15分钟一个周期,一个小时就是4个周期,调试运行,输入4……

拓展问题3:某新型冠状病毒在人体细胞内一个小时可以复制出多少个病毒?(10分钟一个周期,一周期复制20个病毒粒子)程序怎么修改?

师:由于不同病毒复制周期、病毒复制粒子可能不一样,如何修改程序能够使用户可以不受程序代码的束缚,可以输入病毒的复制周期、复制粒子,就能得出结果呢?[提示将病毒复制粒子参照病毒的复制周期的代码进行修改(如图2),这对首次接触信息的编程加工的学生有一定的难度,所以在这里是师生一起分析并得出具体的添加部分]

学生根据提示去修改代码,调试运行,验证得出结果,提高认识,理解程序经过修改后,会变得具有通用性,不受代码的束缚。

教师巡视,给学生做个别指导,适时展示学生完成的作品并解释修改部分。

设计意图:在大部分学生已经理解代码的基础上,安排两个有递进梯度的拓展问题,通过实践可以引导学生加深对代码的进一步理解,还可以让学生体验如何使程序具有通用性,即使不懂编程的用户也可以直接运行使用。当然,这肯定需要教师从旁引导,帮助他们分析问题、设计算法、体验编程并解决问题。用上述两个拓展问题也有另一个作用,即引导学生认识传染性病毒的复制有多么可怕,一个人一旦被传染后所携带的病毒数量是多么的庞大,可以对比来看(正常感冒时打一个喷嚏喷出的病菌可高达8500万个),引导学生要加强自身锻炼,提高自身免疫能力,加强自我保护。

5.小结并布置课后作业

师:通过今天的操作,我们对信息的编程加工有了一定的体验和认识,请大家根据自己的实际操作来总结一下信息编程加工的一般过程。我们这节课主要是通过针对问题1进行分析,得出解决问题的通项公式,然后确立算法,编写与调试程序,最后解决问题。这是一个综合运用知识的过程,需要我们认真细致地去体验完成,这是我们本节课的重点。程序代码的理解及拓展问题的解决,也需要多思考、多实践。

教师总结:今天我们初步认识了算法和程序代码,初步了解了信息编程加工的一般步骤,感受了利用计算机编程解决问题的独特魅力。其实,在使用计算机进行信息加工时,“编程加工”是无处不在的,例如,我们面前的计算机的操作系统以及计算机里面的应用软件的功能都是由编程实现的。随着社会的发展与进步,目前,计算机的运算速度已经从最初的每秒五千次提高到了几十万亿次,计算机程序设计语言也从最初晦涩难懂的机器语言发展到比较接近自然语言的高级语言,人们也开始探讨自动化程序设计,所有这些都极大地促进了信息编程加工的应用与发展。相信通过今天以及今后进一步的学习,有的同学会对信息的编程加工产生浓厚的兴趣,并成为未来的“IT精英”,用程序编制自己的梦想,用程序绘制缤纷的世界。

教师布置课后作业。

教学反思

本节课在教学过程中,从学生的认知特点和实际能力出发,从身边事例——疫情与编程开始,引出算法,并说明算法的重要性;接着通过问题1的需求分析,分析算法,体验算法,进而通过认识代码、体验代码、理解代码、修改代码的循序渐进的过程,使学生在实践中体会信息编程加工的一般步骤。本节课的教学比较成功的地方有以下几点:第一,以学生为本、教师为辅,充分发挥学生的学习自主性。第二,通过学生身边事例体验算法,激发了学生学习的积极性与探索性。第三,在学生熟悉了算法及程序代码的基础上,引导学生去解决拓展问题2、问题3,使问题难度降低,从而让学生容易接受知识。第四,通过学生认识代码—体验代码—理解代码—修改代码的过程,让学生感觉自己好像在同计算机对话,同时也使学生感受到用编程解决问题的高效与乐趣。

点  评

本节课结合当前新冠疫情拉开序幕,全社会都在关注疫情,防治疫情扩散是当前最主要的任务。如果不加以控制会产生什么后果?扩散情况如何?这些问题的提出快速激发了学生的兴趣。本节课以“‘建立隔离区,控制人员流动——疫情很快会被控制,甚至被消灭”这一主题引发学生兴趣,促发学生各种讨论,推动课程内容一步步深入。从本质上来看本节课是老课程向“新课改教学”转变的一个方向,是走向项目教学的一个思路体现。

本节课以一个简单实例,让学生从简单的病毒复制入手,去讨论,去思考,形成数学思维流程,解决问题,形成基本构架。通过数学模型进一步形成问题流程图,再到形成正确算法,有利于学生思维建构,形成高阶思维,引发学生进一步讨论如何去实现这个算法。算法是程序设计的基石,是正确编程的第一步,通过算法逐步引出本节课的编程语言VB,以案例为导向,让学生掌握VB基础知识与命令,让数学模型支撑算法,流程图与编程思路形成合力,最终由VB语言形成本案例,让学生充分体验程序设计带来的“大思维”,并对其产生深厚的兴趣。疫情防控是全社会的一件大事,如果不加以控制会产生严重的后果(如某地区暴发的流感病毒在人体细胞内一个小时可以复制出300多万个病毒),学生的思维因此再次被激发,引发再探究、再实践,让学生自我梳理思路、形成算法,通过小组讨论是否合理,形成最佳算法。学生在尝试中遇到程序出错,引出更多的讨论,经历分析问题—算法设计—编写代码—测试—排错的基本流程,加深了对程序设计思想的理解,进一步培养了计算思维。

本节课充分发挥了学生的主体性,体现了学科核心素养,让高阶思维真正发生。江苏省将于2020年下半年步入新课改,新课程的开展需要我们信息技术教师进一步学习并做好相关的准备工作。新课改思维的引入、项目教学的融入,需要我们信息技术教师进一步去探索、去实践,在教学过程中需要教师更为专业的编程能力及教学方法,从而实现立德树人的育人目标。

(点评人:江苏省苏州市吴江区教育局教研室信息技术教研员 顾建荣)

猜你喜欢

代码编程算法
玩游戏学编程,Blockly Games上手玩
纺织机上诞生的编程
Travellng thg World Full—time for Rree
编程屋完成数百元万天使轮融资
学编程,先画画
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
神秘的代码
一周机构净增(减)仓股前20名