张付林
计算机程序语言和算法是一门抽象、难学的课程。在中职计算机语言教学中,正确使用直观性教学方法,可以激发学生的学习兴趣,提高教学效果。建构主义认为,学习总是与一定的情境相联系的,在适当的情境中,学生通过直接观察的生动实际现象或者亲身参与,更容易完成知识建构,并且能够在大脑中能形成极其深刻印象。
计算机语言程序设计和算法有着较强的逻辑性和结构性,需要学习者有较扎实的数学基础和较强的逻辑思维能力。这对于初学者来说有一定的难度,尤其对于基础较差的中职学生更是难上加难。在计算机语言程序设计教学中根据需要正确运用直观性教学方法,将有助于学生去消化、理解抽象的算法和程序执行流程,进一步提高学生的学习兴趣和学习积极性。程序设计的直观性教学可以从以下几个方面来实现。
使用教学课件,帮助学生理解程序的执行过程
计算机程序的运行是在计算机内部进行的,是看不到、摸不着的。各种控制语句的执行流程、函数与子程序的调用和返回过程及参数之间的传递,学生是无法直接感知的。即使实验课调试程序的过程中,学生也只能看到中间或最终的结果,是对程序正确性的验证,看不到程序的执行过程。多媒体教学课件能够模拟不可能或很难看到的现象,能使抽象的理论形象化。在程序设计教学中借助于课件,可以模拟程序的执行过程和各参数的变化,让学生理解控制语句的执行流程以及函数、子程序调用过程中各参数的变化情况,一些算法的基本原理。因此,在教学中设计必要的课件,课堂教学效果远远超过详细的语言讲解。
程序设计的教学课件切忌花哨、滥用,教师要从教学需要和实际出发,结合本班学生的知识水平和认知心理设计课件,最好在学生理解、认知有困难的知识点上使用,一定要对学生的认知有帮助,不能为使用课件而使用课件。
用好恰当类比,使抽象的内容形象化
即使在教育技术高度发达的今天,语言讲授仍然是教师在课堂上向学生传授知识的主要方式,因为在每一节课中都让学生去“亲身体验”是不现实的。课堂教学语言的质量不仅关系到教学质量,而且还影响着学生学习的质量和水平。形象、生动的课堂教学语言,合乎情理的夸张,生动贴切的比喻,可以帮助学生理解不易接受的抽象知识,使学生如见其形、如临其境、如闻其声,对完成教学目标至关重要。这里所讲的“直观性”语言就是指使用恰当的比拟,来解释程序设计教学中学生难以理解的知识点。
例如函数与子程序部分教学中,学生编写函数或子程序时总是不知道要设立多少行参,不是多就是少,调用函数时总是不理解行参与实参要个数相等、类型一致,编好了函数也不知道调用。讲解时,教师可以把函数比喻成一台电视机,函数调用比喻成看电视节目,编好了函数不调用,相当于没有通电的电视机。要想看电视节目,必须有电源和信号,这两个缺一不可,少了不行,多了也没用,如给电视机接上电话信号就是多余的。行参实参的类型不一致,就相当于电源插头两只脚与三只脚不一致的情形等。再如条件循环可以类比成学生的平时学习生活,在一学期中每周必须重复课表中同样的学习内容,结束重复的条件是假期到了。实践证明,通过这样的类比,比重复阐述编程语言的语法规则的效果要好得多。
使用形象化语言进行教学时,要注意精炼、恰当,所使用例子或比喻要经典,要与学生的生活经验和实际相关,要与所反映的问题贴近,防止学生产生歧义。例如交换两个变量a、b的值,如果借用第3个变量c,其程序段为:LET c=a:LET a=b:LET b=c。此时可以举交换两只蓝墨水和红墨水这样的例子,可以先将蓝墨水倒入第3个瓶子,然后将红墨水倒入原来装蓝墨水的瓶子,最后将第3只瓶子中的蓝墨水倒入原来装红墨水的瓶子。这个例子中,如果不借助于第3只瓶子,则不能交换。因此只使用2个变量,实现其中值的交换的程序段就不能用此例子来解释。
重视上机实验,帮助学生解决知识疑惑,增强知识产权意识
曾经听说一些职业学校在计算机语言程序设计教学安排中,为了培养学生阅读程序、分析程序的能力,而取消了上机实验课,这是一种错误的做法。实验课中调试程序过程是分析和排错的过程,是程序设计的一个重要环节。其目的就是让学生输入和调试程序,是一个让学生亲身体验程序设计从编写代码、输入程序、调试运行程序的整个过程,可以解决学生在认知过程中的疑惑,验证分析程序的正确性和运行结果,理解程序中语法、逻辑错误所造成的后果,从而进一步帮助学生巩固课堂教学中的知识,培养他们良好的编程习惯。同时也让他们感知程序设计的不易,培养知识产权保护的意识。因此上好实验课对程序设计教学及提高学生信息素养有很大的帮助。
上好一节实验课必须在课前充分备好课。一方面,要根据已讲授的知识内容和学生作业反馈精心设计好要实验任务,可以有语句的基本应用,也可以有涉及到算法的综合编程调试,在难度上有一定的梯度。另一方面,还要设计好上机实验流程,在充分了解学生知识和技能水平的基础上,决定本次实验前是否要补充讲解算法原理,实验过程中是否需要补充新的程序调试的方法。另外如果本次实验需要一些现成的程序段,必须在实验前复制到所有实验用机上。实验过程中,还要对极少数技能差的学生以必要的指导,帮助学生解决实验中遇到的各种错误,使学生不畏惧出错,能正确面对错误,防止产生畏难情绪。还要注意采用引导的方法,不要告诉学生直接答案,让他们学会分析错误、排除错误的方法。
实验结束后学生要写实验报告,写出实验中调试成功的程序和遇到的语法、逻辑错误以及排除错误的过程。教师通过实验报告了解学生的学习情况,学生通过写实验报告总结上机调试和编程经验,避免下次犯同样的错误,进一步提高学生程序设计的规范化。
设计好学生演练,让学生深刻理解算法的原理
程序的算法是很抽象、极不易理解的教学内容之一。让学生参与一些实际表演来演练算法的执行过程,可以进一步让学生理解和体会算法执行的原理和过程。如讲授冒泡排序法时,教师可以设计下列表演场面:让若干个学生排成一排,然后利用冒泡排序的原理按由高到矮的个子排列。冒泡排序的原理是从第一个数据开始发现相邻的数据,发现反序则交换的原理演示冒泡排序的排序过程,学生按照冒泡排序的原理比较相邻两个人的高矮,若前面的一个人比后面的高,则互换位置,经过若干轮比较和交换后,便完成了冒泡排序。
为了比较各种排序的过程,可以将学生按照各种排序的原理进行演练,让学生总结出各种排序的不同,加深对各种排序算法过程的理解。
直观性教学方法在使用过程中需要注意的是,教师要正确引导和启发学生,通过演示、表演、类比能够使所要讲授的抽象知识点形象化,易于学生理解。在教学过程中,还要防止学生看热闹或只注重表面现象,否则很难起到好的教学效果。
总之,直观性教学方法是激发学生学习兴趣的有效方法,是促进学生思维发展,帮助学生内化知识的重要途经。在计算机程序教学中正确使用直观性教学方法,可以进一步提高课堂教学效益,帮助学生掌握难以理解的抽象知识,使抽象的知识形象化。
(作者单位:江苏省海安县双楼职业高级中学)