一、高中信息技术课程现况
现在高中信息技术课程使用的是新课改之后的实验教科书(经全国中小学教材委员会2005年初审通过),整个课程包括必修与选修两个部分,共六个模块,每个模块2学分。必修部分只有“信息技术基础”一个模块。它与九年义务教育阶段相衔接,是信息素养培养的基础,是学习后续选修模块的前提。信息技术科目的选修部分包括“算法与程序设计”、“多媒体技术应用”、“网络技术应用”、“数据管理技术”和“人工智能初步”五个模块。选修部分强调在必修模块的基础上,关注技术能力与人文素养的双重建构,是信息素养培养的继续,是支持个性发展的平台。在选修部分的五个模块中“算法与程序设计”是作为计算机应用的技术基础设置的;“多媒体技术应用”、“网络技术应用”、“数据管理技术”是作为一般信息技术应用设置的;“人工智能初步”是作为智能信息处理技术专题设置的。
二、《算法与程序设计》的重要性
在整个高中信息技术课程中,《算法与程序设计》是对学生要求较高的一个模块,虽然它只是一个选修模块,但同时它也是高中生在学习信息技术课程中最重要的一个模块,为什么这么说?
1.高中新课改之后,数学教材(必修3)中的第一章内容就是“算法初步”,这一章内容占了这本教材三分之一的篇幅,可见其重要性。算法的实现和验证要由程序设计语言来完成,而很多数学教师本身对程序设计不是很熟悉,所以,这部分知识可以由信息技术课程的《算法与程序设计》来衔接。
2.如果学生掌握了常用算法,再花些时间让他们学习简单的程序设计,这样可以培养学生解决实际问题的能力,还可以倡导他们运用信息技术进行创新实践,可以引导他们把
信息处理技术用在解决数算(数值和非数值),建立简单数学模型上。
3.算法是程序设计的灵魂,虽然它在大学计算机专业中才是必修课,但在高中课程中,我们应该提早让学生学习和掌握它,这有利于培养学生的逻辑思维能力。
三、《算法与程序设计》存在的问题
1.教学中存在的问题:
《算法与程序设计》中,算法知识可以在课堂上理论讲解,但要验证它的正确性和亲眼所见它的结果,还得设计程序来完成,可是,绝大部分学生根本没接触过程序设计语言,更谈不上程序设计了。现在我市(永州市)大部分高中学校每周只开设了一节信息技术课,有的学校甚至从高二年级开始取消了信息技术课。每周一节课,一个学期是无法完成这个模块的教学的,但如果花两个学期的时间来完成这个模块的教学,其他模块的教学就没有时间完成。
2.学习过程中出现的问题:
(1)对实际问题的模型化能力不足
对于一个理论上看上去是正确的、有穷的算法,上机实践的时候出差太多,很明显是学生的程序语言的语法知识和语法经验不足。例如有以下一个非常简单的程序段,求a除以b的结果,从算术上我们可以直接看出,a除以b的结果至少是3.3。
Dim a As Single
Dim b As Interger
a=10
b=3
print \"a除b的结果是:\"&a\\b
学生多次运行结果还是3,就是没有出现小数,难道是计算机出问题了吗?答案不是。那出错的原因在哪儿呢?是最后一行语句的“a\\b”中的“\\”运算符出问题了。“\\”运算符的功能是整除,它只取结果的整数部分,如果要得到更精确(带小数)的结果,我们应该使用“/”运算符。只是一个相似运算符的不同,就带来如此不同的结果,这说明学生对语言的相关语法知识掌握得不够。
(2)流程图与程序语句之间不能很好的转换
这个问题主要出现在循环结构中。很多学生能正确的画出ANSI流程图,不过,要他们用程序语句来实现的时候,就出现问题了,写出的语句不能正确对应流程图的步骤。
(3)对多重循环的执行顺序理解不足
当出现多重循环的时候,总是容易把外循环和内循环的变量变化次序弄错。
(4)相关数学知识的缺乏难以找到合适的算法
例如:给出三角形的三条边,编程求这个三角形的面积。如果学生连这个命题的数学
求法都不会,那他更难以描述这个命题的算法了。
四、教学建议
笔者从事高中信息技术教学有十多年的时间,同时还兼任了中职专业课程《C语言程序设计》教学,算法对《C语言》的重要性更不用说了,在此,深深感觉到《算法与程序设计》这个模块对高中学生的重要性,结合笔者的教学实践经验与《算法与程序设计》教学目标和学生的实际情况,特提出以下建议:
1.适当增加教学课时,理论与实践相结合
适当增加《算法与程序设计》的教学课时,让学生有较充足的时间去学生程序设计语言,增强和巩固他们的语法知识,减少他们在学习过程中所犯的功能性错误。同时,适时安排上机时间,让学生有更多的机会亲身体验算法的魅力。
千万不要轻视学生的上机实践。在理论课堂中,我们教师的授课方法再好,学生充其量也就是听懂了,但是,他会做了吗?给他机会,让他自己操作,如果他做出来了,就说明这个算法是他自己的了。这样可以更好的帮助学生理解知识,教师也可以从中挖掘学生的潜能,开拓学生的思维。
2.全体数学教师“程序设计”扫盲
算法在数学新课程中也占比较重要的地位,如果数学教师在数学课程中结合数学知识来讲解算法,那效率会更高。所以,笔者认为,对高中数学教师进行“算法与程序设计”的普及是非常重要的。
3.激发学生的学习兴趣
爱因斯坦说过:“兴趣是最好的老师”。身为教师,也是从学生时代过来的,更能体会这句话的含义。无论学什么,兴趣永远是第一重要的老师,当学生对所学的知识产生兴趣和热情的时候,就会从内心迸发出向往和求知的欲望,产生积极的、主动的学习动机。这时,学习就不再是一种负担,而是一种乐趣,一种享受,一种愉快的体验,学习的效率也会大大提高,那么,我们如果提高学生学习算法与程序设计的兴趣呢?
(1)情景学习
创建一个模拟的学习场景,使学生参与其中,有利于激发学生的学习主动性,加深学
生对知识的理解。以讲解约瑟夫算法(n个人站成一队,从第m个人开始数号,数到第s号者出列,问,最后一个出列的人编号是多少?)为例,笔者让6个学生站在教室的最前面排成一排手拉手。笔者说:如果从第一个学生开始数数,数到第三者出列,最后是哪一位出列?这时,学生就开始心里在想了,某某最先出,然后是谁,最后又是谁。这个过程,部分学生参与其中,下面的学生也会心里在计算,这样,全体学生都参与进来了。然后,笔者提示学生用链表知识来描述这个算法,有几个同学很快就写出了代码。有的同学事后还问:老师,能不能用数组来解决这个问题呢?看,学生的积极性很高嘛。
(2)程序小设计,激发学习兴趣
在学生刚接触新知识时,可能会有一种好奇心,这是学生在接触新事物时的一般反应。然而,随着知识难度的加深和时间的推移,学生的学习积极性可能会下降,甚至有可能还会产生抵触情绪。因此,教师应该想办法要让学生保持他们初学时的那种热情和积极情绪。
例如,我们在讲解循环的时候,如果只是一味讲解它的语法实现,说它如何如何重要,并且,这个知识点讲解的时间也会比较长,有些学生可能会觉得很枯燥,有些学生会越来越听不懂。这时,我们可以设计一个很实用的小程序,比如运动会的成绩计算程序,我们把循环用在成绩输入过程中,让学生觉得这个很实用,他们自然就觉得学习循环还是有价值的。
4.鼓励学生之间相互交流,保持师生间的沟通
交流是人际间的交往、对话、沟通的活动,是人际间增进彼此了解、沟通的重要方式。交流活动在信息技术教学中有着重要地位。一方面,学生之间的交流可以给学生提供表达自己成果的机会,同时,也可以分享他人的学习成果。通过相互交流,相互帮助,学生会更加深刻的理解自己所学的知识。另一方面,教师与学生之间的交流,可以促进师生之间的感情,营造和谐的气氛,同时,也让学生更有自信心。他们会在想:老师好重视我哦。
有意的树立学生典型,这样会使多数同学你追我赶,保持学习活力。
对于学生所提的问题,一定要耐心、细致的解答,那怕他们的问题是多么的幼稚。特别是在上机实践的时候,对于学生所犯的每个小错误都不要放过,一定要及时指出,并让他们思考,直到他们改正过来。
五、总结
新课程的改革对我们教师自身的素质提出了更高的要求。特别是信息技术学科,这门学科的最大特点就是变化速度快,所以,作为信息技术教师应该不断地学习,不断地更新教学观念,要有着终身学习的意识和能力,使自己永远站在信息技术教学的最前沿。