分层任务驱动模式下的程序设计教学探索
2015-05-30沈晓庆
沈晓庆
[摘 要]从课堂教学出发,对分层任务驱动模式下的高中信息技术程序设计教学进行实践探索,通过分层任务驱动等教学手段,将课堂时间还给学生。以《FOR循环语句》一课为例,突出了教师为主导,学生为主体的教学思想,实践了课堂任务层层递进的分层任务驱动教学模式。
[关键词]分层任务驱动 教学探索 课堂实录
[中图分类号] G633.67 [文献标识码] A [文章编号] 16746058(2015)230121
一、分层任务驱动教学模式概述与实施
“任务驱动教学法”是以学生为教学主体,以自主学习为基础,以教师讲授为辅助,在教师指导下完成一系列学习课程任务,进而培养学生分析、解决问题能力的一种教学模式。“分层教学法”是一种在教学过程中对于学习能力不同的学生进行不同教学安排的教学模式,它采用不同阶段不完全同步的学习进度,促进学生间的合作和经验交流,取得更好的教学效果。将“任务驱动教学法”和“分层教学法”进行有效整合的教学模式,称为“分层任务驱动教学模式”。
在分层任务驱动教学中,教师要分层设计好每一个任务,一般分为以下四层。
第一,
把教学内容的基本部分设计成第一层次的教学任务,即“基本任务”。
学生只有理解、掌握基础内容,才能对所学内容的其他剩余部分有基本认识,这部分最基本的内容被称为“敲门砖”。所以教师应引导学生完成基本任务。
第二,在完成基本任务后,开始进入第二层次的学习,即完成“选拔性任务”。教师提出部分任务要求,留给学生自由发挥的空间。例如,发送电子邮件,可以设计一个“给校长发E-mail提建议”的任务,这个任务要求是明确的,而邮件的内容可以自由发挥。
第三,在整体把握课堂内容的基础上进行第三层次的学习,即完成“开放性任务”。教师指定一些基本的规则,学习的形式和内容由学生自己组织。比如:文字排版的练习,可以让学生结合其他学科,进行作文写作或者试卷的排版等。
第四,对教学难点或者教学重点设计第四层任务以帮助学生解惑和巩固知识,这类任务需要教师给予指导和点拨。
二、教学实录
教师:同学们,结合前面学过的顺序结构和分支结构的知识,请大家思考一下,怎样在VB窗体上打印出10行“空谈误国,实干兴邦”语句?
图1 图2
学生:(思考)应用顺序结构可以逐个打印输出,如图1。
教师:如果我们需要打印100行或者更多,用顺序结构逐个输出是否太繁琐了?有没有别的方法可以更加简单有效地解决这个问题呢?在实际应用中,我们经常会遇到这类操作并不复杂,但需要反复多次处理的问题,在这种情况下,我们可以选择循环程序来解决。故上例可用循环程序来解决,如图2所示。
学生:(讨论)比较两种处理方式的优劣。得出:循环程序代码短、运行速度快……
教师:循环程序能更加有效地处理重复性操作,代码相对顺序结构更加简短、灵活,运行效率高,可以大大简短程序员的重复劳动。
教师:分析For语句的基本结构以及工作原理。
图3 For语句的基本结构
1.循环变量取初值;
2.循环变量与终值比较,没有超过终值转3,否则循环结束;
3.执行一次循环体;
4.循环变量增加一个增量;
5.重复步骤2-4。
【任务一】课堂探究:请同学们阅读下面的代码,完成表格填空并上机调试。
Private Sub Command1_Click()
Cls
For i=500 To 2500 Step500
Form1.Circle(Width/2,Height/2),i,RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))
Next i
End Sub
代码执行完毕,i的值是 ;循环体被执行了 次。
上机调试:更改变量i的取值范围356-6456,步长11,查看效果。
For i=356 To 6456 Step11
Form1.Circle(Width/2,Height/2),i,RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))
Next i
End Sub
图4
教师:图4中总共有多少个圆?
学生:数不清楚,太多了……
教师:这种情况下我们可以根据循环体总共循环了多少次来计算出有多少个圆,计算循环体的公式如下,请大家计算一下。
循环次数=int((终值-初值)/步长)+1。
学生:共有555个。
教师:前面我们涉及的例子中,初值<终值,有没有可能“初值>终值”呢?请看下面两种情况,它们的输出结果是否一样?
学生:一样。
教师:对于循环变量、初值和终值的关系我们可以这样理解:
当步长为正,初值<终值,循环变量的值>终值时,停止循环;
当步长为负,初值>终值,循环变量的值<终值时,停止循环。
【任务二】课堂探究:
求10以内的奇数和。
请同学们完成填空并上机验证。
Private Sub command1_Click()
Dim s As Integer,i As Integer
s=0
For i= To Step
s=s+i
Next i
Print"10以内奇数和="&s
End Sub
学生:(思考讨论)
①上例中当输出奇数和时,i的值是多少?
②如果省略Step2,程序的结果如何?
③For语句能不能改写成For i=10 To 1 Step-2?
【任务三】课堂探究:画出如下代码运行的结果,上机调试:修改上述代码,尝试一下能不能输出其他图形。
Private Sub Command1_Click()
For i=1 To 4
For j=1 To i
Print"A"
Next j
Next i
End Sub
三、教学思考与感悟
本课的主要任务是让学生理解并掌握FOR循环语句,而不是其他算法,所以笔者在进行教学设计的时候主动忽略了诸如“水仙花数”等例子。学习程序设计需要较强的逻辑思维能力,较扎实的数学功底。学生的数学基础参差不齐,有的学生数学基础较薄弱,课堂上引用的例子难度稍高就会力不从心。鉴于此,笔者采用的几个例子都是在数学中比较简单的,且有代表性的基础题目,低难度,易理解。
“任务一”中,循环体For i=500 To 2500 Step 500,省去了复杂数值计算的步骤,让学生能够在较短的时间内直接通过口算得出结果。课堂初始出示简单的例子让学生渐渐消除对程序设计的紧张感。随后将循环体变为“For i=356 To 6456 Step11”,让学生上机调试,当学生运行代码后会对产生的图像结果产生强烈的兴趣,进一步消除学生对程序设计的抵触心理。随后引出计算循环体次数的公式,再通过循环变量初值与终值的变换,引出循环变量、初值和终值的关系,教学效果很好。
“任务二”通过10以内的奇数和计算,巩固学生之前学过的知识,要求学生能够写出判断奇偶数的条件语句,复习了此前条件语句的内容。通过思考,让学生判断“如果条件更改后会是什么结果”,这样对加强学生理解和掌握循环语句至关重要。
“任务三”是让学生阅读代码,判断代码得出的是何种图形。首先培养学生阅读代码的能力;其次学习了在双重循环中,循环体嵌套运行的规律;最后在得出结果后,布置了一个“开放性任务”:修改代码上机调试,尝试一下能不能输出其他形状。学生改代码得出的结果可能是各种各样的,只要让学生理解图形是如何得出的,即理解自己改动的代码即可。
在教学中,由于程序设计较严谨,且逻辑性较强,教师往往讲解时间过长而不自知,因此要尽量避免教师的枯燥讲解,把时间还给学生,让学生在合作与交流中,自觉参与课堂讨论,自主构建知识结构,体验成功的喜悦。
(责任编辑 黄春香)