用户登录
用户名
密 码
新用户注册     找回密码
会员服务细则
会员申请表下载
会员通知
当前位置:首页 >>本刊导读 >> 2010.06>>详细内容
【信息技术课】用“框架填补法”上好程序设计课
点击:245 | 发布时间:2010-06-07

用“框架填补法”上好程序设计课

刘雅林

教育心理学研究表明,学生在接受新知识或接受新技能培训时,如果有正确的、积极的心理准备,其学习效率会高出被动接受的1~2倍。长期处于被动接受的状态,学生还会产生压抑、厌倦、对抗、恐惧等情绪,严重影响学习效果。中学生在编程语言学习过程中普遍表现出“厌学”、“被动学”等现象,其原因主要是目前的教学模式不符合学生的心智发展特点,按部就班地从烦琐且暂时无法应用的基本理论学起,让学生产生了抗拒心理,并且由于学习的知识点比较散,学生难以将其系统化,等到实际编程时,早已忘记了前面学过的知识。
可见,要让学生学好编程,必须解决好几个关键问题:培养学习编程的兴趣、创造学好编程的情境、变“教师灌”为“学生学”、改变现有的知识结构,创造新的目标框架。
一、框架填补法
支架式教学的特点非常适合中学程序设计教学。它要求教师为学生的学习搭建一种概念框架,框架中的概念是为促进学生对问题的进一步理解所需要的。
框架填补法正是在支架式教学理念的指导下,针对中学程序设计课的特点而设计的。使用该方法,教师需要搭建框架,找到学生的“邻近发展区”,营造编程学习情境,让学生先从整体上把握程序的框架结构,再细化流程图,最终将自然语言转化为计算机语言,轻松达到教学目标。
二、与传统教学法的对比
传统的编程教学“先细后粗”,总是从复杂的语法格式开始学起,容易让学生一开始就陷入复杂的语法规则中,且不知道学习这些知识有何用处、如何使用。不少学生直到学习顺序、分支、循环时,才真正明白什么是程序,才明白之前所学内容的意义与价值,但他们早在开始编程之前就已经丧失信心了。框架填补法则是“先粗后细”,先让学生从整体上对编写程序有个全局性认识,再细化框架,同时融入具体的语法规则。随着教学的进行,框架就被逐步填补成一个完整的程序了。这是一个让程序的思想逐步实现为具体程序的过程。
对于程序设计,不同的中学教材选择了不同的高级语言,如VB、C、Pascal等。笔者在本文选择以Pascal语言的教学为例进行对比分析。
1.传统教学法的教学安排
按照教学大纲的要求,程序设计课有14课时,学习的内容为:计算机语言的分类(1课时)、Pascal语言的编辑界面(1课时)、Pascal语言的基本符号(1课时)、Pascal语言的程序格式(1课时)、标准函数和表达式(1课时)、输入、输出语句(1课时)、顺序程序设计(2课时)、条件语句(2课时)、分支程序设计(2课时)、过程和函数(2课时)。
按照这种教学安排,笔者对本校校本部的学生进行了教学。第一节课,讲解计算机语言的分类,由于介绍了大量的新东西,学生学得比较轻松,学习积极性也较高。第二节课,学生就开始觉得内容空洞了。因为他们还不知道什么是程序,就要进入编程界面去熟悉各种操作。到第三节课,就有人不听课了,也有学生反映内容枯燥,像在背英语单词。从第四节课开始,学生失去了原来学习时的满腔热情,不仅听得吃力,还不知道记下那么多标准函数做什么用,在被动地接受东西了。到了第七节课前后,已经有约50%的学生跟不上教师的进度,具体表现是,上机不能编写程序,上课听不懂。到了后半段,近60%的学生完全听不懂教师讲的内容,约20%的学生虽能听懂大部分,但不能编写程序。只有约20%的学生能跟上教师的进度,在教师的帮助下能正确调试出程序。
2.框架填补法的具体实现 
校本部程序设计教学的效果很不理想。笔者发现,不少校本部的学生在学完程序设计课后连什么是程序都不知道。由此意识到,如果教师过多地关注编程规则,一开始就让学生记忆很多符号和保留字,会造成学生在编写程序时无法从整体上把握思路,陷入具体的语法中。于是,在分校的教学中,笔者从生活中的实例出发,依次讲什么是程序、程序设计的思路是怎样的、如何画流程图、如何将流程图细化、如何将自然语言转换成Pascal语言。教学内容及课时安排如下:
◆ 什么是计算机语言、计算机语言的分类(1课时)。
与传统教学法无异。
◆ 什么是程序(1课时)。
以生活中的事件为例,让学生明白程序其实很简单。如早晨起床的程序为:从床上醒来→穿衣→洗漱→吃早餐→收拾书包上学。有学生说第2、3、4步可以交换顺序,笔者立即告诉学生编写程序时哪些步骤可以交换,哪些不能交换,学生记忆深刻。

