孙雪莲
(和田师专计算机科学系 新疆和田 848000)
程序设计中思维品质的培养
孙雪莲
(和田师专计算机科学系 新疆和田 848000)
程序设计是计算机学科的一个重要分支,是计算机专业的核心、骨干课程。根据程序设计课程研究方法和特色,采用相应的教学方法,并通过开发学生的思维内在潜能来培养学生的思维品质,使学生具有良好的开拓专业理论的素质和使用所学知识解决实际问题的能力,是程序设计课程教学的主要任务之一,本文从八个方面谈如何在程序设计课教学中加强思维品质的培养问题。
程序设计;思维品质;教学
程序设计语言是计算机专业的主要课程,每个计算机专业学生至少应该能够熟练使用一种编程语言与开发环境进行程序设计。学习计算机知识不仅是为了掌握某种技能,更重要的是:它能启发人们对先进科技的向往,激发创新意识,推动对新知识的学习,培养自学能力,锻炼动手实践的本领。因而它是高等学校全面进行素质教育中极为重要的一部分。
每个软件专业学生在学习一门程序设计课程后,至少应该掌握两方面的内容:一是要熟悉该种语言的基本语法规范与格式;一是要掌握程序设计理论的重要数据结构和算法知识(比如链表、排序和查找等)。但是,在从事程序设计语言教学中发现,许多专业学生在学习一门程序设计语言后,并没有达到预期的效果,表现为:一是程序设计的基本算法没有真正掌握(比如知道如何在2个数中找最大数,但遇到在2个以上的数中找最大数就表现得不知所措);一是对程序设计的基本语法规范不会融会贯通(比如说排序和查找等)。这些都说明学生的思维品质有待提高,针对这种情况如何培养学生的思维品质以提高教学质量,使学生走向社会后具有更强的竞争力和广阔的发展空间己成为急需解决的问题。
程序设计是计算机学科的一个重要分支,是计算机专业的核心、骨干课程。根据程序设计课程研究方法和特色,采用相应的教学方法,并通过开发学生的思维内在潜能来培养学生的思维品质,使学生具有良好的开拓专业理论的素质和使用所学知识解决实际问题的能力,是程序设计课程教学的主要任务之一。为此,本文从以下几个方面谈如何在程序设计课教学中加强思维品质的培养的问题。
俗话说:“兴趣是最好的老师。”[1]但是要让学生对学习程序设计感兴趣,并不是一件容易的事情,这是由程序设计本身的特性——抽象所决定的。为此,教师要想方设法调动学生学习程序设计的积极性,可以采用以下方法:
1.加强自身学习,不断提升自己。要求教师对所讲内容应非常熟悉,一个具有丰富专业知识深厚、实践经验丰富的教师很容易感化学生,激发学生的学习兴趣。
2.教师的语言要形象、生动、有幽默感。比如讲解全局变量与局部变量的关系,可比作中央与地方的关系,而局部变量覆盖全局变量就好比“将在外,军令有所不受”。总之,只要能够认真备课,对一些复杂的概念,是能够用一些比较形象的方法进行讲解的。
3.采用多媒体教学手段对一些的复杂处理过程进行模拟。比如对链表操作的过程模拟,可以增强学生的具象认识。
除此外教学中设置疑问,也是培养积极思维的重要手段。
促成学生思维发展的动力包括:动机、欲望、兴趣、爱好,其中兴趣是激发学生思维的最活跃因素,而提问则是激发兴趣的内在“激素”和“催化剂”,其作用的途径表现为:提问→兴趣→动机→知识→思维。精炼的提问就是为学生设置一个磁力场,以教材作诱发物,以老师作导体,激起他们的兴趣、好奇心和求知欲,使他们涌起学习的冲动,从而启动和活跃思维。例如,在讲解“两值互换”之前,先给学生解决两杯水互换的问题,问题提出后必然激起学生思考的兴趣,开动脑筋积极思索,很快进入学习状态。
思维的广阔性可以使学生的思维触角向更宽、更广的未知领域纵横求索,从而提出新见解。根据教学内容,按学生的实际情况充分拓展学生视野,引导他们对己有知识进行横向联系、纵向比较,向知识的纵深探索。
首先精心设计科学、合适的启发性提问。针对新授内容中学生难以理解处精编“开放性”问题,既可以拓宽学生对基础知识间的纵横理解,又有利于培养学生思维的灵活性、深刻性与广阔性。前苏联教育家赞可夫说过:“凡是没有发自内心求知欲与兴趣的东西,是很容易从记忆中挥发的。”他十分强调知识的理解性。如程序设计中的数据类型,是教学的重点和难点,我们不能把语法规范生吞活剥地灌给学生,而要让学生知其所以然,达到让学生“理解”的目的。例如,在两杯水互换的问题上,一位教师让学生先列出已知条件和要求解的问题,然后引导学生思考“杯子”在程序中代表什么?“水”在程序中有代表了什么?课上,学生一边自学变量和常量,一边解决了“杯子”和“水”的含义,进而也就解决了两杯水互换的问题:需要借用第三个杯子,才可以达到两杯水互换。当然教到这儿,并没有完结,这位教师而是提出这样一个问题:如果要将一个杯子和一个木桶的水互换,结果又将如何?问题一提出,就激起“千层浪”。有的学生说无法互换,有的学生说,木桶的水少的话可以互换,有的学生说只要将杯子换成木桶就可以互换。这些回答都正确,原因是是什么?在这位教师的引导下学生理解了变量数据类型。由于这位老师精心设计了一个“开放性”提问,对学生明确提出了操作要求,促使学生从各个角度思考,克服了思维的单一性,培养了思维的广阔性。同时,满足了学生的求知欲望,使理论的学习成为积极的智力活动方式,让学生在“玩”中学到了新知,并真正理解了这部分基础知识。“开放性”问题的思考与解答,有助于深入理解与牢固掌握双基,对发展思维能力的深广度,全面提高学生的素质,都有一定的效果。
其次实施“变式”教学,不拘泥于某一固定模式也是突破思维局限性的有效措施。适当举办专题讲座对培养思维的广阔性也是有益的,另外举例、习题也要多角度、多方位。例如,学完Visual Basic程序设计中Timer控件之后,要求学生设计一个红绿灯,它在0点到7点间每隔15秒切换红绿灯,其他时间每个25秒切换。这样的问题将学生所学其他知识(如,图像框的使用)融合在一起,把学生的思维从课内扩展到课外,提高了学生综合运用知识的能力。
思维的深刻性指学生要善于思考各种问题抓住各种事物的规律和本质,知其然且究其所以然。例如,学生学习数组有关概念时,看似学懂了书上的基本知识,但实际操作中不会应用,关键问题还是不理解什么是数组,教师在教学过程中,通过对程序设计内容的全面分析,在明确各章节的重点、难点及特色的基础上,再进一步研究各章节之间的联系,列出具有共同性和相匀_渗透性的内容,在授课时前后呼应,力求使学生形成一种离而不散的知识结构。也就是在教授数组基本概念之前要帮助学生探究什么是数组、它的意义和目的是什么、数组与前面学过的变量又有什么不同,学生理解好这些问题后,就不会在“10个数求和”的问题上简单的使用 10个变量相加,而是选择数组来存放10个数。
思维的批判性是指在思维时善于严格地估计思维材料和精细检查思维过程。其突出特点是去粗取精,去伪存真。表现为反复检查己拟定的假设、计划和方案,善于考虑正反两方面的论据,不盲目随和。教学中要积极鼓励学生质疑究难,对同学、教师甚至书本上的观点大胆质疑,哪怕是微不足道或幼稚可笑。例如,在学生上机练习字符串比较大小时,有些同学对“空字符串”和“空格字符串”的大小提出了质疑,在老师的引导下学生间进行了激烈的讨论,最后,学生们才注意到“空字符串”和“空格字符串”的本质区别,再例如,通过现场模拟“小球落地停止”问题,使学生更清楚命题的概念,提高判断的准确性。
逻辑思维能力又称抽象思维,是数学能力的核心,是人们进行思维活动的基础,是一个人基础素质的主要标志,是数学思维能力的主要构成因素。程序设计中的“算法逻辑”就是培养形成逻辑思维的好教材。教学中的操作过程是以抽象思维为基础的要把抽象的东西转变成形象的东西。必须通过对问题的归纳分析从而研究出一般性的规律。比如:在进行“链表”的教学时,学生对链表的认识,是一个非常抽象的过程。教师采取举生活中的例子:火车车厢需要移动一下位置,应该怎样换?学生通过分析思考,就会理解链表,再通过学习,就能顺利理解它。经过这样的训练学生的抽象思维水平必然会上一个新的台阶。
培养思维的敏捷性,首先要培养思维的紧张性以提高效率。为此应适当增加教学密度,使学生习惯以较快的速度开展思维活动。本人在从事教学的7年中发现有很大一部分学生学习没有紧张感,思维形成了惰性具体表现:老师上课讲的内容太多、太快;在测试时觉得时间不够用。对于这种现象应适当增加教学密度,使学生习惯以较快的速度开展思维活动。对学生练习应严格速度要求。如新课前进行以选择题、填空题为主的几分钟小练习,定时定量地进行百题选择、百题判断或抢答竞赛等都是训练思维敏捷性的有效方法。然后还要加强解题能力的训练,引导学生不断总结解题技巧和探索问题的最佳解决途径和方法,增强思维的敏捷性。
创造性思维是指人们运用己有知识和经验、增长开拓新领域的思维能力,亦即在人们的思维领域中追求最佳、最新知识独创的思维。鼓励和指导学生大胆、灵话运用已有知识解决实际问题,是培养学生创新精神与创新能力的有效方法。在程序设计教学中,我们应当着重培养学生的创造性思维,只有培养学生的创新精神和创造能力,才能使他们拥有一套运用知识的“参照架构”,有效驾驭并灵活运用所学知识。在解决实际问题过程中,教师可组织学生开展竞赛,进行自由辩论,互相交流方法,互相启发思路,以实现解决实际问题与培养创新能力的有机统一。其主要途径有三:一是解决日常生活中的实际问题。如指导学生用计算机程序设计“学生成绩管理系统”,用窗口控件制作书签、卡片,用计算机建立学生的学习档案等。二是通过辅助教学,发挥计算机的优势,淡化学科木位意识。根据现有条件尽可能地开展计算机辅助教学,向学生提供形象直观的感性知识和大量材料,这不但能帮助学生理解和巩固教学内容,还可以培养学生的想象力和自觉力。三是围绕教材充分展开讨论,专题讨论课要对准学生的思维脉搏,对学生的不经意的创意要有意识的强化,对学生不合常规的尝试要给予必要的支持,课后要求学生写出小论文或学习心得,并按一定的比例记入期末成绩。
发散思维是指根抓已有信息,从不同角度、不同方向思考问题,从多方而寻求多样性答案的一种思维形式,发散思维具有变通、独特的特征,要求善于变异,能够从多种渠道求得问题的解答。在教学中要求学生根据已学的知识探求解题的途径,一题多解是训练发散思维能力的最重要的形式。具体来讲,就是要通过挖掘教材中能一题多解、一法多用、一题多变的教学内容,引导学生的思考信息朝多种方向扩散,提出各种设想、多种解答。如在讲授windows的目录操作和文件目录属性的设置后,可故意将学生以往建立的文件拷贝到一个隐含的目录中。学生上机时发现自己的文件“不见了”,便纷纷提问。此时,再适时引导学生进行分析,他们便可能找出“被删除、被更名、被设置为隐含属性、被复制到其它目录中后再删除源文件”等多种答案。教师再对他们的想法给以综合分析,肯定其正确的方法,这样就可以加深学生对知识的理解。要较好的培养发散思维的能力,教师应当善于发扬学生心理特征中利于开拓的优势,精心设计一个个较好的发散思维情境,创造一个个利于培养学生发散思维的机会,鼓励学生打破思维定势的框框,勇于探索开拓,不断拓展发散思维的空间,深化发散思维的层次。
编程思想是一门操作性很强的学科,其学习过程是一个培养钢铁意志、深刻思维、坚强毅力的自我修养的过程。[2]学生要通过手眼、心、脑并用而使大脑形成强烈的专注使大脑皮层产生高度的兴奋点。在学习过程中,学生通过体会各种功能分析操作方法,都会使自己产生一种成就感更大地激发学生的求知欲望,培养出勇于进取、善于独立探索的能力。当然思维品质的培养还有其它一些方面,限于篇幅不再赘述。需要指出,学生良好的思维品质不是一朝一夕就形成的,必须经过长期艰苦努力。我们要从学生的实际情况出发,根据教学的特点,有目的地组织教材、研究教法,通过各种教学乎段,有意识进行培养训练,坚持不懈,持之以恒,必有实效。
[1]解志君.程序设计课程教学的几点思考[J].常州信息职业技术学院学报,2008(2).
[2]张惠萍.对“算法与程序设计”教学的几点认识[J].论坛,2008(2).
孙雪莲(1978-),女,和田师专计算机科学教育系助教,从事计算机教学与研究。
2010-03-18