《2022年《算法与程序设计》教学探析期 .pdf》由会员分享,可在线阅读,更多相关《2022年《算法与程序设计》教学探析期 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【摘要】在高中“算法与程序设计”模块教学中,算法的设计以及运用程序设计解决问题的方法与思路,与学生原有的知识结构和解题经验有较大差异,使得学生的学习存在较大困难。教师应从生活实例出发,激发学生的学习兴趣;降低编程起点,提高学生的学习信心;引导学生通过程序阅读,学习他人编程经验;强化算法的分析与设计,培养学生分析问题与解决问题的能力。【关键词】算法与程序设计;教学探析【中图分类号】G40-057【文献标识码】A【论文编号】1671-7384(2013)11-0050-03“算法与程序设计”是普通高中信息技术课程中难度较大的一个选修模块。照本宣科的讲授只能使学生死记硬背程序,这种缺乏理解的学习导致
2、了学生进一步学习的困难,更谈不上对所学知识的灵活运用。因此,如何改变学生的思维方式、如何组织教学以使学生真正理解算法并学会运用程序设计解决实际问题,值得我们探索和研究。从生活实例出发,激发学生的学习兴趣从教育心理学的角度来说,兴趣是一个人倾向于认识、研究并获得某种知识的心理特征,是可以推动人们求知的一种内在力量。学生对某一学科有兴趣,就会专心致志地钻研它,从而提高学习效果。以下案例正是从学生兴趣出发,激发了学生参与的热情。案例 1:遥控机器人窗体上是一张机器人图片以及“向上”、“向下”、“向左”、“向右”四个按钮。怎样让机器人听从我们的指令动起来呢?以向上为例,我们看到机器人图片的Top 属性
3、是1000,在“向上”按钮的单击事件中,可以写这样一句代码:Picrobot.Top=900。运行程序,单击“向上”按钮,机器人听从指令向上挪了一部分。再按一次,机器人怎么没有反应?怎样修改程序才能让机器人根据指令不断地向上移动呢?学生思考,得出程序代码:Picrobot.Top=Picrobot.Top50。对于机器人,学生都有种神秘感,往往觉得不可思议,但是又想探索。在教师的引导下,学生的本能兴趣转化为内在学习动力,在实现对机器人控制的过程中,加深了对控件、赋值语句和变量概念的理解。降低编程起点,提高学生的学习信心没有人在学习程序设计的初始阶段就能成为编程高手。然而在程序设计教学中,教师常
4、常一开始就要求学生编写完整的程序。导致很多学生无从下手,学习的自信心受到了严重打击。因此,我们应降低编程起点,将学生引入门。一方面,在问题的选择上,尽可能使用学生能够通过已有知识和经验分析出解决方法的问题;另一方面,可以采用案例教学法,从模仿典型程序开始,在代码模板上补充关键代码后即可调试运行,从而体验成功的喜悦,增强学生学习的信心。下面就是一个使用案例教学法的例子。案例 2:循环结构 1 针对 s=1+2+3+,+100 问题,引导学生观察累加求和的过程:s=s+数字。引出如果用变量 i 表示数字,整个计算过程是在重复执行若干个同样的操作:s=s+i。如何让计算机自动重复上述过程呢?教师呈现
5、用循环语句解决问题的程序,接着让学生模仿累加程序,完善计算s=100+101+,+200、s=12+22+32+,+102、p=1*2*3*,*9 四个式子程序空白处的代码。4 个任务的难度依次递增,第1 题要求分析出循环的初值、终值;第2 和第 3 题要求分析出循环体;第4 题要求同时分析出循环的初值、终值和循环体。学生完成后,教师展示学生程序,引导学生归纳总结出 For 循环结构的一般格式。然后提出“计算s=10+20+30+,+100”的任务,让学生名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 3 页 -在一般格式的指导下,独立编写程序解决问题。牛顿说过:我之所以能取得现
6、在的成就,是因为我站在巨人的肩膀上。在案例教学法中,案例和代码模板就是“巨人的肩膀”,学生通过补充程序模板中的关键代码,逐步认识For循环结构,并在多个“个”的尝试中,找出隐藏在“个”背后的规律性内容,归纳出For 循环结构的一般格式,进而在一般格式的指导下编写程序,解决重复执行“类”问题。在此过程中,学生的编程思维和分析能力获得了快速的提高,提高了学习程序设计的信心。通过程序阅读,学习他人编程经验学习程序设计,一个重要而有效的方法就是阅读。阅读书中的例题、软件开发环境中的范例、网络中的开放源代码以及自己编写的程序。克努特曾说过:通过阅读他人的程序获得技巧,是极其重要,但在许许多多的计算机课程
7、中,这样的训练却可悲地被忽视了,因此导致了计算机被极其糟糕地低效使用。通过阅读大量的“示例”程序,可以加深对各种语句语法和语义的理解,从中发现、总结别人解决问题的方法,积累编程的经验以及实现基本算法的代码段。怎样阅读程序呢?对于一篇文章,通常首先采用粗读的方式进行整体认知,了解文章主要写的是什么,留下总的印象;然后再进行精读,深入到文章的局部,留心遣词造句,赏析精彩语段,揣摩文章的谋篇布局。阅读程序和阅读文章有相通之处,对于一些较为复杂的程序,应该先进行整体分析,从整体上摸清程序的架构,再对各个部分的代码逐一进行跟踪阅读。1.整体分析这一阶段,相当于文章的粗读,需要从整体上把握程序的组成部分、
8、各个部分的大意以及连接方式。我们如何去了解一个语句块的作用呢?主要有三种方法:一是依据经验,也就是我们已经掌握的各种算法和语句的关键点来判别;二是看注释,一个高品质的代码都会有注释,对我们理解语义有方向性的指导作用;三是靠猜测,我们根据过程名以及参数名,能对这个过程的作用略知一二。如果有必要,则可以到过程的定义中,找到某些具有特征的操作,以证实自己的猜测。2 任何一个复杂的程序都可以分解为三种基本结构:顺序结构、选择结构和循环结构。每种结构只有一个入口和一个出口,而各个结构之间的连接方式有两种:积木式连接和嵌套式连接。积木式连接是一个结构的出口与另一个结构的入口连接;嵌套式连接是在一个结构的内
9、部嵌套另一个结构。一般来说,我们应先分析出程序中积木式连接结构,再找出这些结构中的嵌套式连接结构。借助于流程图、伪代码等描述算法的工具,可以根据源程序画出反映程序结构的流程图,这对理清思路、分析程序结构有很大的帮助作用。3 下面我们先用整体分析法阅读一段代码:案例 3:Private Sub cmdGcd_Click()Dim a As Integer Dim b As Integer Dim r As Integer a=Val(InputBox(输入 a)b=Val(InputBox(输入 b)Do While b<>0 r=a Mod b a=b b=r Loop 名师资料总
10、结-精品资料欢迎下载-名师精心整理-第 2 页,共 3 页 -Print 最大公约数为:;a End Sub 从命令按钮名和输出提示信息可以知道,这是一个求两个数的最大公约数的程序,程序结构如图2 所示。2.跟踪阅读如果要详细了解各个部分是如何运行的,就要对语句进行跟踪阅读,相当于文章的精读。跟踪阅读就是用人脑模拟计算机的执行过程。对于顺序结构,阅读不成问题。对于选择结构,关键是要搞清条件和语句的关系,当有两个选择结构连接时,要分清楚是积木式连接还是嵌套式连接。对于循环结构,可以通过对循环体内的语句逐一跟踪阅读,分析循环结构的执行过程。这时,可以借助于纸笔,用列表的方法将循环执行过程中各变量的
11、值一一记录下来。4 在案例 3 中,当输入48,28(即 a=48,b=28)时,程序执行的过程如下表所示:程序阅读的关键是代码的积累。“读书破万卷,下笔如有神”,程序读多了,自然容易借鉴别人的编程经验和方法。强化算法设计,培养学生解决问题的能力程序设计的核心是算法,语言只是表达工具。用程序设计解决问题,关键是要找到解决问题的算法。只要算法正确,就可以用任何一种语言编写程序。对于初学程序设计的学生来说,接触的问题并不复杂,相应算法也较简单。很多学生看到问题后,不进行细致的分析和设计,粗粗一想就开始动手,很简单的问题往往写出一大堆代码,自己也说不清解决问题的方法和过程。案例 4:编写程序,实现成
12、绩统计功能。通过InputBox函数输入50 个学生成绩。当成绩大于等于85 时,为“优秀”等级;成绩大于等于60 且小于 85 时,为“及格”等级;当成绩小于60 时,为“不及格”等级。要求统计优秀人数、及格人数及不及格人数。学生解决这个问题的过程,往往只是按照题目的表面意思进行处理,首先执行一次循环输入数据;然后扫描三次数组,分别统计优秀、及格和不及格人数。俗话说:磨刀不误砍柴工。我们应该怎样进行算法设计呢?在这个案例中,重复扫描使得程序效率不高。其实,最简单的算法是只循环一次,输入数据后立即使用多分支选择结构对输入的数据进行判断,分别对优秀、及格及不及格人数进行统计。算法分析前,学生为自己编写的程序沾沾自喜,然而进行算法分析后,学生意识到自己程序的缺陷,较好地体验了算法对提高程序效率的作用,理解和掌握了隐藏在问题背后的知识,提高了解决问题的能力。综上所述,算法与程序设计教学需要我们在教学实践中不断地总结经验教训,密切结合学生的自身情况,引导学生多阅读、多思考、多实践。让学生在算法的指导下,在不断完善和调试程序的过程中,潜移默化地掌握相关知识,养成缜密严谨的科学态度,进一步提高逻辑分析能力、发散思维能力以及发现并解决问题的能力。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 3 页 -