《算法初步》的教学实践与反思。
周华。下学期我接手二(8)班数学教学任务,说实话,第一次接触新教材内容,又是第一次接触教材新增加的内容,的确有些茫然。必修3中,将算法列为高中数学内容的第一部分,在“算法初步”这一章导言中也讲到“算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础”。
因此,这章内容是高中数学与信息课程整合的极好体现。但由于这一章是高中数学中的新增内容,在数学教学中没有可以借鉴的经验,我只能依靠与同行彼此学习体会和相互的交流来教学,同时通过学生学习情况的反馈来进行教法调整。随着教学进程的不断向前推进,我在自己的教学过程中也有自己的一些做法和感受,下面就向同行们汇报汇报,期望得到大家的指点并力求找寻出教学这一章更为有效的处理方式。
下面就我对《算法》一章教学后,学生的学习表现及存在问题,谈一谈教学实际活动的体会与反思。
一、《算法初步》学习时学生的表现。
1、用自然语言表述算法时的表现。
1)大部分学生能够理解用自然语言表述的简单算法,能够正确地写出用自然语言表述一个有顺序结构的问题;用自然语言表述一个有条件结构的运算结果。如任意给定三个正实在,判断以这三个正实数为三条边长的三角形是否存在的算法;还有大约60%的学生能够分析出应用自然语言表述的循环结构,如:用“二分法”求方程的近似解的算法。
2)对于用自然语言分步表述一个有条件转向的算法,多数学生理解存在困难,如:对于写出“求方程的实数根的算法”的问题,少部分学生能模仿写出,其他学生都是写成一个步骤:计算判别式的值,如果判别式小于0,则方程没有实根,否则方程有两个等根或两个不等根,同时,多数学生没有讨论a=0的情况。
由此可见,多数学生不太适应写出一个问题的算法用分步的方式。
2、用程序框图表述算法时的表现。
1)多数学生能够根据程序框图写出条件结构的算法和循环结构的算法,但他们不能画出循环结构的程序框图,不能用一个恰当的条件来终止循环。
2)学生能对简单的程序框图进行分析,而对稍显复杂的程序框图的分析就会出现混乱,如:输入三个数,然后输出其中最大的一个数的程序框图的算法。学生开始分析时,能够按照流程图逐步分析,但是到了最后,他们将程序框图里的各种结果相混淆。
对于循环结构的程序框图,添加正确的条件判断分支是难点;用自然语言描述的循环结构的算法中的两个程序框图(直到型和当型)也是学生困难的问题。
3、在用程序语言表述算法的表现。
1)学生对于赋值语句中变量的含义的理解有困难。
2)大多数学生能够正确分析出程序语言表述的条件结构的算法结果,但较难理解程序语言表述的循环结构的算法,特别是对其中的“计数变量”和“累加(累乘)变量”的理解。
3)从条件语句的程序语言分析情况看,还有部分学生常常忽略结束条件语,造成结构不完整,出现错误;另外,对于信息技术课程学习过的学生多数能分析出结果,而部分来自山区学校的学生由于未能很好地学习信息技术课程,尽管在信息技术课上涉及的语句很少,但从学习的结果看,信息技术的学习能够促进学生对用程序语言表述的算法的理解。
二、《算法初步》学习过程中学生出现的问题。
1)相关背景知识缺乏难予找到恰当的算法。如秦九韶算法,由于学生对秦九韶算法中反复执行的步骤不理解,因此,在寻找这个问题的算法上束手无策。
2)将实际问题模型化是学生学习算法的一个难点,多数学生解决问题时会模仿和套用已经存在、经过测试正确的算法,但在模仿过程中对问题之间的差异处理不当。
3)不能恰当地使用循环变量(计数变量、累加(累乘)变量)或其他条件终止循环,学生在模仿例题设计法的过程中,在循环变量的处理上,往往只考虑前几次循环的情况,对随后变量变化情况不再考虑或者不能想象在条件即将满足时循环变量的情况,从而导致设计出错误的算法,即使他们学完了循环的相关知识,但仍不能正确地处理循环变量接近临界点的情况。
4)学生能够做出正确的循环结构的程序框图,但是不能将程序框图用恰当的循环语句表述出来,由于有些学生所画的程序框图没有遵循教材上的“直到型”或“当型”循环的画法,因此,在将程序框图转换成程序语言时,他们不能处理其中的变化。
三、结论与建议。
1、结论:通过对《算法初步》一章的教学以及学生对这一章的学习过程的情况看,可以得出以下结论:
1)学生对算法的学习是比较感兴趣的,但同时又害怕学习算法,原因是算法是高中新增的内容,和信息技术密切联系,学生爱屋及乌,自然感到亲切,同时算法的学习又非常抽象,特别是循环结构的复杂的条件结构,学生较难理解,常常是束手无策、无从下手。
2)信息技术对算法学习有促进作用。
2、教学建议。
1)课时分配建议:算法的概念及意义、算法的自然语言描述是全章的基础,也是学生提升逻辑思维能力的较好训练,因此,建议把课标中的2课时改为4课时,算法的程序框图及算法的程序语言描述以及算法案例各3课时,小结复习1课时,全章共14课时,这样更有利于学生更好把握这一章的知识。
2)注意在其他课程内容的学习中不断渗透算法的思想,特别是用自然语言或程序框图表述算法。从对算法教学过程来看,学生对用自然语言描述一个算法还是容易理解的。
3)在算法的学习中,不要一开始就让学生追求算法的通用性,虽然教材中定义算法为:通常指按照一定的规则解决某一类问题的明确和有限的步骤。但是如果让学生一开始就能设计一个能解决一类问题的算法,这比较困难,学生学习的过程表明:
学生在寻找解决问题的算法时,往往是寻找能够解决问题的特殊算法,当特定的问题被解决后,他们才去考虑更一般的算法。
4)重视循环结构的教学,从教学实践中发现,学生在循环结构的处理上存在的问题最大,主要表现在对循环结构的初始状态和终止状态的处理上,以及终止循环结构的条件设计上;对于循环结构的分析,可以让学生模仿计算机的处理过程,沿流程线逐步执行指令,根据指令,在纸上记下循环运行的过程和变量值,特别是最前几次和最后几次的循环。
5)有条件的学校要让学生上机实践算法,从学生学习的过程表明,信息技术可以促进算法的学习,无论学生用自然语言、用程序框图或是程序语言描述算法,都难以从中发现自己设计过程中的错误,尤其在初学阶段。因此,给学生提供上机验证的机会,可以帮助他们检验自己算法设计的正确与否,进而增强学生学习算法的兴趣和积极性。上机建议至少三次,第一次安排在学生学完赋值语句、输入、输出语句和条件语句,完成作业后;第二次安排在学完循环语句及完成相应作业以后;第三次安排在整个《算法初步》一章学完以后,这样在上机时,学生可以将大部分实践用于对自己设计的算法的检验和修改分析上。
对“算法初步”教学的反思
为了更好学习算法,了解算法的应用,可打破教材顺序重新组合 把整章教材分为以下 4 大部分 1 顺序结构,2 条件结构,3 循环结构,4 案例分析。把所有的例题和习题也进行了重新组合。每一部分的每一道题都同时用 3 种不同的语言来表示,让学生通过认识,感知他们的联系区别。比如 顺序结构 这一部分,我就...
对“算法初步”教学的反思
算法是高中数学课程改革中的新增内容,又是学生在高中数学必修的知识。新增算法的内容,既反映时代的要求,也反映我国古代数学重视计算的优良传统。此外,算法教学有利于培养学生的逻辑思维能力 实践能力,发展解决问题的程序化能力,有利于学生理解构造性数学,为学生未来的学习特别是信息技术方面的学习提供支持。如何有...
算法初步教学详解
东莞群英学校梁斌玉。1.1算法与程序框图。1.1.1算法的概念。计算机的问世可谓20世纪最伟大的发明,它把人类社会带进了信息技术的时代,而算法是计算机科学的重要基础,就像使用算盘一样,人们要给计算机编制 口诀 算法,才能让它工作。要想了解计算机的工作原理,算法的学习是一个开始。做任何事情都有一定的步...