◆ 用流程图表示程序(2课时)。
将顺序、分支以及循环三大章节的内容放在一起讲解。经过这两个课时,80%左右的学生都能用流程图表示教材的课后练习题。
◆ 细化流程图(2课时)。
这一步很重要。主要让学生将粗略流程图中的每一步细化,以适合程序设计的习惯。比如,“找出两个数中的最大数”就应该这样细化:
给变量A读入一个数
给变量B读入一个数
比较A、B的大小,取最大数
将最大数存入变量C中
◆ 将细化后的流程图转化为程序(6课时)。
这一步的工作量最大,主要是将自然语言转化为计算机语言。比如“给变量A读入一个数5”就转化为“A:=5”。在这个程序的基础上,再将保留字、标准函数、输入输出语句教给学生,就会出奇地顺利,大部分学生可以借助教材进行语言转换了。这个过程中,教材只作为查找语法及函数的资料。笔者当场在黑板上布置了一道作业题,大约70%的学生能够正确完成,其他学生也或多或少地完成了部分,没有不动笔的学生。而同一道题,笔者在校本部测试的结果是,仅约30%的学生能写出程序。更关键的是,分校的学生一直都没觉得学习编程是件难事儿。
◆ 上机调试程序(1课时)。
其实在上一步中就已经穿插进了这一步。学生只需记住几个常用的操作步骤,就可以完成程序的编译。
◆ 扩展知识的讲解(1课时)。
到最后一节课时,校本部的学生早被编程“折磨”得痛苦不堪了,根本不敢扩展。分校的学生则不同,他们还有接受更高一级知识的能力。笔者从结构化程序讲到面向对象的程序设计,从Pascal讲到VC,从J2EE讲到.NET,让他们明白这些编程工具只在语法上有些许差异,关键是掌握编程的整体思想。
3.两种方法的效果对比
两种不同教学方法的效果对比见表1。
表1 效果对比表

      传统教学法        框架填补法
学习兴趣 逐渐减弱,最后几乎没有 稍有减少,大部分学生一直
 兴趣 保持浓厚的兴趣
基本语法的掌 学完即忘,翻开书也不知 借助书本查找其用途
握程度 道是什么意思 
编写程序的能力 20%的学生能完成 65%的学生能完成
调试程序的能力 差 较强

4.框架填补法的应用扩大研究
进行了上述对比实验后,笔者又在校本部对当年高一学生分组开展了为期两年的进一步研究。第一年:1~7班为A组,采用框架填补法;8~13班为B组,采用传统教学法。第二年:结合第一年的经验,笔者对框架填补法作了些改进,使其更加突出知识的整体性、系统性以及“框架”的骨干作用和“填补”的细化作用。在“程序设计”一章结束后,笔者从非计算机专业计算机等级考试试题中选取了难度适中的部分试题,对学生进行了单元测试。学生成绩的“t检验”结果见表2。
表2 第一年高一年级考试成绩t检验统计表

分组 人数 平均分 标准差  t    p
 A 362 80.667 9.535 4.857 P<0.01
 B 312 68.5 9.867 

经t检验,p<0.01,成绩差异是相当显著的。
2003年,笔者再次将框架填补法应用于当年的高一学生,4~10班为A组,11~17班为B组,考试成绩仍然是采用框架填补法的A组遥遥领先。其“t检验”结果见表3。
表3 第二年高一年级考试成绩t检验统计表

分组 人数 平均分 标准差  t   p
 A 366 81.374 9.473 4.568 P<0.01
 B 365 70.113 9.625 

在教学过程中,笔者还发现实验班的学生往往会主动问问题,在教师的引导下,会尽量自己编写好程序,学习的主体性体现得比较突出。对比班的学生则几乎从不提问,因为他们提不出问题。
三、思考
可能有人会问,如何处理教材呢?笔者在应用框架填补法教学时很少用到教材,也没有刻意去区分顺序、分支、循环之间的差别,而是先给学生建立一个编写程序的“思想”,再让这个“思想”逐步成为具体的程序。学生在编写程序的过程中,先是明确问题,再带着问题去查教材,找到相应的语法规则,进行相互讨论,最终以多种形式编写好程序。
以上尝试和探索的成功,除了这种具体的教学方法外,还有以下关键要素:一是敢于打破教材的束缚,寻找最适合学生认知特点的教学方法。二是教学内容体系合理安排,能让学生系统地、连贯地学习知识,有利于学生循序渐进地学习。三是在某些知识点的教学上,应该让学生先从整体上把握全局,再具体到每个知识点。四是让学生对所学的知识保持永恒的兴趣,学习效率会大增。

(作者单位:重庆第八中学)


联系地址:北京市宣武区白广路18号北楼216室  邮政编码:100053
编辑部电话:(010)83555319/83555283 经营部电话:(010)83555283、83552126
国际标准刊号:ISSN1671-7384 国内统一刊号:CN11-4860/G4 国内发行:北京市报刊发行局 邮发代号:2-103
国外发行:中国国际图书贸易总公司(北京399信箱) 国外代号:M3069 广告许可证号:京宣工商广字0075号
Cpyright © 2002-2008 中小学信息技术教育杂志社 Powered by comcon.cn
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .