ACM在线评测在编译原理实践教学中应用探讨.docVIP

ACM在线评测在编译原理实践教学中应用探讨.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ACM在线评测在编译原理实践教学中应用探讨

ACM在线评测在编译原理实践教学中应用探讨   摘要:本文对ACM在线评测在计算机算法类课程实践教学中的应用现状进行了介绍,分析了在“编译原理”课程实践教学中引入在线评测的可行性,阐述了如何组织适于在线评测模式的“编译原理”实践教学内容,并给出了“编译原理”在线评测系统的设计方案,对“编译原理”实践教学模式进行了有益探索。   关键词:ACM;编译原理;在线评测;实践教学   中图分类号:G642 文献标识码:B      1引言      多年来,ACM在线评测一直被成功应用于ACM国际大学生程序设计竞赛(ACM/ICPC:ACM International Collegiate Programming Contest),这是美国计算机协会(ACM:Association for Computer Machinery)组织的、世界上公认的规模最大、水平最高的国际大学生程序设计竞赛,旨在使大学生运用计算机程序设计理论充分展示自己分析问题和解决问题的能力。   中国大陆地区1997年开始举办区域赛和参加世界总决赛。十几年来,全国近百所知名高校积极响应,热心参与,已成为我国高校科技活动的一个热点和展示计算机教育成果及优秀人才综合素质的一项重要活动,目前更是出现迅速普及的趋势。   鉴于ACM在线评测提供了完整的计算机实践教学模式,在培养学生创新能力、综合能力、锻炼学生心理素质和团队合作精神方面起到了积极的促进作用,目前我国的许多高校,如北京大学、清华大学、浙江大学和中山大学等均开发了自己的ACM在线评测系统,并将其引入到了计算机算法设计类课程的实践教学和学生能力评测中,如程序设计基础、数据结构与算法、人工智能、算法分析与设计等,并取得了非常好的效果,在很大程度上弥补了计算机实践教学中的不足。我校在2008年初开发了编译程序在线评测系统,开始探讨将这一模式引入“编译原理”课程的实践教学中,取得了很好的效果,现正在进一步完善。      2在线评测系统的功能      “编译原理”是一门理论和实践紧密结合的课程,但其内容抽象、逻辑性强、不易理解,是计算机专业课中公认的难学课程。学习理论知识难,编程训练更是让学生望而生畏。如何使学生掌握编译技术、循序渐进地参与复杂软件系统的设计开发,是需要深入研究的问题。   2.1ACM在线评测系统的主要功能   ACM在线评测系统是一个基于B/S结构的在线程序与算法设计练习、竞赛平台,主要功能可分为用户管理、题库管理、在线提交、在线比赛及在线排名、在线讨论等。该系统提供了大量供学生练习和竞赛的竞赛题目,学生在线提交解决相关练习和竞赛题的程序代码,系统可以自动编译程序代码,生成可执行文件,并根据已存储的测试用例,从程序的正确性、程序运行总时间、耗费内存、单用例执行时间、程序返回结果等各方面评测程序代码,并精确返回各方面的评测结果。这不仅要求学生能够分析问题,综合利用知识点,而且还要在算法上进行合理的优化,并在更短的时间内给出准确解答,大大提高了教学质量和教学效果。   2.2需解决的问题   不同于算法设计类课程,编译程序复杂、规模庞大,程序模块之间关系紧密,编译结果可能不具唯一性等,都造成编译程序在线评测的困难。除了评测外,课程各个知识点和算法关联程度高,后续内容往往需要前面的内容作支撑,一环紧扣一环,学生只想练习后面部分知识点和算法几乎不可能,他们对编写复杂程序很恐惧,造成很大心理负担。   “编译原理”的实践教学主要由两部分组成,课程实验和课程设计。   课程实验是实践教学的重要环节,也是课堂理论教学的重要补充,通过实验,学生能够更好地理解课程中的基本概念和原理,通过自己动手体验提高实践能力。通常这一类的实验多为验证性的,规模相对较小,主要是对一、二个知识点和算法的实践训练,如词法分析中的正则表达式到NFA的转换、NFA到DFA的转换、DFA的最小化等程序的实现等。因此,如何更合理地将“编译原理”中的各知识点和算法进行划分和归类,使其更适合于练习和在线评测,是要解决的一个问题。   课程设计与课程实验不同,主要是培养学生的综合设计能力,无论是从综合性、设计性要求,还是从规模上要求,课程设计的复杂度都高于课程实验。因此,如何更合理地组合“编译原理”中的各知识点和算法,形成完整的编译程序前端、后端乃致整个编译程序,以满足课程设计的要求,并适合于在线评测,是要解决的另一个问题。      3实践教学内容设计      一般地,编译程序主要由词法分析、语法分析、语义分析和目标代码生成程序等几个部分组成,每一部分又包含若干个知识点和算法。因此,首先要将这些知识点和算法合理地拆分成若干个模块,使之简单化、小型化、独立化,使学生可以以任意顺序实现各模块的功能。

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档