信息技术支持下的算法案例及反思_第1页
信息技术支持下的算法案例及反思_第2页
信息技术支持下的算法案例及反思_第3页
信息技术支持下的算法案例及反思_第4页
信息技术支持下的算法案例及反思_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信息技术支持下的算法案例及反思【摘 要】 算法思维具有机械操作的特点,算法学习是一种数学活动,因此算法教学要重视信息技术支持下的算法实现。本文以Excel为技术平台,认识到算法实现有利于学生认识、理解算法,有利于辨析、建构算法,有利于优化、创新算法。在教学实践的基础上,认识到:理论教学与实践操作要作适当的动态平衡;算法教学要加强学科知识内部和学科间的整合;算法教学要讲算法、重算理,进行算法化教学。【关键词】 Excel 算法 算理 整合作为一种为解决给定问题而需执行者去一步一步实施有穷操作过程的描述,算法是求解一个问题所需步骤的提纲,是对解题过程的抽象和精确描述,“算法思想已经成为现代人应具备

2、的一种数学素养”,在新课程改革中算法正作为数学的重要组成部分而逐步“深入人心”。笔者以为算法教学一方面要让学生体会算法中的算理,因为算理是算法的灵魂,同时也要让学生学会算法的适度形式化,学会算法的实现。一方面算法思维与通常的数学思维有迥然不同的特点,通过计算机的算法实现有利于学生认识和接受算法思维,体会到算法的力量和操作机械的特点。另一方面,算法学习是一种数学活动,“实践操作应成为学生学习的重要环节”,就像游泳本身也有理论,但更重要的是他必须下水去练习,老是站在陆地上是永远也学不会游泳的,因此,“有条件的学校,应鼓励学生尽可能上机尝试各种算法”事实上,算法设计的优劣需要上机检验,算法设计的改进

3、需要调试修正,更重要的是要培养学生利用数学理论在计算机上实现问题解决的能力。本文将以Excel为平台谈谈如何在信息技术支持下进行算法教学。一、Excel环境介绍Excel作为一种普及性的软件,内置有丰富的函数,长于数据分析,并嵌有功能强大的宏语言作为后台支撑,从而成为连接算法和计算机技术的一个理想平台。Excel工作表有 “趋势填充”和“相对引用”功能,通过双击或拖动即可产生结构相同的公式或大量的数据,能有效减少重复性劳动;与此同时,VBA(Visual Basic for Application)是Excel自带的一种程序设计语言,它具有一般程序设计所具有的功能,具有语法简单、通用性强的特点

4、;两者均可以十分方便地实现算法。值得指出的是,VBA程序语言的实现在Excel中是以宏的形式出现的,其调用执行步骤为:在Excel工作表中,选择“工具/宏/Visual Basic编辑器”,进入VB编辑器窗口;在VB编辑器窗口中选择“工具/宏”,在弹出的对话框中,在“宏名称”栏内输入宏的名称,点击“创建”,出现宏主体语句Sub和End Sub,输入相应Excel VBA代码;选择“运行/运行宏”或按F5运行程序实现算法。作为一种特定的程序语言,Excel VBA有其自身特定的语法规则,与伪代码有一些差异,下表即为两者间的重要不同:分类伪代码VBA程序语句含义赋值语句m20m=20将20赋给变量

5、m输入输出语句Read aa=InputBox( )输入a的值Print aMsgBox( a )输出a的值循环语句For i From 1 To 100End ForFor i=1 To 100Next iFor循环语句While x10000End WhileWhile x<=10000WEndWhile循环语句Excel VBA中算法的输入输出可借助对话框函数InputBox、MsgBox来完成,也可借助于单元格属性cells(row,column)来完成,其中row为单元格的行号、column为单元格的列号,例如语句cells(1,2)=0即表示将B1单元格赋值为0,后者可以非常

6、方便地将后台程序运行的结果显示在前台工作表中。二、基于Excel的算法实现教学案例21、认识、理解算法如前所述,算法思维的机械性特点往往有“不可接受性”,借助信息技术实现算法可以让学生体验编程过程,创立程序运行的“情境”,真实接触到计算机的“思维”过程。案例1、已知,试设计一个程序交换的值。图2-1图2-2图2-3初学算法语句,学生受数学中变量的影响,往往对算法变量的理解有一定的不可接受性,从而会得到右图所示的伪代码1-1,将其转换成VBA语言运行后会发现变量值均a=2:b=5a=bb=acells(1,1)=”a=” & acells(1,2)=”b=” & bVBA 1-1

7、10 a220 b530 ab40 ba50 Print a,b伪代码1-110 a220 b525 ta30 ab40 bt50 Print a,b伪代码1-2为5,并没有得到我们想象的结果;通过对变量值进行“追踪”可以发现,原来在语句30中变量的值赋给后的值便更新为5了,通过计算机实现创设的情境对学生的震憾力是可想而知的,学生在真实的程序运行的“情境”认识到变量可以看作一个存放数据的盒子,而且是最多只能存放一个数据的盒子,当一个新数据放进去时,原来的数就被“挤”了出来。进一步的探究中,学生会认识到,交换两个变量正确的做法是设置一中间变量,用来暂时储存原先变量的值,修改后的伪代码为1-2。案

