论文部分内容阅读
摘 要: 本文作者立足于教学实际,借鉴教育理论,探讨了如何在程序设计中针对思维品质的五个方面对学生进行思维训练,为灵活的编程打下坚实基础,取得了较为满意的教学效果。
关键词: 程序设计 思维品质 思维训练
打好基础,传授知识,这是智育的一部分、一个方面,而智育的重要方面、重要部分,就是“育智”——发展思维力和智力。程序设计是一种对思维能力要求很高的课程,那么如何训练学生的思维能力呢?下面就VB程序设计结合教学实践谈些见解。每个同学之间思维是有差异的,比如有的同学思维很敏捷,有的则较缓慢;有的同学思维细密,有的则较粗疏;有的同学思路广阔,有的则较狭窄、片面。这种思维水平的个体差异,就是我们所说的思维品质。思维品质是思维水平、思维质量的重要标志。因此,我们在思维训练中,可以通过培养优良的思维品质来进行思维能力的训练,提高学生的思维能力。只要能在实际训练中把握住思维品质,进行有的放矢的努力,就能顺利地卓有成效地坚持下去。从心理学角度看,培养学生的思维品质包括思维的深刻性、思维的严密性、思维的灵活性、思维的敏捷性和思维的创造性五个方面。在程序设计中,我针对学生思维品质中存在的缺陷,结合教学内容,有针对性地对学生思维进行这五方面的训练和矫正。
一、思维深刻性的训练
思维的深刻性,又叫做思维的准确性或逻辑性,它是指思维活动抽象程度的逻辑水平。思维的深刻性是一切思维品质的基础,表现为思维活动的广度、深度和难度,也是教学的关键。由于学生的知识规律是由形象思维向抽象思维发展,当具体问题抽象化后,首先往往就认为无从检查了,因此在教学中,我们可通过设置陷阱、是非判断、上机验证等手段,使学生准确而深刻地理解算法思想,达到训练思维深刻性的目的。例如:在讲解判断一个整数是否为素数的问题中,从素数(即质数)的定义出发,得出除了1和本身之外,不能被其它任何整数整除的数。换一种说法,如果X是素数,它不能被2至X-1整除。这样的过程即可用一个循环完成,于是我顺着学生的思路编写出以下程序:
DIM X AS INTEGER
X=VAL(INPUTBOX(“请输入一个整数:”,“输入数据”))
FOR I=2 TO X-1
IF X MOD I=0 THEN EXIT FOR
NEXT I
PRINT X;“IS A PRIME NUMBER”
END
由于学生目前的思维停在问题的表面,编出的以上程序并不正确,因此在这里我设置了一个小陷阱。为加深问题的理解,我让学生先通过上机验证,自己进行是非判断,激发对问题的进一步思考。实践证明,这种让学生自己发现问题,引起他们的思考兴趣,比直接告诉他们效果好得多。
二、思维严密性的训练
编程序是理论与上机的有机结合,不论是在理论课上还是上机课上,讨论都是训练学生思维的最好方法,在此过程中教师始终扮演的是组织者的角色,教师不应用条条框框约束学生的思维,任由学生发挥,只需在某些技术环节给予点拔即可。学生通过讨论,可以各抒己见,举一反三,在交流观点的同时,思维处于积极状态,他们就会大胆质疑、主动思考,通过集思广益得到答案。这样就能充分发挥学生的主动性,训练学生的思维严密性,引导学生细致、周密、全面地分析设计过程,训练思维的严密性。继续上面的问题,通过上机验证得出,无论这个整数是否为素数,屏幕上都显示一样的结果:xxx IS A PRIME NUMBER。这样的结果激起了学生要找出根源、解决问题的决心。于是我从旁提示,用两个相反的例子手工做一遍,以使学生发现没有考虑到的问题。这样通过把握过程的训练又让学生回到了从分析到综合的严密思维上来。
三、思维灵活性的训练
思维的灵活性又称应变性。它包括两个方面的含义:一是思维灵活,迁移能力强,善于机动地动用知识贮备,从多方面思考问题。二是善于根据客观形势的变化,灵活机动地改变原先拟就的计划和方案,寻求新的解决问题的途径。培养思维的灵活性,引导学生善于发散思考;精心设计练习,让学生一题多解、一题多变;注意启发学生灵活机动地动用知识储备,培养思维的灵活性。同一个问题在程序设计中有许多不同的编法。只有积极地尝试一题多解,才能找出最优秀的设计方案,这一点对于学生良好编程风格的养成将大有好处。还是上面的问题,找出了根源就要解决问题,即如何把是否执行了条件语句区分开来?我让学生自由发挥。为形象说明该问题的实质,让抽象思维具体化,我又列举了生活中的一个例子。如五千米绕场跑,停下来有两种可能:一是未跑完,二是跑完五千米。那如何区分这两种情况呢?学生立刻活跃了思维。有同学说作标记,于是我抓住这一点,用FLAG语句作为标志说明已是水到渠成了;还有同学说用GOTO语句,我跳过说明是素数的语句,等等。
教师把思考的主动权交给学生,发挥自己导的作用,激起学生深思、多思,才能在编相类似的程序选择算法时游刃有余。
四、思维敏捷性的训练
这主要是指思维的速度。有的人思维机敏、反应迅速,有的人则思维缓慢、反应迟钝,这便是思维敏捷性的差异。当然,思维的敏捷性是以思维的深刻性为前提的,如果思维很快但不准确,那么敏捷性也就没有实际意义了。有了思维的敏捷性,在处理问题和解决问题过程中,人就能够积极地思维,周密地考虑,正确地判断和迅速地作出结论。教师可通过鼓励学生勇于克服消极的思维定势,不死套模式,在短时间内产生超常的编程思路,从而提高思维的敏捷性。例如:找出100以内的合数。一种常规思维是一个一个的判断。如果仔细分析事物的特征,即可知道除了2以外偶数都是合数,这样工作量又减少了一半,再从剩下的奇数中发现大于7的奇数,如果能被3或5或7整除也就是合数,这样工作量又减少了,很快找到了合数。经过多方面、多因素、多变量的系统观察,通过多种思维活动的互相联结、互相补充来揭示事物的本质即可迅速得出编程思路,而不是停留在问题的表面。
五、思维创造性的训练
思维的创造性(或称独创性)是现代青年必须具备的重要的思维品质。所谓创造性就是敢于超越传统习惯的束缚,摆脱常规思维定势的禁锢,善于综合运用所掌握的知识、信息,提出具有进步意义的新设想、新观点、新方案。这种思维的创造性,是培养创造型人才最重要的条件。培养学生思维的独创性品质,对学生的成长具有十分重要的意义。正如我国著名数学家华罗庚所说:“‘人’之可贵在于能创造性思维。”然而传统的习惯性思维常会妨碍思维中的突破和创新。爱因斯坦说过:“应当把发展独立思考和独立判断的一般能力放在首位。”提高创造思维能力必须在思维实践中不迷信前人,不盲从已有的经验,不依赖已有的成果,独立地发现问题,独立地思考问题,在独辟蹊径中找到解决问题的有效方法。为了培养学生创造性思维能力,我常在教学中有意识地帮助学生去发展直觉思维,鼓励猜测,打破思维定势,打破形式逻辑的束缚。因为直觉思维是创造性思维活跃的一种表现,它是创造发明的先导。例如:求1到N的N个自然数排成一列,共有1·2·3·…·N种不同的排列方法,试编程输出1到N的全部排列(假设N小于10)。这一题目可用穷举法完成,但为了求得更好的算法,我将N=5时所有排列展现给学生,让他们寻找不同排列之间的规律。学生通过直觉,大胆猜测,得出所有排列是按升序排的,从当前排列产生下一个排列时必然会造成某一位置上的数字变大,这一位置显然应尽量靠右,并且它左边位置上的数应尽量保持不变,找到这一位置即可产生下一排列,这样更好的算法就产生了。
总之,思维能力的训练是一种有目的、有计划、有系统的教育活动。教师在程序设计中有意识训练,不仅能提高学生对知识的理解,而且能够灵活运用,解决多种问题。这也许就是教学中所提倡的“授人以鱼,不如授之以渔”的道理。通过思维训练,提高学生的思维能力、思维水平,培养学生良好的思维品质,这样就能使学生主动地获取知识,学会正确地分析问题和解决问题。
参考文献:
[1]宋晓林.计算机程序设计教学对学生思维的培养.理科爱好者(教育教学版),2010,(2).
[2]闫文丽,赵喜明.借助程序设计培养学生创新能力.中国科教创新导刊,2009,(4).
关键词: 程序设计 思维品质 思维训练
打好基础,传授知识,这是智育的一部分、一个方面,而智育的重要方面、重要部分,就是“育智”——发展思维力和智力。程序设计是一种对思维能力要求很高的课程,那么如何训练学生的思维能力呢?下面就VB程序设计结合教学实践谈些见解。每个同学之间思维是有差异的,比如有的同学思维很敏捷,有的则较缓慢;有的同学思维细密,有的则较粗疏;有的同学思路广阔,有的则较狭窄、片面。这种思维水平的个体差异,就是我们所说的思维品质。思维品质是思维水平、思维质量的重要标志。因此,我们在思维训练中,可以通过培养优良的思维品质来进行思维能力的训练,提高学生的思维能力。只要能在实际训练中把握住思维品质,进行有的放矢的努力,就能顺利地卓有成效地坚持下去。从心理学角度看,培养学生的思维品质包括思维的深刻性、思维的严密性、思维的灵活性、思维的敏捷性和思维的创造性五个方面。在程序设计中,我针对学生思维品质中存在的缺陷,结合教学内容,有针对性地对学生思维进行这五方面的训练和矫正。
一、思维深刻性的训练
思维的深刻性,又叫做思维的准确性或逻辑性,它是指思维活动抽象程度的逻辑水平。思维的深刻性是一切思维品质的基础,表现为思维活动的广度、深度和难度,也是教学的关键。由于学生的知识规律是由形象思维向抽象思维发展,当具体问题抽象化后,首先往往就认为无从检查了,因此在教学中,我们可通过设置陷阱、是非判断、上机验证等手段,使学生准确而深刻地理解算法思想,达到训练思维深刻性的目的。例如:在讲解判断一个整数是否为素数的问题中,从素数(即质数)的定义出发,得出除了1和本身之外,不能被其它任何整数整除的数。换一种说法,如果X是素数,它不能被2至X-1整除。这样的过程即可用一个循环完成,于是我顺着学生的思路编写出以下程序:
DIM X AS INTEGER
X=VAL(INPUTBOX(“请输入一个整数:”,“输入数据”))
FOR I=2 TO X-1
IF X MOD I=0 THEN EXIT FOR
NEXT I
PRINT X;“IS A PRIME NUMBER”
END
由于学生目前的思维停在问题的表面,编出的以上程序并不正确,因此在这里我设置了一个小陷阱。为加深问题的理解,我让学生先通过上机验证,自己进行是非判断,激发对问题的进一步思考。实践证明,这种让学生自己发现问题,引起他们的思考兴趣,比直接告诉他们效果好得多。
二、思维严密性的训练
编程序是理论与上机的有机结合,不论是在理论课上还是上机课上,讨论都是训练学生思维的最好方法,在此过程中教师始终扮演的是组织者的角色,教师不应用条条框框约束学生的思维,任由学生发挥,只需在某些技术环节给予点拔即可。学生通过讨论,可以各抒己见,举一反三,在交流观点的同时,思维处于积极状态,他们就会大胆质疑、主动思考,通过集思广益得到答案。这样就能充分发挥学生的主动性,训练学生的思维严密性,引导学生细致、周密、全面地分析设计过程,训练思维的严密性。继续上面的问题,通过上机验证得出,无论这个整数是否为素数,屏幕上都显示一样的结果:xxx IS A PRIME NUMBER。这样的结果激起了学生要找出根源、解决问题的决心。于是我从旁提示,用两个相反的例子手工做一遍,以使学生发现没有考虑到的问题。这样通过把握过程的训练又让学生回到了从分析到综合的严密思维上来。
三、思维灵活性的训练
思维的灵活性又称应变性。它包括两个方面的含义:一是思维灵活,迁移能力强,善于机动地动用知识贮备,从多方面思考问题。二是善于根据客观形势的变化,灵活机动地改变原先拟就的计划和方案,寻求新的解决问题的途径。培养思维的灵活性,引导学生善于发散思考;精心设计练习,让学生一题多解、一题多变;注意启发学生灵活机动地动用知识储备,培养思维的灵活性。同一个问题在程序设计中有许多不同的编法。只有积极地尝试一题多解,才能找出最优秀的设计方案,这一点对于学生良好编程风格的养成将大有好处。还是上面的问题,找出了根源就要解决问题,即如何把是否执行了条件语句区分开来?我让学生自由发挥。为形象说明该问题的实质,让抽象思维具体化,我又列举了生活中的一个例子。如五千米绕场跑,停下来有两种可能:一是未跑完,二是跑完五千米。那如何区分这两种情况呢?学生立刻活跃了思维。有同学说作标记,于是我抓住这一点,用FLAG语句作为标志说明已是水到渠成了;还有同学说用GOTO语句,我跳过说明是素数的语句,等等。
教师把思考的主动权交给学生,发挥自己导的作用,激起学生深思、多思,才能在编相类似的程序选择算法时游刃有余。
四、思维敏捷性的训练
这主要是指思维的速度。有的人思维机敏、反应迅速,有的人则思维缓慢、反应迟钝,这便是思维敏捷性的差异。当然,思维的敏捷性是以思维的深刻性为前提的,如果思维很快但不准确,那么敏捷性也就没有实际意义了。有了思维的敏捷性,在处理问题和解决问题过程中,人就能够积极地思维,周密地考虑,正确地判断和迅速地作出结论。教师可通过鼓励学生勇于克服消极的思维定势,不死套模式,在短时间内产生超常的编程思路,从而提高思维的敏捷性。例如:找出100以内的合数。一种常规思维是一个一个的判断。如果仔细分析事物的特征,即可知道除了2以外偶数都是合数,这样工作量又减少了一半,再从剩下的奇数中发现大于7的奇数,如果能被3或5或7整除也就是合数,这样工作量又减少了,很快找到了合数。经过多方面、多因素、多变量的系统观察,通过多种思维活动的互相联结、互相补充来揭示事物的本质即可迅速得出编程思路,而不是停留在问题的表面。
五、思维创造性的训练
思维的创造性(或称独创性)是现代青年必须具备的重要的思维品质。所谓创造性就是敢于超越传统习惯的束缚,摆脱常规思维定势的禁锢,善于综合运用所掌握的知识、信息,提出具有进步意义的新设想、新观点、新方案。这种思维的创造性,是培养创造型人才最重要的条件。培养学生思维的独创性品质,对学生的成长具有十分重要的意义。正如我国著名数学家华罗庚所说:“‘人’之可贵在于能创造性思维。”然而传统的习惯性思维常会妨碍思维中的突破和创新。爱因斯坦说过:“应当把发展独立思考和独立判断的一般能力放在首位。”提高创造思维能力必须在思维实践中不迷信前人,不盲从已有的经验,不依赖已有的成果,独立地发现问题,独立地思考问题,在独辟蹊径中找到解决问题的有效方法。为了培养学生创造性思维能力,我常在教学中有意识地帮助学生去发展直觉思维,鼓励猜测,打破思维定势,打破形式逻辑的束缚。因为直觉思维是创造性思维活跃的一种表现,它是创造发明的先导。例如:求1到N的N个自然数排成一列,共有1·2·3·…·N种不同的排列方法,试编程输出1到N的全部排列(假设N小于10)。这一题目可用穷举法完成,但为了求得更好的算法,我将N=5时所有排列展现给学生,让他们寻找不同排列之间的规律。学生通过直觉,大胆猜测,得出所有排列是按升序排的,从当前排列产生下一个排列时必然会造成某一位置上的数字变大,这一位置显然应尽量靠右,并且它左边位置上的数应尽量保持不变,找到这一位置即可产生下一排列,这样更好的算法就产生了。
总之,思维能力的训练是一种有目的、有计划、有系统的教育活动。教师在程序设计中有意识训练,不仅能提高学生对知识的理解,而且能够灵活运用,解决多种问题。这也许就是教学中所提倡的“授人以鱼,不如授之以渔”的道理。通过思维训练,提高学生的思维能力、思维水平,培养学生良好的思维品质,这样就能使学生主动地获取知识,学会正确地分析问题和解决问题。
参考文献:
[1]宋晓林.计算机程序设计教学对学生思维的培养.理科爱好者(教育教学版),2010,(2).
[2]闫文丽,赵喜明.借助程序设计培养学生创新能力.中国科教创新导刊,2009,(4).