提高“编译原理”课程教学效果的探索与实践.docVIP

提高“编译原理”课程教学效果的探索与实践.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文档。上传文档
查看更多
提高“编译原理”课程教学效果的探索与实践   摘要:本文针对“编译原理”在理论及实验教学中存在难度的现状,探讨了如何提高该课程教学效果的有效途径,主要研究了课堂教学、实验教学及教学方法,并从中总结出规律性的策略,在有效帮助学生掌握扎实的基础理论和技术的同时提高学生实际动手能力,培养他们开发大型软件的工程意识、独立思考和团队合作的精神。   关键词:编译原理;教学研究;教学效果   中图分类号:G642 文献标识码:B      编译系统是计算机系统的基本组成部分,对它的研制是一项高难度的工程。作为一门理论性、实践性均很强的课程,“编译原理”对学生提高计算机软件素质,拓宽思维方式,理解信息处理实质,综合运用所学知识分析问题等具有重要作用。但由于这门课程的概念性强,具有严密的逻辑性,内容丰富且抽象,应用其他课程的知识较多,容易使学生望而生畏,是公认的计算机专业中既难教又难学的课程之一。同时由于编译系统大而复杂,理论多而深奥,而且目前课时又被压缩,课堂学习时间相对短暂,因此怎样收到理想的教学效果是一个亟待解决的问题。   作者曾调查了往届毕业生的学习情况,大部分学生表示在校期间没有真正学好这门课。笔者根据多年的教学经验,对该课程的教学进行了研究,逐步完善了课堂教学、实验教学及其教学方法,通过改进教学实施环节,协调计算机课程的合理衔接,锻炼了学生的系统分析设计能力。加强实验教学,使课程实验不再只是单纯地实现编译理论中的某些算法。我校学生在前续课程中从未开发过大型软件系统,因此我们也对学生亲身经历大型系统软件开发的全过程进行了研究。      1完善的教学内容      1.1理清课程的联系,建立课程的有机衔接   课堂授课中,应让学生体会本课程是如何建立在前续课程――高级语言、汇编语言的基础上的,运用数据结构、离散数学、计算机组成等课程的相关知识来解决编译问题,否则这门课就是孤立的,考完试就忘掉了。例如,以课堂讨论的方式教学,用编译理论分析C语言中的语法现象,培养学生灵活运用知识的能力。在课程设计方面,与同时开设的“软件工程”课程结合,用软件工程的思想规范指导学生完成一个小型编译器的开发。课程快结束时,引导学生思考编译理论对今后学习内容的指导意义。   为了跟上计算机技术的发展,教师还应加强课外阅读指导。例如,让学生从C到C++语言的分析中体会程序设计思想的不断发展和由此带来的编程语言从过程式到对象式的演变。鉴于教材对编译算法和模型的描述仍沿用C这类结构化程序设计语言的编译过程,所以教师除应在课堂授课时有重点地结合对象式思想讲解外,还应向学生推荐文献资料,引导学生思考在过程式语言基础上引入对象式语言的编译原理和特点,鼓励学生探讨面向对象编译器对编译前端(词法、语法分析)和后端(语义分析)的影响。   另外,由于编译程序使用的算法是较经典的,其思想和实现技术可广泛应用于一般软件的设计实现中,因此可鼓励学生将学到的算法应用到实际问题中。这样既对前期课程起到复习巩固的作用,又能让学生切实体会到本课程的实际应用价值。   1.2抓住各章节重点,注意各章节的联系   一个典型的编译程序的8个逻辑组成部分是相辅相成,互有联系,紧密相关的,像一条锁链,一环扣一环。教师要帮助学生触类旁通,充分体会编译程序体系的优美性与和谐性,注意概念间的联系,达到事半功倍的教学效果。   编译程序是大型复杂的软件系统,在教学中要拆成各个部分,分阶段讲解,以使学习难度减低,但这却往往导致学生到最后也不清楚各个部分是怎样在整个系统中协调工作的。就像自然语言的翻译工作,初学外语时,即使认识一个句子中所有的单词,也不一定能译出句子的正确意思;即使能译出一个个句子的正确含义,若不会修辞加工,也得不到一篇优质的译文――这实际就相当于割裂了编译系统各章节之间的联系。因此教师应帮助学生从宏观和整体把握编译技术,而不应使学生的注意力分散到局部算法上。   在讲授各个章节时,教师所用实例应具有延伸性和完整性,以便容易把对此例的整个编译过程分解后融入到各个开发阶段,使学生体验不同编译阶段成果的联系与衔接。例如,将算术表达式赋值语句这一示例作为主线讲解,不同章节各有侧重。通过文法定义不同的算符优先级和结合性,向学生传授问题抽象、形式化描述和句型分析等基本概念。通过将运算数扩展为数组,使学生理解不同语句语法制导翻译及生成8086系列汇编代码等。另外,示例只是授课载体,最重要的是要通过示例引导学生建立起对系统构建、模块化、逐步求精、算法设计与实现等计算机学科常用的、经典的分析解决问题的思想。   1.3教学方法的研究与学生能力的培养   课堂教学的实施与教师紧密相关,要在传授知识的同时讲述问题求解的典型思路和方法,使课堂真正成为训练学生科研方法和思路的重要

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档