APP下载

算法与程序设计的课堂教学有效性探讨

2017-03-11徐华胜

文化创新比较研究 2017年36期
关键词:程序设计语句程序

徐华胜

(北仑明港高级中学,浙江宁波 315800)

随着新课程改革的深入开展,算法与程序设计作为信息技术的一部分,开始受到了大家越来越多的重视。可对于高一新生来说,算法与程序设计给他们的第一印象就是“难”,觉得这应该是一门高深的学问,难度很大。如何在有限的课堂40分钟内,合理运用教材,采取恰当的教学方法,激发学生的学习兴趣,提高算法与程序设计的课堂教学有效性,就成为一个我们值得探讨的问题。作为一个十多年的一线教师,由于本人对程序有特殊的偏好,在编程教学中积累了一点心得,具体如下:

1 巧设问题,营造氛围,激发学习的兴趣

对于初学者来说,兴趣与信心是最重要的。由于跟前面的信息技术基础比起来,算法与程序设计上手比较难,前期涉及到的基础内容又比较枯燥,接触上机编程的时候学生很容易被其他东西所吸引,不按指定的内容操作,这样会极大的影响到课堂的教学效果,甚至于学生完全没有掌握相应的知识,教师也教的越来越乏味。如此循环,程序设计也将会成为放任自流的课,学生将会越来越失去兴趣,最终退出并放弃这门课程。因此,我们要依据教学内容,设计一些场景,使问题形象化、具体化,给学生在视觉上或者心理上造成一定的冲击,进而激发他们的好奇心,为接下来的教学内容做好铺垫工作。

例如,在开讲for循环语句第一课时,在引入的环节,要求学生使用已经掌握的PictureBox控件画一个圆,然后要求画圆心相同的20个、50个、100个圆,从而顺其自然的引出for循环语句。在这个问题的导入中,我们使用PictureBox控件呈现的图形变化来实现循环语句的效果,直观形象,易于接受,比起我们常用的数字方式的引入来的更有吸引力,更有趣味。

在掌握了for语句的基本结构后,我们还可以一例到底,层层递进,通过圆的个数,半径的变化,来体会for语句中循环变量初值、终值及步长的变化。最后可以再次抛出问题,通过圆心的移动,发挥学生想象力,反馈给他们各种不同的图形,直观的变化之美,也会让学生对接下来的学习充满憧憬。

2 引导问题,激活思维,加强学习的主动性

学生能够提出问题,是学生变被动学习为主观能动的内化过程。教师可以通过学生的提问找准教材重难点的切入点。学生提不出问题,是没有思考或思考不深入的客观反应。反之,则说明学生对教材有一定的理解和掌握。所以,在教学中,我们要精选例题,让学生能够积极思考,多发现问题,多提出疑问,引导学生以主人翁的态度投入到学习之中。

例如在讲解integer、long所能保存数据范围的不同时,我为学生设计了这样一个实验。

Dim x, y , z as integer;

x = 1

y = 3

z= x + y

print z

这是一个非常简单的程序,程序运行完后会在窗口左上角输出4。然后我叫大家将x改为1000,将y改成3000,再次运行后,发现输出的数为4000了。这个很简单啊,同学会都会感到纳闷了,思想上也开始放松了。这时候我叫大家将x改为10000,y改为40000,运行后窗口上并没出现预期的数字,怎么回事,出错了?这时我让学生查看下书上关于integer这个数据类型的存储范围。终于大家都明白了,原来是数值超过了存储的范围,那怎样进行修改可以正确输出这个数值呢?慢慢地引导着学生思考解决问题的方法。

在integer数据类型问题的解决情况下,我们可以再次改变下程序,如果将x=1改成x="1",y=3改成y="3",程序又会出现什么情况呢?首先告诉学生加双引号与不加双引号的区别,然后让学生对应书上的数据类型表格,试着对程序进行修改。由于基本上都在要求学生自己动手动脑,他们在操作过程中探究和解决问题的积极性、学习的主观能动性都会得到很大调动。让学生一步步的去发现问题,去探索解决问题的方法,教师的教学目的也就达到了。

3 深化问题,层层递进,提高学生的探索能力

在发现问题、解决问题的过程中,还要逐渐锻炼学生举一反三的编程能力。同时,问题的设置也应该是一个逐步上升的过程,而不是在同一个层面反复纠结,低层次的问题应该是高层次问题的基础,要为学生的自主探索搭建一个厚实的底座。作为老师,要注意自己的表情,语气和手势,注意倾听学生,及时纠正补充。问题的提出,要尽量避免使学生感到山重水尽疑无路,教师可以引导式的追问或再次递进提问,让学生感到柳暗花明又一村。尽量让每一位学生都有话说,有路走,将老师作为一个交流的对象。

例如,在教科书中学习for循环语句的时候,我们会看到这样一个例子:求1+2+3+…+100的和。

用for语句如下:

s=0

for i=1 to 100 step 1

s=s+i

next i

print s

这个语句非常简单,学生也很容易理解,特别是对“step 1”进行特别讲解后,我就要求同学们对原程序做如下几种变化:

(1)求1到100之间所有偶数的和,要求i每次加2。

(2)求1到100之间所有偶数的和,要求i每次加1。

(3)在程序运行过程中任意输入一个自然数n,求1到n之间所有偶数的和。

(4)难度加深题:查找100-999中满足如下条件abc=a^3+b^3+c^3的数(水仙花数)

从上面的几种变化,我们可以来分析下,第一题应该属于比较简单一类的,只要把阶改为2就行了(setp 1改为 step 2),只要模仿下例题就可以解决了,只是对步长的功能进行了一个初步了解。第二题需要转变下思维,有一定的难度了,而且并不只一种方法,可以将循环变量改成1到50,循环语句变成s=s+2*i,也可以直接在循环语句s=s+i前加一句i=i+1。不同的方法可以达到相同的结果,考察了学生的应变及创新能力。第三题是在第二题的基础上进行一个变量n的输入,可以将该题的范围进行适量的延伸,同时对n、s的范围也要注意,在for语句的基础上还考察了integer类型的范围。总的来说,前三题的的知识对学生综合能力要求在逐步提升,由浅入深,具有非常的典型性,进行这样的梯度训练后,学生们对for循环语句就会有一个比较好的认识和运用了。

总之,不同的学生有着迥异的知识背景和学习习惯,同时老师所授内容过于理论化,这两点一直都是困扰我们开设程序设计课的难点所在。所以,我们老师在进行教学设计时候需要依据学生特点,将抽象的东西实体化,精讲精练,可以通过一些问题或者任务来增强学生的兴趣,铺设一些不多的设问来引导学生,言简意赅的归纳知识点,即不能让学生死记硬背程序,也不能让他们无从下手,这样学生将会更加乐于学习程序,我们的课堂教学也会更加行之有效。

[1]戴礼奎,张海云.课堂教学中程序设计的教学实践[J].中小学电教(下半月),2017(10):45-46.

[2]陈苏海.计算机公共基础程序设计课程实验教学探讨[J].课程教育研究,2015(36):136-137.

猜你喜欢

程序设计语句程序
重点:语句衔接
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
试论我国未决羁押程序的立法完善
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
高职高专院校C语言程序设计教学改革探索
创卫暗访程序有待改进
PLC梯形图程序设计技巧及应用
我喜欢