- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
“应用顺序表模拟实现约瑟夫问题”教学设计.doc
“应用顺序表模拟实现约瑟夫问题”教学设计 摘要:在大学计算机基础课程“数据结构与算法(B)”教学中,案例应用有助于学生融会贯通数据的逻辑结构、存储结构和相关算法。文章通过“应用顺序表模拟实现约瑟夫问题”这一案例,讲述在解决约瑟夫问题过程中,应用顺序表的原因、过程和关键算法,并对主要教学内容的讲授时间和注意事项等给出建议。 关键词:数据结构;微课;顺序表;约瑟夫问题;教学设计 1.课程定位 “数据结构与算法(B)”是北京大学面向非计算机专业学生、培养计算思维与编程能力的一门本科生主干基础课,目前在北京大学的所有理科院系开设。课程要求掌握的常用数据结构包括顺序表、链表、字符串、栈、队列、二叉树、Huffmn树、树、堆以及图。针对每一种常用数据结构,我们要求学生: (1)从逻辑结构、一组基本运算和存储(实现)3个方面去理解、掌握数据结构; (2)对算法的时间和空间复杂性有一定的分析能力; (3)针对简单的应用问题,应能选择合适的数据结构及设计有效的算法解决。 课程中第一个讲授的数据结构是顺序表,见图1,它也是在软件开发中应用最为广泛的一种数据结构。其讲授难点是如何让学生用学到的顺序表基本知识(相关算法和存储实现)编程解决与线性表有关的应用问题。约瑟夫(Josephus)问题是一个非常经典的计算问题。讲授如何使用顺序表编程实现约瑟夫问题,有助于学生进一步了解顺序表的基本知识点和特点,了解如何应用顺序表进行有效的算法设计。 2.教学目标 讲授内容围绕一个编程案例,帮助学生: (1)复习并掌握顺序表的存储实现方法以及顺序表上的基本运算; (2)了解约瑟夫问题的背景和由来,理解计算机编程实践过程中需求分析的作用; (3)能应用顺序表编程实现约瑟夫问题以及类似问题; (4)遇到问题能有意识应用数据结构与算法中所学知识。 3.教学内容与知识点 约瑟夫问题是以弗拉维奥·约瑟夫斯(FlaVius Josephus)命名的,他是一世纪的一名犹太历史学家。在Josephus留下的日记中,描述了这样一个故事:在罗马人占领乔塔帕特后,39个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁死也不要被敌人抓到,于是决定了一个自杀方式:41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃过了这场死亡游戏。 Josephus把他的存活归因于运气或天意,但实际上对于任意给定的n(n个人)、s(第s个人开始报数)和m(第m个人出列),可以通过一个计算模型推断出所有人员自杀的序列。微课程讲授了解决约瑟夫问题的计算模型,并给出基于顺序表来实现约瑟夫问题的算法和相关程序代码。其中,所有参与游戏的人员可以通过顺序表进行存储和表示。图2给出了一个基于顺序表的数据表示实例。 与约瑟夫问题类似的还有17世纪法国数学家加斯帕在《数目的游戏问题》一文中讲述的一个故事:15个教徒和15个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难。于是他们想了一个办法:30个人围成一圆圈,从第1个人开始依次报数,每数到第9个人就将他扔人大海,如此循环进行直到仅余l 5个人为止。问怎样排法,才能使每次投入大海的都是非教徒?综合这个问题,可以提示学生如何进行需求分析和问题建模,锻炼学生的思维能力。 在讲授中,教师应注意将问题进行简化和扩展以提供课堂练习和课后练习,并留下课堂思考问题。如Josephus问题基于顺序表实现的算法复杂性较大:要模拟整个游戏过程,时间复杂度大概在O(n×m)。当n、m非常大(如上百万、千万)的时候,几乎没有办法在短时间内出结果。如何改进这个算法?教师可以启发学生打破常规,运用数学策略。 课程的主要教学内容和知识点见表1,教师还应注意到不同知识点上时间的划分以增强学生的掌握能力。同时,基于课堂规模的大小(学生人数的不同),教师还需注意适当调整教授内容的时长。总体来说,课堂规模越大,内容与知识点教授的时间应适当延长,课堂与课后练习的讲解也要分类并进行针对性分析;反之,讲授的时间则可以适当缩短。 4.课程特色 课程要求学生在熟悉顺序表存储结构以及基本运算的基础上,能够针对具体应用问题的要求和性质,设计出相应的有效算法解决实际问题。其课程特色包括: (1)重视清楚理解和深入掌握基本概念、基本原理和基本方法等三个基本内容。 (2)多方位教学。从回顾、问题介绍、问题实践、实例、类似问题、课堂练习、课后练习、思考与总结等多方面逐步进行知识点强化。 (3)立体化教学。提供讲义、程序、在线平台、参考资料等多种学习资源,扩展学习内容。 5.课程学习资源 (1)《算法与数据结构——C语言描述(第2版)》(张乃孝
您可能关注的文档
- SIMOVERT MASTERDRIVES 6SE70系列变频装置在水淬中的应用.doc
- SINAMICS S120在大型下运皮带机项目中的应用分析.doc
- SKF重庆重装布阵 将上演西部市场“逆袭”之战?.doc
- SLC500可编程逻辑控制器故障防范及故障原因的经验分析.doc
- SMA—13改性沥青混合料生产质量的材料影响因素.doc
- SMT实验室环境监测系统的研制.doc
- SOG接地保护开关LTR—PS—YOQ5控制装置在消弧线圈接地系统的调整原理及应用.doc
- SONY Xperia Z2 Tablet.doc
- SOP在单片机课程设计中的应用.doc
- SPMK22智能数字压力校验仪应用研究.doc
文档评论(0)