1/10枚举算法的实现一、概述学科:信息科技年级:高中一年级本节课是华东师范大学出版社出版的上海市《信息科技(选学模块)》教材《算法与程序设计》的循环结构复习课,所需课时为1课时。在本课时中学生主要复习如何读流程图结构、读输入输出、读计数器、累加器、累乘器,掌握循环结构中控制循环的要素,(如初始状态、循环体、循环条件等)教学思路:二、教学目标分析1、知识与技能(1)掌握判断循环结构流程图的几大要素。(2)学会区分循环结构中的直到型循环和当型循环。(3)理解计数器、累加器、累乘器在循环结构中的重要作用。2、过程与方法(1)(2)学会分析循环结构的规律,总结方法,并应用于实际的流程图填空中。3、情感与态度(1)感受循环结构的运行过程,并学会用循环结构的算法设计思想解决实际问题。教学重点1、计数器、累加器的作用与功能2、重复执行语句的分析、推导3、变量初始值设定4、循环终止条件设定5、循环次数的确定三、学习者特征分析1、现在的学生在父母、长辈的关爱下成长,比较以自我为中心,习惯了别人对自己的欣赏和赞美。少有学生会去挖掘他人身上的闪光点来提醒和弥补自己的不足。通过“我来说说真心话”这一活动,让学生学会去挖掘和欣赏他人的优点,既能让他人能感觉到自身的价值,也能让自己从中受益,增强同学间的友谊,营造积极向上、和谐的班级氛围。2、算法实例一直是高中教学中的难点,理论性强、枯燥学生学习的主动性不强。教学效果不理想。为了提高学生的学习积极性、课堂参与度,所以设计了文档加密和解密的活动。加密和解密活动对学生来说是比较“神秘”的,学生对此类问题兴趣浓厚,乐于去探索和尝试。2/103、通过上节课两个枚举算法实例“寻找37的倍数”和“一份单据被涂抹数字的推算”,学生已经对枚举算法有了一个初步的理解。学生对枚举算法知识点的理解仅限于教师给出解题流程图,学生能读懂流程图的意图这一基础上。如果想让学生自己解题,绘制解题流程图,有一定的困难。4、枚举算法是学生第一次接触循环嵌套分支的结构,在算法的难度上较前面有了很大的提高。在一个流程图中,哪部分为循环结构,哪部分为分支结构,学生非常容易混淆。同时也反映在流程图翻译成VB代码上dowhile和if语句的使用不熟练。所以这节课再次通过枚举算法实例的分析和解答,巩固加深对枚举算法知识点的理解和应用。5、学生在前几次的VB程序编写课上,表现出不细心,容易在细节(输入错误、特殊符号遗漏、语句不完整等)上出现问题导致程序调试不成功,或者结果不对。让学生自己去验证程序、很难发现自己的错误所在,往往要求助教师解决。通过加密和解密这一活动,可以让学生互测程序是否编写正确,合作寻找错误的原因。实践发现学生有一定的解决问题能力,两人合作查找问题,往往能找到问题所在并解决,不但提高了学生发现问题、解决问题的能力,同时也避免了上机过程中,教师无法兼顾到每个同学的尴尬局面。四、教学策略选择与设计整节课的教学设计理念是:以游戏教学、情境教学的教学方法,让学生参与到游戏活动中,更好的激发学生的学习兴趣,寓教于乐。1、在对学生进行学会欣赏他人的道德教育、信息安全的讲解、枚举算法的概念、特征、优缺点等理论性较强的知识点讲授,拟采用以教师为主导的讲授式教学。通过教师演示ppt,引起学生的思想共鸣。通过教师提出问题,引导学生回答问题,来帮助学生回忆和巩固所学知识。2、本节课中的使用枚举算法对真心话文档进行加密是本节课的重点和难点,所以课堂中重点对产生加密密码的枚举算法流程图进行细化,通过将问题分解让学生分步完成流程图。这部分内容拟采用自主学习策略。学生根据教师所给提示,自主完成流程图的绘制。3、本节课中使用VB程序设计语言实现,得到加密的密码组合也是本节课的重点和难点。这部分拟采用合作学习策略(二人合作)。枚举算法的程序实现要求每个同学熟练掌握,所以采取二人合作的学习策略比较合适,同学间既能互相探讨,共同解决困难,又避免了某些同学在小组多人合作时出工不出力的现象。五、教学资源与工具设计教师用:教学用ppt课件、教师演示VB程序。学习环境:计算机多媒体网络教室、office办公软件、winrar压缩软件、VB6.0中文版。六、教学过程教学设计流程图情境导入:网络环境下,保护信息安全学生写下真心话word输入3/10教学设计教学内容活动设计设计意图一、导入网络环境下,如何保护信息安全教师提出问题:假如我是某公司的机要人员,掌握了公司的重要数据报表或人事资料,我可以采取什么方法保护我的重要文件呢?学生讨论回答。(1)(1)通过将文件加密。(2)通过备份文件。(3)通过对计算机进行加密使用。教师总结:对重要文件、计算机进行加密访问,比较有效。提出问题,回顾保护计算机信息安全这一章节的知识点。二、学同桌间写下教师播放ppt。学会欣赏别人,在别人身上找懂得欣赏4/10生说出真心话最为欣赏对方的一个方面。到自己的不足,在彼此欣赏中共同进步。学会欣赏别人,是一种人格修养、一种气质提升,有助于自己逐步走向完美。学会欣赏别人是一种豁达风度。“海纳百川,有容乃大”。布置任务,教师播放ppt告知学生整节课的流程。完成真心话文档,最欣赏同桌的一个闪光点。并对此“重要文档”,使用winrar加密的方法。他人,能挖掘他人身上的闪光点,以弥补自己的不足,营造积极向上的、和谐的同学关系。三、文档加密要求教师提出要对真心话文档进行加密,同桌需解密后才能观看。教师提出加密的要求(展示ppt):密码为6位正整数,此数能同时被158和517整除。在得到密码组合后,选择其中一组对真心话文档进行加密。请同学分析加密要求,想要得到加密的密码组合可以使用什么算法得到?以游戏教学、情境教学的教学方法,让学生参与到游戏中,更好的激发学生的学习兴趣,寓教于乐。对加密的密码提出要求,引导学生用枚举算法得到加密的密码组四合。四、复习枚举算法的思想枚举算法的概念和特点学生回忆枚举算法思想:有一类问题可以采用一种盲目的搜索方法,在搜索结果的过程中,把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不合要求的,保留那些符合要求的,这种算法叫枚举算法。分析总结枚举算法的特点:既不遗漏、也不重复关键点:(1)、确定范围:列举该问题所有可能的解。(2)检验条件:检验每个可能解是不帮助学生一起回顾枚举算法的概念和特点,为下一步的解题理清思路。5/10是问题的真正解五、分步完成枚举算法流程图的设计将问题细化,分步完成流程图的绘制学生分析:确定列举范围:100000——999999检验条件:这个数是158和517的倍数。(1)绘制列举的流程图(使用循环结构)(2)检验条件(使用分支结构)(3)完成流程图的合并。枚举算法的结构是循环嵌套分支。如果融合在一起分析学生容易混淆,通过分步完成,让学生清楚地了解哪个部分为列举(使用循环结构),哪个部分为检验(使用分支结构否)。也有利用接下来VB代码的翻译。6/10六、vb语句的翻译。定义变量的数据类型(长整形)。循环语句的使用(dowhile语句)。单分支语句的使用(if语句)。Dimjaslong(定义j变量的数据类型为长整形)j=100000Dowhilej=999999ifjmod158=0andjmod517=0thenprintjendifj=j+1Loop巩固VB中循环语句和分支语句的使用。并且掌握循环嵌套单分支的语句排列。七、学生上机编写、调试、修改程序学生上机调试程序,得到密码组合。同学间互相帮助,调试程序。学生编写程序要特别仔细,一点差错就会影响程序运行结果。导致同桌解密失败。八、文档加密、传学生利用VB程序运行的得到的密码学生:同桌两人都得到密码组合后,选择其中的一组密码作为自己文档的加密密码。教师:提醒学生注意对自己所设置密码的保护,不通过加密和解密,同桌间互7/10输、解密。组合,对文档进行加密,通过网络将加密文档传给同桌,同桌进行解密。能提早透露给同桌,让同桌自行解开秘密。学生:通过网络共享的方式,同桌间交换加密文档。利用自己编写程序得到的密码组合尝试去打开对方的加密文档,如果能打开,说明双方的密码设置都正确。否则肯定有一方密码设置有问题。同桌间互相帮助,查找并解决问题。教师活动:教师巡视、个别指导,观察、总结并及时记录学生在完成任务过程中出现的问题。测VB程序运行结果是否正确。九、师生讨论归纳枚举算法的特点和优缺点给出两个问题,是否可以使用枚举算法解决?(1)求班级40个同学语文考试的均分。(2)求班级40个同学语文分数大于等于80分的人数。从这两个例题分析枚举算法的特点:•枚举法的关键就是列举和检验这两个操作。•为了保证对所有的情况逐一列举和检验,势必要重复地进行这两个操作,直到所有情况都检验完毕。•检验就是对某一给定的条件进行判断,根据判断的不同结果执行不同的操作,所以检验部分可以使用分支结构来实现。枚举算法的优缺点:•优点:非常高的准确性和全面性缺点:当数据规模较大时,执行效率低生活中常见的枚举算法(如找钥匙、修补轮胎、挑烂苹果等)从例题分析加深对枚举算法知识点的理解和巩固。让学生体会到算法在生活中是无处不在的。十、思维拓展关注计算机信息安全教师提出问题:a、存折或信用卡在柜员机上取钱时,为什么系统要限制输入密码的次数?b、密码日记本、密码旅行箱的安全性?c、密码如何设置才安全?学生回答:不限制输入密码的次数,有可能让不法分子无限次尝试,导致密码被破解,资金丢失。密码日记本和密码旅行箱的密码由数字构成,只能在短暂时间内保证安全,如果有足够的时间,也将会被破解。设置密码可以使用数字、大小写英语、符号相结合,这样破解的时间和难度大大增强。枚举算法在破解密码方面的使用原理。讲述信息技术可能带来的不安全因素,要求学生自觉遵守网络道德与法规。自觉养成保护密码的良好习惯,树立信息安全意识。8/10七、学生课后练习1、求1—1000种能被3整除的数之和。使用多种解题方法。并判断哪种解题方法属于枚举算法?分析:此题虽然相对简单,但是一题多解。布置此题,发现学生确实能想到不同解题方法,其中三种解题方法学生使用比较普遍和集中。通过让学生使用不同的解题方法,拓展学生的解题思路,并且指出其中一种解题方法属于枚举算法,加深对枚举算法的理解。2、求班级40个同学语文分数大于等于80分的人数。分析:第一题考查了学生使用累加器,此题考查学生使用计数器,巩固复习累加器和计数器的运用。同时此题在课堂上只讨论了是否能用枚举算法解决问题,并未解题,所以作为课后练习。3、一个三位数正整数每位数字的立方之和等于这个三位正整数,我们称此类数为“水仙花数”,如153=13+53+33故153是水仙花数。求100~999之间的所有水仙花数。分析:此题在前两题的基础上提高解题难度,在此题中既要运用枚举算法思想,又能复习巩固前几节课的知识点——算法中的运算符和表达式,需要学生灵活运用mod,int等函数将三位数中的个位、十位、百位数字分别取出。并且写出检验的表达式。对学生解题能力的提高有很大帮助。教学评价设计这节课在教学设计和教学实践时时间比较紧凑,来不及让学生进行评价,最后仅仅是通过教师观察学生是否完成解密,是否观看到同桌的真心话文档进行模糊评价。教学实践后根据课堂中学生所需完成的任务,设计了《枚举算法的实现》自我评价表进行定性评价,此张评价表需要在课后进行。9/10《枚举算法的实现》评价表姓名:_____________日期:___________评价指标分值标准描述评价得分解题过程(30分)30-20有明确的解题思路,能按照教师的活动步骤,一步一步解题,并收到了很好的效果。20-10能在教师的引导和启发下积极思考,一步一步解题,理解解题思路。10—0没有动脑筋思考,对解题的方法不理解。编写程序(30分)30-20能正确、快速地编写VB程序。在调试程序中出现的问题能自己发现和解决。20-10能较为正确、快速地编写VB程序。在调试程序中出现的问题能发现并在同伴和教师的帮助下解决。10-0不能正确、快速地编写VB程序。无法完成课堂练习。综合情况(30分)