- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于竞赛模式的“算法分析与设计”教学探索与实践
摘要:本文分析了程序设计竞赛的特点及算法分析与设计课程教学中存在的问题,利用程序在线评测平台,提出了基于程序设计竞赛的教学模式,并在教学中进行了实践。
关键词:程序设计竞赛;在线评测;计算机算法;教学改革
中图分类号:G642 文献标识码:A
1程序设计竞赛
近年来,针对大学生的程序设计竞赛开展得越来越多,比较常见的有ACM-ICPC、TopCoder、百度之星、Google挑战赛等。其中ACM-ICPC (ACM International Collegiate Programming Contest)即ACM国际大学生程序设计竞赛,是历史最悠久、规模最大的竞赛。
由于程序设计竞赛具有开放性、综合性和评判的客观性特征,可以有效检验参赛选手综合应用知识分析和解决问题的能力,因此它不仅培养参赛选手的创造力和团队合作精神,而且也检测选手们在压力下进行创新思维和理性实践的能力。通过参与比赛,学生提高了利用计算机求解问题和程序设计的能力,形成积极向上的自主学习氛围。
在程序设计竞赛中,在线评测系统是开展竞赛的核心。它是一个在线程序与算法设计的练习和竞赛平台,提供大量程序和算法设计的题目,供学生练习或竞赛,学生可以使用自己熟悉的语言提交程序代码,系统编译提交代码,如果没有错误,则生成可执行文件,并利用系统的测试用例来测试,如果输出结果正确,则返回程序消耗的内存空间和时间。对于竞赛题目,系统可以从程序正确性、运行总时间、消耗内存空间、返回结果等方面来考察学生提交的代码,且支持多种语言。系统可以实现在制定的时间段提供竞赛的功能,根据学生解题数目和时间进行排名,也可以批量导出学生代码,进行分析。在线评测系统除了能用于程序设计竞赛外,还可以广泛用于辅助程序设计类课程的教学,为学生提供一个开放的、自主学习的实验环境。
2基于竞赛模式的算法分析与教学设计
2.1 “算法分析与设计”课程的特点
计算机专业要培养具备较强程序设计能力的程序员,需要掌握高级程序设计语言及数据结构、算法设计策略及设计模式、软件体系结构及开发方法等知识。“算法分析与设计”是面向设计的核心课程,主要通过介绍常见的算法设计策略及复杂性分析方法,培养学生分析和解决问题的能力,为开发高效的软件系统奠定坚实的基础。该课程理论与实践并重,内容具有综合性、广泛性和系统性,是一门集应用性、创造性及实践性融为一体的课程。主要内容包括算法效率分析基础、分治法、贪心法、动态规划、分支限界、回溯、近似算法、概率算法等常见的算法设计策略,也覆盖了排序、搜索、图论、几何、组合、数值计算等问题,这也是程序设计竞赛中常见的核心问题。因此,该课程在强调算法的设计思想和方法的同时,需要更加注重算法的应用和实现,教会学生如何利用计算机创造性地解决问题,培养学生独立分析和解决问题的能力。
目前,该课程的教学方法还是以传统的讲解为主,教师通常只是将已有的经典算法在已有的数学模型和数据结构上片面地解释给学生;在实践环节只是盲目的验证算法,而对该算法的运行效率、测试数据规模以及实际的应用场景则很少考虑。学生的学习则主要以理解和记忆为主,没有“理解”和“消化”,不能灵活运用算法;在实践环节,学生代码抄袭严重,很难达到训练的效果。这种教学模式下,学生缺乏问题抽象能力,在遇到实际问题时无从下手,思维创新能力和实践能力难以得到有效的提高。
针对以上问题,笔者利用程序设计竞赛模式和在线评测系统的特点,来弥补课程教学中的不足,探讨“算法分析与设计”的课程教学改革,培养高水平的创新型IT人才。
2.2基于程序设计竞赛的算法分析与设计教学模式
程序设计竞赛具有一定的时效性、开放性和评判的客观性,学生通过竞赛可以有效提高问题求解和程序设计能力。“算法分析与设计”课程通过介绍一些具体问题(如排序问题、检索问题、路径问题、组合问题等)的解决策略,让学生掌握算法的设计策略和分析方法。把这些问题编制成在线评测系统上的竞赛题目,在指定的时间内以竞赛方式开展实验或考核,让学生提交解决问题的程序代码,最后再导出学生代码进行分析。为了避免学生大规模的代码抄袭,可以使用代码甄别系统,该系统可判断代码的雷同率,有效分析学生代码的抄袭程度。教学基本模式(图1)以“竞赛题目”为中心,通过课堂教学和课后实践两个环节,让学生掌握算法分析方法和常见的算法设计方法,并应用到实际问题中,训练学生的程序设计能力。
竞赛题目的设计是课程教学的核心。题目设计应注意难度适中、内容新颖、能有效激发学生的学习兴趣,更重要的是要融入一种或多种算法设计策略,创造一种与现实应用紧密结合的环境;同时提供具有一定规模的
文档评论(0)