粤教版高中信息技术选修《优雅的算法世界——算法与程序设计前言》说课设计附反思
- 格式:doc
- 大小:54.00 KB
- 文档页数:7
课题:优雅的算法世界——《算法与程序设计》前言引入各位评委上午好。
记得有句歌词是:“不是我不明白,这世界变化快”,现在我们每天不得不和一大堆的密码打交道,什么电子邮箱、QQ、论坛、博客,当然还有各种银行卡密码等,密码多了容易忘记。
我手中拿的是一张银行卡,有一次我急着用钱,但就是不记得密码了,在ATM机上连着试了几次都取不出钱来,机器警告我不允许再试了,否则吞卡,为什么会这样呢?今天我的说课就从“银行限制试探密码次数”说起,题目是——优雅的算法世界。
一、教材内容分析1.《课标》对本模块的要求《算法与程序设计》是《普通高中信息技术课程标准》中的选修模块,其目的在于“使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题”,要“引导学生注意寻找、发现身边的实际问题,进而设计出算法和计算机程序去解决这些问题”。
2.简析教材粤教版《算法与程序设计》第一章《揭开计算机解决问题的神秘面纱》从华南太阳能设备厂的生产方案入手,分三个小节,主要讲解了计算机解决问题的过程、算法和算法的描述、程序与程序语言等,其中“算法和在解决问题中的地位和作用”是第二节中的部分内容,通过比较了两种求“最大公约数”算法的效率来强调算法的重要性。
二、学生分析高中学生已经有了一定的数学基础,甚至数学选修课里面也有“算法”的内容,他们的抽象思维能力也比初中学生好得多,但选修算法这门课程的学生仍然不是很多,也许是因为目前初中小学《信息技术》课程几乎没有程序设计内容的缘故吧,所以很多学生对编程不太理解,不知道这门课教什么内容,还有的学生听说编程很难,很枯燥。
正所谓“万事开头难”,所以上好第一节课对学生后面课程的学习是非常重要的。
1.设计方向记得初中物理第一节课,一位老教师走了进来,手里拿了很多好玩的东西,如单摆、不倒翁、音叉等等,我们在尽情的玩耍中体会到科学的神奇,刺激了我们学好这门课程的欲望。
这节课给我留下了深刻的印象,以至于到现在还历历在目,这些看似漫不经心拿来的玩具却在我们后来所学的热、电、声、光等课程中都用到了,所以我想能否结合《课标》的要求和目前教材的编写思路,在本课程的第一节课上一节引导课,以学生身边的实际问题入手,结合一些益智类游戏,一方面可以激发学生对算法和程序设计内容的兴趣,另一方面又对本课程的后续内容起到一个高屋建瓴的作用。
2.教学目标及教学重难点【教学目标】知识与技能:1)了解什么是算法及算法在问题解决中的地位和作用。
2)能描述穷举法的基本思想。
3)了解顺序查找算法、对半查找算法和递归算法。
4)尝试VB软件的基本操作,模仿“猜100以内整数游戏”的算法写出“猜4个数”游戏算法的主要步骤;过程与方法:1)能从生活中“银行限制试探密码次数”的现象出发,在老师的指导下,了解用穷举法解决问题的基本思想;2)能通过BBS获得问题的有关要求和提示信息,在体验游戏之后,能在BBS上发表观点、交流思想、开展合作;情感态度价值观:在游戏的过程中,体验到算法是有用的、有趣的,激发对《算法和程序设计》这门课程的求知欲。
【教学难点】递归算法【教学重点】算法在问题求解中的地位和作用。
课前准备1.为了能让学生更好的交流和分享心得,最好所有的学生用机都能连上因特网,并且每位学生已在班级论坛里注册了;2.为了共享教学辅助资源,要确保所有学生机都能连接到教师机。
3.为了使演示能顺利进行,要确保“教学控制系统”能正常使用(一).引入师:大家看到老师手上拿的一张交行的银行卡,有一次我取钱的时候不记得密码了,于是就将常用的密码一个一个的去试,但试到第三次的时候,ATM柜员机警告不允许再试了,否则将没收磁卡,请问:“银行为什么要限制尝试密码的次数”呢?生:为了安全,以免银行卡丢失的时候,别人取走了你的钱。
师:请注意老师的问题,为什么要限制次数呢?生:因为如果不限制次数的话,试多了,就可以试出密码来。
师:如果现在换作你,无论试多少次都可以,你怎么获得密码?通常我们银行卡的密码是六位数。
生:一个一个的去试,先是000000,然后000001,一直到999999,总有一个密码是对的。
师:我可不是要大家以后捡到了别人的卡都去试啊(笑),只是讨论这种方法的可行性。
刚才大家的讨论说明了,如果不限制次数,六位数的密码我们最多试一百万次,一定能够获得相应的密码,所以幸好银行限制了次数,而且也限定了每天所取的金额不超过5000元,这样较好的保护了我们的利益。
(二).算法的基本概念1.穷举法和算法的基本概念这学期我们要学习的内容是《算法与程序设计》,提到算法,大家可能觉得很神秘,很高深,其实我们刚才试密码的方法就是一种最简单、最实用的算法,它的名字叫“穷举法”。
就是列出所有可能的情况,一个一个判断是否符合问题所要求的条件,从而得到问题的答案。
那什么是算法呢?通俗的说,“算法就是用计算机求解某一问题的方法”。
人们常说,数学是思维的体操,数学之美,是智慧之美,算法与之有异曲同功之妙。
因为算法不仅有数学的渊源,她更是计算机世界的核心之一,算法里的每一次跳转就是她飞扬的舞步,所以说算法的世界,是优雅的世界。
2.对半查找算法举例接着说上面的那个银行卡密码的游戏,请你先想好一个6位数的密码,然后让电脑去猜,如果你每次只告诉电脑猜得对或“不对”,那么从理论上来说,电脑可能要猜一百万次才能猜中你的密码,这就是刚才我们所说的穷举法。
但如果你每次告诉电脑它所猜的数字比你的密码是大了还是小了,然后电脑再猜下一个数字,不断重复这个过程,直到电脑猜中你的密码为止,请问电脑最多要多少次才能猜中一个六位数的密码?请写出电脑的算法。
我们在玩这个游戏时,可以简化成甲乙两人猜一个100以内的整数,甲出题,乙来猜,甲来说“大了”或是“小了”,或是“猜中了!”那么乙猜数的过程就是电脑猜密码的算法!这样学生很容易想到用对半查找法去解决问题。
根据游戏的过程,填补下列算法的空白处(见下表)。
切换到代码窗口,比较代码与算法的基本对应关系(由于语言的不同,算法和代码不是绝对的一一对应)。
顺序算法主要代码1 次数设为1 n = 12 设置所猜数字的范围,a为最小数,b为最大数a = 0b = 1000000 Do3 取a和b中间的那个数给c c = Int((a + b) / 2)Print "第"; n; "次"; c;4 将c和密码相比,如果c比密码数大,就输入>,如果c比密码数大,就输入<,如果正好相等,则输入= ch1 = InputBox("这个数和您所想的数相比是大了(>),还是小了(<),或正好相等(=)?")5 如果输入的是>,就将C和值给B,即缩小范围在a和c之间;如果是<,就将C和值给a,即缩小范围在c和b之间;如果是=,则程序跳到第步Select Case ch1Case ">"b = cCase "<"a = cCase ElseExit DoEnd Select6 次数加1,回到第步n = n + 1Loop Until abs(a-b)<0.1 7 显示“猜对了”,并结束Print "OK"(三).游戏体验学生从教师机下载游戏,可以选择下列两个游戏中的任意一个,根据提示或要求完成任务,并在论坛上回贴。
1.汉诺(Hanoi)塔问题。
要求:1)先试着完成5个盘子的搬运过程,如果感觉太难就退到4个,如果还是感觉难,可以退回到3个盘子的状态;如果可以很轻松完成5个盘子的搬运,可以试着到6个盘子、7个盘子的搬动游戏;2)试着总结N个盘子和N-1个盘子搬运过程的关系;提示:当4个盘子搬到如右图所示的状态时,你会怎么办?那么4个盘子和3个盘子的移动过程的关系是什么?2.猜数字游戏要求:1)在老师的指导下试着打开“代码窗口”、“对象窗口”,对程序有个初步的了解;2)执行程序,玩这个游戏,看看你要几次才能猜对;3)如果目前游戏的限制次数10太少了,你能否修改程序代码,使得游戏次数为20次,在哪里改,请将你的经验回贴在下面;如果你能够很轻松的在规定次数内破解这个游戏,能否将你的破解密技公布一下?4)学习计算机编这个游戏程序的算法过程,并试着将第③步和第④步说得更详细一点:①由电脑随机产生0-9之间的任意四个数,次数初值为1;②由人来输入4个不相同的数字;③统计4个数中有几个数字存在但位置不对;④统计有几个数字位置都对,如果4 个数字位置都对,则跳到第⑦步;⑤猜的次数增加1次;⑥如果次数到了10次,则显示这个数,并显示“失败”,程序结束;否则跳过第②步。
⑦输出这个数,显示“成功”和次数,程序结束。
(四).成果分享通过论坛上的留言发现学生的闪光点,每个题目请一位同学上台展示游戏的过程,并谈谈对老师所提出的问题的感想。
(五).课堂小结编程之道就如武学之道,VB,VC等开发工具的技巧好比各门各派的武功招式,算法好比内功心法,如果内力深厚,任何招式到了手上都能够化腐朽为神奇。
今天这节课,我们初步体验了穷举法、顺序查找法、对半查找法和递归等算法,由于时间关系,讲得还不是很透彻,不过,后续的课程中,我们还会分别进行更为深入的学习。
当然,对于今天这节课,如果你有什么问题,可以在课下或在论坛中提出,老师会尽可能的帮你解答。
另外,我们在论坛中还提供了与“八皇后”、“哥尼斯堡七桥问题”、“幻方”、“WORD密码查看器”等游戏,如果大家感兴趣的话,可以下载玩玩,别忘了留下你的感受。
好,下课!五、教学评价何老师:1.本节课内容生动,学生积极性比较高,完成的效果也比较好,虽然河内塔一例学生没有当堂展示出来,但这位学生思路比较清晰,能反映出他对递归算法的基本原理有所体会,因为是算法的第一节课,应该说教学目的达到了。
2.在算法的概念和意义部分表述还需要提高。
3.学生的竞争和协作设计得很好,但在完成过程中体现得还不是很充分。
赵老师:本节课的设计应该说吴老师是花了相当大的气力的,主要是很多小软件和资料的下载,非常能说明问题,给我印象较深的是“word密码破解”和“河内塔”这两个游戏,其中“word 密码破解”中吴老师设计了这样一个问题:“观察电脑破解密码的过程,注意最末一位的变化,想一想电脑获取密码的主要策略是什么?如何在软件中输入正确的参数,使得查找的速度有所提高?”这样结合实例来谈穷举法就比较生动有效。
而“河内塔”是讲递归的经典程序了,我们大学学习时总是很痛苦没有相应的游戏,现在的教学方法比大学好多了。
六、教学反思一、初中和小学要加强算法和程序设计这部份的教学内容。