APP下载

知识链 链出智慧和能力

2009-05-13高建君

中小学信息技术教育 2009年12期
关键词:解决问题程序结构

高建君

程序设计是信息技术课程中知识性、逻辑性很强的一个教学模块,十分有利于培养学生的高级思维能力。在学习过程中,随着新语句、新算法的不断引入,学生解决问题的思路越来越开阔,思维越来越灵活,程序设计的能力也会不断提升。

在教学中,有些教师会困惑于这样一种现象:当引入一个新知识时,学生全部的注意力都会围绕新学的知识,遇到问题会立刻想到用该知识去解决。但当新知识变为旧知识,或是在一段时间后遇到了需要解决的问题,却难以从脑海里众多的已学知识中检索出可用来解决问题的知识。此时,教师常会抱怨学生“学过就忘”。

反思这种现象的出现,我认为,这是因为学过的众多知识在学生的脑海里大多以点状孤立地存在,相互之间是离散的,并没有穿成一条相互关联的知识链。教师在教学中有责任为学生知识链的形成搭建有效的思维平台。下面,我以《一维数组的引入》这一教学片段为例,阐述在知识链的建立和学生思维能力的训练上的一些做法和思考。

师(提问1):请同学们写出能解决“用键盘输入5个学生的成绩,求出平均分”这个问题的两个程序。第一个程序要求使用顺序结构,第二个程序要求使用循环结构。

学生很快就完成了两个程序。

顺序结构程序:

program ex1(input,output);

var x1,x2,x3,x4,x5,s,p:real;

begin

read(x1,x2,x3,x4,x5);

s:=x1+x2+x3+x4+x5;

p:=s/5;

writeln(p:5:1)

end.

循环结构程序:

program ex2(input,output);

var i:integer; x,s,p:real;

begin

s:=0;

for i:=1 to 5 do

begin

read(x);

s:=s+x;

end;

p:=s/5;

writeln(p:5:1)

end.

教学意图:回顾已有知识链,巩固学生利用已有知识解决问题的能力。更重要的是,为新知的诞生以及新知识与已学知识的链接做好铺垫。

师(提问2):你认为这两个程序哪种方法好,为什么?

没等我问完问题,学生异口同声地说第二个程序好,原因是当人数增加时,循环结构的程序易扩展。我肯定了大家的说法,学生开始得意起来,潜意识中对顺序结构的算法更不屑一顾了。

教学意图:我料到学生会说循环结构的程序好,因为循环结构是后学的知识,在学生的思维中,后学的知识肯定比先学的知识强。学生意见的一致性反映了学生思维的单一性,同时学生因“成功”选择而呈现的兴奋状态为我下面的提问提供了可贵的撞击学生思维的力量。

师(提问3):哪位同学能设计一个问题,让我们看到顺序结构程序的优势呢?

学生全愣住了。在学生看来,后学的循环结构肯定比顺序结构更具优势。没有学生回答。

我留给学生足够的时间思考,教室里一片寂静。但遗憾的是,学生都把期待的目光投向了我。

教学意图:我想打破学生的思维定势,于是用这个问题来触动学生。课堂上是需要有触动学生的时刻的,这是他们思维能力蜕变提升的关键时刻。同时,让学生“设计一个问题”是一种逆向思维训练,有利于提高学生思维的灵活性。

师(提问4):老师设计的问题是“求出5个学生各自与平均分的差距”。请大家分别修改两个程序。

学生修改顺序结构的程序,很快完成。但对于循环结构的程序,他们无从下手。

我问他们原因,学生回答说因为前四个学生的原始成绩无法保留,因此只能求出第五个学生与平均分的差距。我趁势告诉学生,每一种方法都有其优势,要针对不同的问题选择最佳的方法。

教学意图:通过这个问题,让学生重新审视这两种算法的价值,修补知识链中缺少的关联,引导学生在遇到问题时采用多元的思维方式。

师(提问5):用顺序结构的程序解决“求出学生各自与平均分的差距”,会有哪些局限性呢?

