郑重
摘要:将计算机语言作为教学内容引入到小学阶段信息技术课程教學中,有利于激发学生探究欲望,提高他们的信息处理能力。同时,程序语言学习过程对培养学生的思维品质和创新能力有很大的促进作用。
关键词:结构化程序语言 教学实践 思维能力培养
引言
计算机编程语言有很多种,目前小学信息技术课程引入了一些结构化的程序设计语言,如:PC-Logo,Pascal等。那么,教师怎样将枯燥、晦涩的计算机语言变成学生乐于接受的思维工具呢?笔者在教学实践中做了以下探索:一是精心设计入门课,二是改变学生思维习惯和方式,三是在创新和实践中不断提升编程能力。
一、精心设计程序语言入门课
(一)精心设计第一课的必要性
儿童在发展过程中,学习和求知欲高。让小学生接触并学习一些程序设计语言,能使其用程序设计的方式进行思考,帮助其拓展解决问题的途径。小学生学习程序设计的目标不是培养“小程序员”,而是学习编程的思维方式。因此,如何让学生通过第一课的学习就深深地“爱”上程序设计语言是程序语言教学第一课的首要任务。
(二)入门课设计的尝试
小学信息技术第五册第三单元是PC-Logo的入门课程。教师首先展示图1,引导学生尝试用学过的画图软件绘制这张图。开始时学生可能信心满满,但打开画图软件后可能会发现无从下手,这时老师引导说:“我的电脑里有一只神奇的会变魔术的小海龟,它可以帮助大家画出这幅图。”紧接着使用PC-Logo绘出图形,学生感到神奇和好奇,进而教师提问学生:“你想不想拥有这只神通广大的小海龟呢?”
学生在轻松愉悦的氛围中兴趣陡增。教师在做了精心的导入后可引领学生完成一些简单的设计,慢慢提高难度,使他们学习编程的兴趣不至于泯灭在枯燥、乏味的数学运算中。
Pascal语言教学中尝试使用文件方式展示程序语言,编写下面这个简单的程序:运用可执行程序的方式展示程序语言是Pascal语言的教学特点之一。对应的代码如下:
program hello;
var t:text;
begin
assign(t,'c:\\hello.txt');
rewrite(t);
writeln(t,'hello!');
close(t);
end.
这个程序运行后会生成一个hello.exe文件,老师将这个文件发送到学生C盘,让学生点击看看有什么变化。有些同学惊奇地发现C盘多了个hello.txt文件,打开文件后会看到hello这个单词。在此基础上教师引导学生:“你能不能把自己名字的拼音输出到这个文件中呢?”学生的好奇心促使他们探究老师上面给出的程序。由此教师带领学生进入Pascal语言的学习,学生带着问题和好奇,兴趣自然不低。
二、诱发学生思维动机,优化思维方式
瑞士心理学家皮亚杰说:儿童的认识是通过活动并在主客体的相互作用中产生的。小学生学习程序设计,一方面是手脑的协调活动,是对计算机算法的感知过程,另一方面是手与脑密切沟通,是把外部认知活动转化为内部语言的智力内化方式。因此,语言学习过程中可采取“驱”“探”“悟”三位一体的教学模式。
(一)创设情境,“驱”动思维
程序语言学习中老师尽量选取和学生实际生活贴近的问题,通过老师的循循善诱,使学生融入一个生动有趣的场景,问题的趣味与挑战性会让学生产生好奇心。学生答题时,在题目的情境中发挥想象力,分析问题,建立数学模型,设计算法并运用编程求解,这将激发学生的探索热情。
比如,在学习Pascal结构程序设计时,老师可以提出下面的问题:一辆自行车的售价是300元,商场为了促销,买两辆及两辆以上自行车,第二辆或第二辆以后的自行车均按240元一辆的价格出售,编程计算购买a辆自行车要多少元。[如购买3辆自行车的价格:300+240×2=780(元)]
在教师的引导下,学生不难发现买一辆和两辆自行车单价是不同的,进一步分析可得出总价分两种情况:一是当自行车数量为1时总价就是300元,二是当自行车数量达到或超过2辆时总价应该是300+240×(a-1)。有了这样的洞察,学生对应即可写出程序。
(二)寻找规律,探索新知
学生主动探索新知识是课堂教学中发挥学生主体作用的重要环节,教师的任务是为学生的探索创造条件。在探索中学生积极动手、动脑,可以产生主动获得知识、发展能力的欲望。
在学习PC-Logo的“重复”命令时,如果采用教师先讲命令功能和格式,然后学生套用格式进行练习的模式,那么大部分学生的探究思维得不到练习,不能掌握其规律,这对后续的问题解答不利。反之,如果采取先观察再探究规律的方法,那么学生的能力则可以得到提升。
教师可以首先展示使用基本命令和重复命令画正方形的过程(见下表),让学生观察、对比两种方法的效率,再鼓励学生分析两种方法效率差异的来源,找到规律。
(三)“领悟”“探索”结合,拓展思维
“悟”和“探”不是两个独立的过程,两者互相依存、相互转化。“悟”是“探”的结果,是下一步“探”的基础。
使用重复命令时,重在领悟重复命令中“重复的次数、内容”的含义;在探索用重复命令绘制正多边形时,也在“悟”命令中重复的次数、小海龟每一次转动的角度与正多边形边数之间的关系。学生每次“悟”的结果又是下一次“探”的基础。在“探”“悟”的过程中,学生独立尝试、独立思考,从而使思维得到训练和拓展。
三、立足实践,着力创新,不断提升编程能力
“纸上得来终觉浅,绝知此事要躬行。”这句诗告诉教师不仅要让学生学习编程理论,更要让学生通过上机实践,在不断的探索中独立思考问题,培养学习兴趣的同时,有效激发出学习积极性。学好程序设计语言要求学生通过不断的实践与探索,做到对所学内容有更深层的理解,这样才能让实践、思考、提升三者成为统一体。
比如,在Pascal学习中,教師可以提出如下问题:输入三个数,输出其中最大的数。该问题看上去很简单,学生通过分析不难找到解答,大部分都会得到如下写法:
Program max;
Var
A,B,C,max:real;
begin
readln(A,B,C,);
if (A>B) and (A>C) then max:=A;
if (B>A) and (B>C) then max:=B;
if (C>A) and (C>B) then max:=C;
end.
老师肯定上述代码的同时,鼓励学生思考能否有更简洁、层次更清楚的方法,并使用N-S图先分析(见表2):
上表中的N-S图可以利用两个条件语句来实现,程序主体部分如下:
If a>b then max:=a;
Else maxb;
If c>max then max:c;
通过实践和创新,学生编写出了到了更简洁、层次更清晰的程序。
在Logo学习重复命令中,学生掌握了正多边形的画法,例如画正五边形语句可以写成:repeat 5[fd 50 rt 360/5]。那么,要画如下的五角星又该怎样做呢?
每个角由两条边组成,小海龟画好一条边后,向右旋转的外角是720/5=144度;接着再画第二条边,重复5次。
rt 18
repeat 5[fd 50 rt 720/5 fd 50 lt 360/5]
ht
由此探索出空心多角星的画法:
Repeat 角数[fd 边长 rt 720/角数 fd 边长 lt 360/角数]
由两个案例可知,学生的程序设计实践能力要在不同问题中通过思维的训练进行扩展。学习程序设计要鼓励学生不断在实践上机中探寻问题的解决方法。
结语
程序设计不是看会的,也不是听会的,而是通过上机实践探索练会的。“实践出真知”, 既要动脑,又要动手,进行“理性”的思维和实践。从小学习一些程序设计的思想,对学生将来打开思路,挖掘潜能,提高科学素养和动手能力有很大的益处。从信息技术方面获得的能力也可以迁移到其他课程中去。小学信息教育要注重学生程序设计思想的培养,鼓励学生打开思路,挖掘潜能,提高学生的科学素养和动手能力。
参考文献:
[1]朱智贤.儿童心理学[M].北京:人民教育出版社,1993.
[2]陈星火.程序设计小能手——Logo语言编程[M].北京:北京希望电子出版社,1999.
[3]马敏.依托信息学奥赛培养学生思维品质和创新能力[J].NOI导刊,2012(12).