王芳
摘 要:从纲要出发,通过具体的教学实例阐述如何优化教学方法,引导学生在程序设计变式练习中领会具有广泛迁移意义的知识,培养学生多样思维。
关键词:程序设计教学方法;多样思维;一题多解
在程序设计教学中对认知结构的整体建构要始终放在教学的首要地位,程序设计模块不是孤立的,知识的习得不仅依赖于原有的信息技术知识,而且依赖于其他方面的知识与经验,它们共同构成学习“程序设计”的知识与能力准备。
一、一题多解,明白算法的多样性
在数学学习中,通常要求一个问题使用多种解法,这是锻炼数学思维、衡量数学能力和素质的一个重要标志。同样在程序教学中,这种方法也可以促成学生对程序设计的深刻理解,同时对于培养学生的创新思维、效率思维、计算思维等都大有裨益。一题多解可以培养学生从不同角度、不同侧面去分析问题和解决问题,不仅可以激发学生的学习兴趣、拓宽解题思路,还可以丰富教学内容,同时也使授课变得生动、有趣。这类题目以启发式为主,学生在轻松的学习氛围中培养自己的多种思维能力。
二、范例拓展法,推进思维的宽度
范例拓展法的显著表现是教师的教和学生的学,都是围绕实例来完成,使学生通过积极主动地运用学习资源,进行自主探索和互相协作学习,在完成教师教的实例同时,迁移算法完成拓展实例。它有利于培养学生的自主学习能力和独立分析问题、解决问题的能力,它尤其适合程序设计教学。
例如:求1+2+3+4+5+…+99的和,并打印。
拓展:求S=1+(1+2)+(1+2+3)+…+(1+2+3+…+20)的值。(求和的拓展)
拓展:费波拉契数列,第三项是前二项之和,1、1、2、3、5、…,打印前30项。(求和的拓展)
拓展:求1×2×3×4×5…×9的乘积(通过求和拓展到求积)
拓展:求S=1×2+3×4+5×6+…+99×100的值。(求和、求乘积的组合拓展)
范例拓展法在程序设计课程的教学过程中发挥着越来越重要的作用,一方面,教师通过举例把知识点讲解得更清楚,还可以进一步延伸新的实例,对后续的课程讲解做好铺垫,打好基础;另一方面,学生在范例的驱动下思考和学习,能够帮助他们理解所学知识的逻辑关系和整体结构。
三、问题逐层递进,推进思维的深度
学生有两个发展水平,一是现有发展水平,另一个是最近发展区。最近发展区是指学生仅靠自己的独立活动不能解决的问题,但经教师启发、帮助可以达到的发展水平。不同思维层次之间是相互关联的,前一层次的学习是后一层次的基础,后一层次的学习是前一层次的发展,所以教师预设的教学过程要关注学生思维的递进关系,程序设计中的问题要有层次性,既要适合学生现有的思维水平,又要考虑为下一个思维阶段的发展奠定基础。
例如:从交换两个变量的值到求最大数再到数值的排序。
1.理解交换两个变量值的含义
SWAP(A,B)
2.求10个数中的最大数。模拟查找的过程,假设将第一个数设为最大数,每次用第一个数与后面的数比较,若小于后面的数则交换两个数,否则不交换,重复,一直到与最后一个数比较完为止。
MAX=A(1)
RORJ=2 TO 10