算法与程序设计说课稿.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习好资料欢迎下载
课题:
优雅的算法世界
——《算法与程序设计》前言
引入
各位评委上午好。记得有句歌词是:“不是我不明白,这世界变化快”,现在我们每天不得不和一大堆的密码打交道,什么电子邮箱、 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 = 1
2设置所猜数字的范围, a 为最小 a = 0
数, b 为最大数 b = 1000000
Do
3 取 a 和 b 中间的那个数给 c c = Int((a + b) / 2)
Print " 第"; n; " 次"; c;
4 将 c 和密码相比,如果 c 比密码ch1 = InputBox(" 这个数和您所想的数相
数大,就输入 >,如果 c 比密码数比是大了 (>),还是小了 (<),或正好相等
大,就输入 <,如果正好相等,则(=)?")
输入 =
5 如果输入的是 >,就将C和值给Select Case ch1
B,即缩小范围在 a 和 c 之间;Case ">"