8、例2、根据图2-1的框图,列式写出最后C的值。本题的变量较多,计算量也较大,学生往往很难“想象”结果,借助于Excel工作表强大的数据统计功能,很容易就能实现算法,从而帮助学生理解其中的算理。具体设置如下:将单元格A列、B列、C列、D列分别作为变量、,在第二列相应单元格分别输入0、1、1、0作为相应变量的初值,在单元格A3、B3、C3、D3中分别输入公式“=A2+1”、“=B2+2”、“=2*C2”、“=D2+B3*C3”,选中单元格A3、B3、C3、D3按住鼠标左键并向下拖动填充柄,最终算法实现效果如图2-2。在信息技术支持下,可以非常方便地帮助学生分析算法、理解算理,并且通过快捷键“ctr

9、l+”可以方便地实现数据与对应公式的切换,通过对相应公式(如图2-3)的查看可以帮助学生进一步理解相应的算法。22、辨析、建构算法算法教学应提倡算法化,鼓励学生由实例的考察主动地去总结出相应的算法,经历一个由不那么精确、不那么完整到比较精确、比较完善的发展过程,使“算法”不仅仅是宣布某个结果,而且也是学生主动建构的结果案例3、设计求满足条件的最小正整数的算法。本题由于的值事先不知道,故可使用While循环来实现算法,循环中可设置累加变量、计数变量(见伪代码3-1)。我们知道,影响循环语句结果的三要素是初始值、循环条件和循环体。本题的循环条件可设置为“”,但循环体中的语句可以设置为,也可设置为,

10、循环体中语句的顺序不同即影响变量初值的赋予(前者为,后者则是),也导致输出结果的不同(前者为,后者则是)。要想帮助学生透彻理解程序,必须从“变量的变化”入手,分析清楚每次循环中变10 20 While 30 40 50 End While60 Print 伪代码3-1 循环初值循环条件循环体结果输出n=0:S=0While S<=105n=n+1;S=S+n2cells(n,1)=ncells(n,2)=SWendVBA 3-1n=1:S=0While S<=105S=S+n2 ;n=n+1cells(n,1)=Scells(n,2)=nWendVBA 3-2量值是如何变化的,借助

11、于信息技术,设置相应的VBA程序(前者见VBA3-1,后者见VBA3-2),并在循环体中增加变量的输出,借助于cells(row,column)语句将变量结果输出到工作表中,从而便于查找出错环节并加以修正,在分析算法过程中可起到事半功倍的效果。事实上,数学中有很多相当精妙的算法公式,如等,这样的公式的合理性显然已超出学生的“想象”,通过设置算法由计算机来“算”,一方面可以提高学生算法设计能力,更能感受到算法的力量,这显然是“纸上谈兵”所难以企及的。23、优化、创新算法算法的形成和发展,需要进行不断地感知、观察、抽象、识别、归纳,经历发现算法、利用算法、选择算法、推广算法等一系列思维过程,在“做

12、“的过程中感受算法学习是一种充满探索、发现、创造的活动。案例4、写出求的一个算法。伪代码4-2伪代码4-1伪代码4-3本题可可以考虑用For循环,用变量(初始值设定为0)来接受累加结果,问题的关键在于循环体如何构造,因为本例中为奇数时赋值为,为偶数时赋值为,从而容易想到构造相应算法(伪代码如图4-1),在将伪代码转换为VBA语言实现过程中,有学生将算法作了改进,将与分开处理采用If语句构造循环体(其伪代码见图4-2);更有学生考虑到为整数),循环体中语句设计为(伪代码见图4-3);从而达到了优化算法的效果。三、几点教学反思31、理论教学与实践操作要作适当的动态平衡算法教学要重视算法实现,通过上

13、机调试检验算法设计的优劣、修正改进算法、提高问题解决能力。但应作适当的平衡,不能把算法内容简单处理成程序语言的学习或程序设计,两者间固然有密切的联系(算法是程序语言的“灵魂”,程序可以作为算法的一种描述),但在教学重点上又有所不同,算法的教学重点在于体现算法的思想,而程序语言教学重点是让学生学会编程,在算法教学时可以充分结合程序语言教学,鼓励学生尽可能把自己的算法在计算机上实现,但不可本末倒置。32、算法教学要加强学科知识内部和学科间的整合一方面要加强学科间的课程整合,算法的描述要注重适当形式化,我们的思考是伪代码能否尽量与程序语言相吻合,这样可以方便学生的算法实现(如现有的苏教版教材中,将伪

14、代码转换成VBA语言就是算法实现的一大障碍),事实上本着教为不教、学为创造的原则,只有将信息技术交到学生手中,才能最大发挥信息技术的作用与此同时,数学课程中的算法初步和信息技术课程中的程序设计内容息息相关,但在课程内容和技术实现载体上均大相径庭,这也造成了算法教学一定程度的混乱。另一方面也要加强数学课程内的知识整合,算法教学中可以适当渗透数列知识,因为递归是设计和描述算法的一种非常好的工具,递归的关键在于找出递归方程式和递归终止条件,学生在理解和设计算法(特别是循环语句)时,由于缺少数列知识作为支撑,往往很难得出相应的递归方程式,至于递归终止条件更是似是而非33、 算法教学要讲算法、重算理,进行算法化教学算法是解决问题的操作程序,算理是算法赖于成立的数学原理,如果说算法是一种工具,那么算理则是一种观念,具有更丰富的数学思想方法、更多的人文精神,具有更大的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论