学生立即回答:当人数增多时,要用的变量太多了,很不方便。

我充分肯定了学生的回答,并带领学生共同归纳出:顺序结构在解决“数据多且数据都需要独立保存”的问题时不很方便。

教学意图:引导学生冷静地反思已学过的知识在解决问题时的作用和局限性,对能解决“数据多且数据都需要独立保存”的新知识的学习产生期待,为知识链的延伸做好了准备。

师:下面,老师用今天将要学的新知识来解决“数据多且数据都需要独立保存”这个问题。请同学们注意观察程序中变化的内容。

我在黑板上写下程序:

program ex3(input,output);

var i:integer; s,p:real;

a:array[1..5] of real;

begin

s:=0;

for i:=1 to 5 do

begin

read(a[i]);

s:=s+a[i];

end;

p:=s/5;

for i:=1 to 5 do

writeln(a[i]-p:5:1)

end.

写完后,请学生将该程序与前面循环结构的程序进行比较。学生发现,只是将x换成了a[i]。接下来,我用翻译成中文的方式解释程序中的语句,如当循环变量i为1时,读入的分数就存入a[1]单元;i为2时,读入的分数存入a[2]单元……这样做的目的是让学生先接纳新程序,为下面引入数组的学习扫除心理障碍,产生认同感。

教学意图:在已有知识链中追加新知识的链接。在引入数组这一新知识时,我没有按常规先讲数组定义、下标变量等,而是先亮出能解决问题的程序。我认为让学生先看到新知识在解决问题中显现的身手比先听新知识的概念更有价值。另一方面,让学生在熟悉的程序框架中学习新知识,心理上会感觉更踏实,消除畏惧感。

学习是一种复杂的心理活动。获得知识只是学习的一个目的,将知识转化为智慧和能力,才是学习的真正目的。在学习过程中,知识是不同时间段一部分一部分地获得的。如果将它们随意地储存在大脑里,就会变成一盘散沙。教师需要通过教学设计搭建思维平台,帮助学生在接受新知识的同时建立起新旧知识之间的内在联系,构成完整的知识链,提升解决问题的能力。

1.新知识只有从旧知识中诞生、成长,新知识才会有根,才会有生命力。学习的过程中需要不断地接受新知识,而新知识必须通过旧知识来理解。新、旧知识之间既存在着概念上的差异,又存在着特定的联系。教师的任务是,在二者之间的断层建立起连续性逻辑关系,使之成为一个连续的、完整的知识链。

2.新知识是用来延伸已有知识,提高解决问题的能力的,不是对旧知识的否定和贬低,更不是对旧知识的抛弃和忘却。在新知识引入前,有必要提高学生对旧知识的理解程度。这就好比我们站在比原来高的山峰上,回头看身后矮的山,由于角度和高度不同,我们会看得更全面、更透彻。这样,就会在已有知识之间建立起更广泛的联系,而学习了新的知识后,学生又能从新的高度获得对旧知识更深层次的理解。

3.学习是承前启后、逐步爬坡、不断丰富知识链的过程。在教学中,对任何新知识,都切不可用“空穴来风”的形式呈现,不然知识链就会断裂。

4.知识链既是可将知识融会贯通,建立起多向关联的知识网络,又是学生获取解决问题的能力的源泉。知识链的融会贯通是一种综合运用所学知识解决问题的思维方式和能力。

学习的目的是为了用。只有当知识转化成学生的智慧和能力时,才能真正彰显知识的力量或价值。作为教师,唯有在教学中不断研究,搭建起有效的思维平台,引导学生将学习从堆积“知识山”转向创造“知识链”,才会让我们的学生拥有更多解决问题的智慧和能力。

(作者单位:江苏南京十三中科利华分校)

猜你喜欢

解决问题程序结构
联系实际 解决问题
助农解决问题增收致富
在解决问题中理解整式
《形而上学》△卷的结构和位置
论结构
试论我国未决羁押程序的立法完善
“程序猿”的生活什么样
化难为易 解决问题
英国与欧盟正式启动“离婚”程序程序
论《日出》的结构