高中《算法与程序设计》模块教学策略探究株洲市第二中学刘辉琴杜新宇【摘要】《算法与程序设计》是高中信息技术课程中的选修模块之一。本模块是培养学生思维能力的一门课程,理论性、实践性强,程序代码枯燥、难懂,教学难度大。笔者在教学实践中不断探索如何找到一些比较新颖而有效的教学策略,尝试通过应用类比,与数学课程的整合和设计游戏案例等办法在教学中激发学生兴趣,指导学生理解算法与程序设计的相关概念,培养学生的逻辑思维能力以及分析问题、解决问题的能力。【关键字】算法与程序设计VisualBasic类比法学科整合游戏案例【正文】《算法与程序设计》不仅是一门注重实际动手探究能力的信息技术课程,有时候更像是一门考验学生逻辑思维能力的数学课程。其中一些概念和术语对于学生们来说是非常陌生的,有的还很抽象、很深奥。如何将这些深奥而晦涩的理论深入浅出地阐述出来,让学生易于理解,乐于接受这些高难度知识内容。笔者通过以下尝试,探究应用于本模块中的教学策略。一、类比法在《算法与程序设计》模块教学中的应用探究类比法就是在我们学习一些十分抽象地看不见、摸不着的量时,由于不易理解,我们就拿出一个大家能看见的且与之很相似的量来进行对照学习。以具体的事物把抽象的理论、概念形象地表达出来,借以增强感染力和说服力,让学习者更好的理解和掌握。在《算法与程序设计》教学中,最大的困难正是对一些抽象的理论和概念的理解。这些内容如果只凭教师一张嘴反复讲述,教师说的口干舌燥,学生听得头昏脑胀,索然无味,教学效果很差。而类比法的应用,可以使抽象的知识变得形象化、趣味化,起到了“一语道破天机”的效果。如果恰到好处地将一些形象生动的类比运用到《算法与程序设计》教学中,不仅有助于提高学生的学习兴趣,而且还能达到帮助学生理解和记忆的目的。比如在2.4程序的循环结构一节的教学中,要让学生理解循环的定义,我用日常生活中的“吃包子”事件来类比。假如我们今天早餐吃的是包子,那么有可能出现以下三种情况。第一种情况:你需要控制体型,规定自己早餐只吃3个包子,那么你吃完一个再吃一个……吃完三个就不吃了——这种已知重复执行的操作次数(循环次数)的情况我们一般使用for循环。第二种情况:当你觉得肚子饿,吃一个包子,还是饿,再吃一个,……当你肚子不饿了就不吃了——这种先判断再执行的循环我们称为当型循环。第三种情况:你先吃一个包子,还没吃饱,再吃一个,还没吃饱,再吃一个……直到吃饱了为止——这种先执行后判断的循环为直到型循环。通过这样有趣的类比,让学生在欢快的气氛下,理解并记忆关于循环结构程序的特点以及不同形式的循环语句的区别。在讲解“For循环变量=初值To终值Step步长”这个循环语句的语法时,以日常生活中的走楼梯作类比,将For循环比作走楼梯,楼梯阶数已知,并从下往上编号1,2……n,因此用For循环。初值是起始阶编号,终值为终止阶编号,步长就是看你走楼梯的时候每次是跨一阶还是几阶;步长为正数表示上楼,步长为负数表示下楼。以上面的类比来说明以下几个For循环中的要素:Step步长的应用,初值终值的大小关系,循环体的含义,循环变量的最后取值等关键问题,经过类比,学生对循环结构程序的理解和初步应用都有了更好的体会。讲到多重循环的时候,让学生参考套娃(一种俄罗斯特产木制玩具,由多个一样图案,一样结构的空心木娃娃一个套一个组成)的形式与结构,增加感性认识,让学生更好的理解循环嵌套的概念。简单来说,将类比法应用于《算法与程序设计》模块的教学有以下几个意义:1、可以激发学生的学习兴趣、培养学生的思维能力;2、易于达到教学目的,提高学习效率;3、培养学生良好的性格,促进师生之间的情感交流。二、《算法与程序设计》与数学课程的整合教学法的探究高中数学必修三中第一章内容为“算法初步”,我们可以设法将《算法与程序设计》与数学必修三有机结合起来。使学生对数学必修三中算法部分的内容进行一个知识的储备。在学习Do循环语句时,选择数学必修三教材中的实例:应用“辗转相除法”求两数最大公约数为例。通过他们自己亲手编写程序、演示程序的过程中探索和发现规律,逐步建立应用信息技术解决数学问题的学习形式,同时也开拓了学生的逻辑思维能力,锻炼和培养了学生分析问题、解决问题的能力,进一步促进了信息技术和数学课程的整合,推动信息技术在数学学科学习中的应用。例:应用“辗转相除法”求两数最大公约数。自然语言描述算法:S1:输入两个正整数a,b;S2:r=aMODbS3:若r=0,则输出b,程序结束;否则,a=b,b=r,执行S2.流程图描述算法:开始输入a,br=aMODba=bb=rr=0?输出a结束是否通过这一例题的分析,绘制流程图,设计用户界面,并编写代码,从分析问题到解决问题一步步完成下来。让学生体验了应用信息技术解决数学问题的全过程,也锻炼了学生的逻辑思维能力,从而理解了程序的作用,还让学生对学习算法与程序设计产生了浓厚的兴趣。三、游戏案例在《算法与程序设计》模块教学中的应用探究由于《算法与程序设计》模块枯燥难学的特点,如何设计案例既能激发学生的学习兴趣又能让学生有效的掌握相关知识呢?在教学活动中使用游戏案例不失为一个不错的尝试。在选择结构if语句的教学中,我设计了一个“石头剪刀布”的游戏案例。和学生一起分析“石头剪刀布”的游戏规则,从人机对话的角度,逐句剖析计算机编写的锤子、剪刀、布游戏程序(见程序剖析实例),让学生了解其结构组成和具体作用,懂得计算机程序设计的基本思想:按照人类解决问题的思维方法,进行人机对话。计算机能够听懂的话,就是我们输入的命令。这样,就有利于VB代码描述:PrivateSubCommand1_Click()a=Val(Text1.Text)b=Val(Text2.Text)Dor=aModba=bb=rLoopUntilr=0Text3.Text=aEndSub消除计算机编程的神秘感,激发学生学习计算机编程的兴趣。我们将三个不同手型用3个数字1,2,3来代替,这样就使我们的编程更容易实现。游戏界面如下:对于“我”出剪刀的情况,在师生共同努力下对按钮单击事件编写的代码如下:PrivateSubCommand2_Click()RandomizeTimera=1Picture2.Picture=LoadPicture(E:\石头剪刀布\剪刀.jpg)b=Fix(Rnd*3)+1Ifb=1ThenPicture1.Picture=LoadPicture(E:\石头剪刀布\剪刀.jpg)Ifb=2ThenPicture1.Picture=LoadPicture(E:\石头剪刀布\石头.jpg)Ifb=3ThenPicture1.Picture=LoadPicture(E:\石头剪刀布\布.jpg)c=b-aIfc=1ThenLabel4.Caption=你输了!Ifc=2ThenLabel4.Caption=你赢了!Ifc=0ThenLabel4.Caption=不输不赢!EndSub对于另外两个按钮的单击事件代码,让同学们思考讨论如何编写另外两段程序。选择这个儿时人人都玩过的游戏作为教学案例,极大的激发了学生的学习兴趣,在分析与代码设计的过程中学生体会了程序设计的过程就像我们组织游戏一样,让学生领悟到编程就像跟计算机对话一样,这正是程序设计的精髓。编程首先要弄清楚游戏规则,对游戏过程有清晰的思路,然后把清晰的思路用语言描述出来,这就是程序设计。高中《算法与程序设计》模块的主要教学目标是为了让学生了解程序设计中的面向对象编程和结构化程序设计等基本思想,培养程序设计过程中所需要的一些基本能力。笔者在保护学生学习积极性的前提下,按照学生的认知规律组织教学,合理运用多种教学方法,灵活地、创造性地驾驭教学过程,激发学生的兴趣,培养学生的逻辑推理思维能力、分析问题、解决问题的能力以及创新能力。【参考文献】[1]《信息技术教学研究与范例》电子工业出版社[2]《VB程序设计案例教程》,机械工业出版社》[3]《信息技术教育学》,周克江,中国电力出版社