文 程佑寅
化虚为实 精讲精练 构建高效课堂
——以《VB中的循环语句》为例
文 程佑寅
若干年前,初中的VB章节是9年级的选修内容,各校的开展情况不尽相同。以我校为例,前几年在学生进入9年级之后因其他原因没有开展VB章节的教学,故相关的实践研究较少。但是2013年教材改编之后,VB章节变成教材的必修内容,并且从9年级教材提前到8年级教材的第11章,其重要意义不言而喻。如何在有限的教学时间内高效地传授编程思想,培养学生的VB程序设计能力就显得尤为重要。本文就以《VB中的循环语句》为案例,介绍了笔者在提高课堂效率方面的一些实践和反思。
1.教学内容分析
循环语句是初中VB课程中的重点和难点。本节课是循环语句的第一课时——计数循环,首要目标是让学生感受到循环语句的优势,让学生有意识地用循环语句去解决编程问题。循环语句的知识点比较多,教材的要求是能够读懂简单的循环程序、模仿编写循环程序,但是如果细讲则要先从循环语句的格式、过程、循环变量及其变化等知识点讲起,可讲的内容会很多难度也很大。所以要提炼出最重要的知识点,让学生在课堂上就能使用循环语句完成任务,看到学习成效。
2.学生情况分析
在之前的学习中,学生已经初步掌握VB程序的基本知识、逻辑判断语句等知识,能够熟练搭建VB程序界面和编写简单的VB小程序。但是我校学生中有很大一部分是来自民工子弟学校,小学阶段几乎没有系统地学习过信息技术课程,尤其是没有学习过Scratch,Logo等编程小软件,所以对于VB中的基础概念较难理解,编程思维相当薄弱。因此如何让学生理解循环的思想并且能够尝试编写出相应的程序以体现学习成效,让学生有兴趣有信心继续学习VB是本节课的目标。
3.教学目标
了解循环的思想;掌握For循环的基本知识(格式,循环变量,循环体等);初步掌握For循环的执行过程,了解循环变量的变化过程;注意For循环的使用注意事项,使用For循环完成简单的程序设计。
4.重点、难点分析
教学重点:循环的思想、For循环的基本知识(概念、格式等);
教学难点:For循环执行过程;使用For循环简单编程。
5.教学过程
(1)引入新课:折纸问题
假如一张纸厚度为0.06mm,面积足够大,将它对折1000次之后,厚度是多少?
分析:如果用程序来模拟对折效果,用h代表厚度,n代表对折次数,那么对折一次可以用以下程序表示:
从程序可知,h=h*2和n=n+1两句,每执行一次就代表将纸对折一次。如果要对折10000次,程序段该怎么写呢?
学生回答:写10000遍h=h*2和n=n+1就可以了。
教师:这样做确实能够实现最终的结果,但是很麻烦,我们可以简化这样重复执行的命令。
教师演示:
(2)新课讲授
【For循环的格式】
For <循环变量>=初值 To 终值 Step步长
<循环体>
Next 循环变量
教师讲解For循环格式的中每一个VB保留字的意义和作用,介绍什么是循环变量,再着重讲解For循环的使用注意点等等。
【课堂小练习】
观察刚才的For循环,分别回答下列问题:循环变量是( );初值是( ),终值是( ),步长是( );循环体是:( );若对折次数变成5000次,程序应该如何修改?( )
(3)课堂练习
打印1、2、3…20;打印1、3、5、7……99
在导入新课环节,学生的反应基本上达到了预设的效果,学生对运算结果很感兴趣,纷纷讨论这个数值是多大。并且想知道为什么这段程序可以实现快速得到结果,学生的学习积极性非常高涨。
当讲解到For循环的格式和使用注意点时,因为这段内容非常抽象,并且基本上是教师讲学生听的“独角戏”形式,学生刚开始还能安静听讲,但是随着新的概念和要点不断出现,不少学生逐渐跟不上思维,一些学生的面部表情越来越迷茫,不少学生已经开小差或者窃窃私语,课堂效果不佳。
最后的课堂练习环节,笔者虽然事先给学生准备了VB程序的“半成品”,但是大部分学生还是很难完成这两个练习,不少学生不会做就干脆放弃,或做与课堂无关的事情。这节课的课堂练习完成率非常低,学生的学习兴趣也严重受挫。
1.关于循环的思想,学生掌握起来特别困难。为此就要把抽象的循环程序展开让学生明白循环语句的实质,帮助学生消除神秘感。
可以让学生使用For循环来简化多条相同的语句体验循环语句的优势;再让学生把一个For循环展开成一般语句来让学生体验循环语句并没有改变程序的内容。通过这样“简化-展开”的操作让学生更加直观、具体地了解循环结构的作用和实质。
2.课堂练习环节中,第一题打印数列问题是For循环的简单应用,这里的循环变量控制循环体执行,也控制着数列每一项的值。对于刚刚学习For循环的学生而言,他们很难想到同一个循环变量会有两重作用,让他们完成这个任务难度太大,课堂达成率也很低。
所以在学生操作之前教师要帮助学生分析一下这个数列的特点,以填空题的形式让学生完成编程。同样,对于第二道数列打印题,教师可以通过几个问题来提示学生,然后由学生独立完成编写。
1.新课导入(略)
2.新课讲解
(1) For循环格式(略)
(2)新增练习
①使用For循环简化下列程序:
②将下列For循环结构展开,使用非循环语句表示:
(3)课堂小练习(略)
3.课堂练习
(1) 打印数列1、2、3……20
分析:这个数列的第一个数是( )?最后一个数是( )?每两个数之间相隔( )?
如果使用变量i来表示这个数列的每一项,用For循环结构来实现数列打印,那么这个For循环的初值是( )?终值是( )?步长是( )?
完善程序:
(2)打印数列1、3、5、7……99
提问:这个数列的初值是( )?终值是( )?步长是( )?
提问:观察数列的每一项有何规律?有没有其他的方法可以打印这个数列?
经过改进,同年级另一个平行班级学习起来就相对轻松许多,课堂任务的达成率也很不错,不少学生的学习积极性也很高涨。
不同的学生有着迥异的知识背景和学习习惯。对于在小学阶段接受过编程思维洗礼的学生而言,初中的VB内容只不过是将简单的数据结构和算法通过可视化的Basic语言表现出来,对他们而言掌握这部分知识相对比较容易。
但是对于类似于我们学校这样的普通学生居多或者信息素养更薄弱的学生而言,则需要更加直观的方法让学生形成对编程思维的感性认知。这就要求我们在进行教学设计时要“化虚为实”,把一些抽象的知识“实体化”,让学生在他们习惯的思维发展区中构建新的知识。
在完成课堂任务时,教师也要精讲精练,通过一些数量不多的设问辅之以言简意赅的提示来帮助学生梳理思路,既不能暴露答案也不能让学生死记硬背程序,这样学生会更乐于学习VB,我们的VB教学也会变得更高效。
作者信息
程佑寅,本科,中学一级。南京市玄武区孝陵卫初级中学,210014