APP下载

“编译原理”课程教学改革初探

2016-04-06徐勇蒋宗华石小艳吴延辉

求知导刊 2016年6期
关键词:内容体系实践教学教学方法

徐勇++蒋宗华++石小艳++吴延辉

摘 要:“编译原理”课程是介绍高级程序设计语言编译程序构造的一般原理、基本设计方法,是主要实现技术和形式化工具的一门课程,具有较强的理论性和实践性。本课程围绕人才培养目标,在优化课程内容体系的基础上,侧重研究了教学手段和方法,增加了实践教学环节内容。

关键词:编译原理;内容体系;教学方法;实践教学

中图分类号:G642.0 文献标识码:A

编译原理是现代计算机系统理论的基本组成部分之一,是计算机专业的一门重要专业基础课,同时也是一门实践性很强的课程。其中涉及词法、语法的分析,表格、符号信息的处理方法,清晰有效的算法、描述方法,各种数据结构的运用,自动机理论等编译技术,作为一门计算机软件技术课程,内涵极为丰富,因此,该课程可以说是建立在高级语言或汇编语言基础上,综合运用编译理论及多门前修课程如“面向对象程序设计”“数据结构”“离散数学”“计算机原理”等的相关知识来解决高级语言在机器上运行问题的一门课程,其难度较大。通过本课程的学习,学生不仅可以掌握编译程序本身的基本实现原理和技术,同时也有助于提高其对程序设计语言的理解,提升语言设计及程序设计能力。

1.课程教学理念与目标

高等教育正面临重大的变革 ,根据学校的办学定位、人才培养目标要求及生源情况,课程组应及时更新课程内容,拓宽知识范围,注重理论联系实际,改进教学方法和手段, 既重视记忆性学习,又重视启发性思考,更重视运用理论知识解决生产实践问题能力的培养,并把它作为课程教学改革的基本原则。

课程改革实施过程中,课程组定位“编译原理”课程的教学指导思想是以介绍编译理论为基础,掌握主流编译技术为主,在学习典型编译模块的过程中重点训练学生的算法设计、分析能力及编程能力。“编译原理”课程中涉及的算法多而复杂,在算法教学中,应着重阐明算法的深刻含义、功能及描述方法,结合编译模块实例,进行推理,对时间和空间复杂度进行分析。

通过本课程的学习,学生可以建立良好的编译理论基础,并可初步培养学生在设计、实现、分析和移植编译程序方面的能力。教学中不求大而全,不过于讲究知识的系统性,而是讲清楚常用的、核心的知识点即可。教学目标可以归纳为能掌握编译基本理论,将“编译原理”课程内容作为程序设计的实训素材。

具体教学目标为:

(1)了解编译和解释的区别。

(2)熟练掌握词法分析中正规表达式、有限自动机、正规文法三者之间的相互转换方法。

(3)熟练掌握语法分析中自上而下分析的LL(1)文法和自下而上分析的规范规约及算符优先文法。

(4)在中间代码生成环节重点掌握赋值语句的翻译。

(5)重点了解局部优化及循环优化的基本技术。

(6)了解贯穿整个编译过程的表格处理和出错处理的一些基本概念。

(7)设计并实现基本编译模块算法。

2.课程教学大纲与内容安排

编译程序常由词法分析程序、语法分析程序、语义分析程序、代码优化程序和目标代码生成程序等五个主要部分组成,[1]这五个部分相辅相成、互有联系、紧密相关。其中词法分析程序主要是依据词法规则从左到右扫描输入的源程序,进行词法分析,输出单词符号。语法分析程序主要是依据语法规则对单词符号进行语法分析,输出由语法范畴构成的语法树,判断输入串是否构成语法上正确的“程序”。语义分析程序依据语义规则把语法分析程序归约出(或推导出)的语法单位翻译成一定形式的中间代码(如四元式)。代码优化程序依据等价变换原则对中间代码进行优化处理。目标代码生成程序把经优化后的中间代码翻译成目标程序。在编译过程中源程序的各种信息被保留在种种不同的表格里,因此在编译程序中必须含有一组管理各种表格的程序。如果源程序有错误,编译程序应设法发现错误,把有关出错信息报告给用户,这部分工作由专门的出错处理程序完成。

总之,“编译原理”课程内容丰富,具有严密的逻辑性,对提高学生计算机软件素质具有很大作用,可以使学生真正了解计算机的工作过程,认识计算机信息处理的实质,并综合运用所学的软件设计技术来分析解决问题,为今后更加深入地学习、探讨计算机专业理论知识打下坚实的基础。

3.教学手段与方法

教学手段与方法是课程建设的重要内容,科学、先进的教学手段与方法是提高课程教学质量的重要保证。课程教学手段与方法的建设要充分体现以学生为主体、以教师为主导,知识、能力和素质协调发展的指导思想,同时要把课程教学手段与方法的建设与现代信息教育技术结合起来。

教学实践中,课程组越来越体会到教学方法的重要性。将以往的填鸭式教学转向提问式、启发式、讨论式教学,是非常必要的,而且,在向学生传授知识的同时,更要注重教会学生学习的方法,学会学习是提高教学效果的有效措施。

根据“编译原理”课程教学的特点,并通过教学实践验证,本课程采用项目教学法,根据学习领域中不同学习情景的教学需要,同时采用任务驱动法、激励教学法等多种教学方法,能起到很好的教学效果。针对不同的内容、不同难易程度,与其他教学方法灵活配合使用,还注重互动学习、团队学习、自主学习的运用,教学方法得到了学生的高度认可。

(1)任务驱动的项目教学法。多年以来,任务驱动的项目教学方法在很多课程中被广泛使用,实践证明,对于工科课程而言,任务驱动的教学方法具体较为明显的优点:一是该方法有利于学生把握相关知识点的学习目标;二是可以激发学生的学生兴趣;三是便于教师对相关知识点教学效果进行评价。针对“编译原理”课程内容、课程性质,课程组依据词法分析程序、语法分析程序、语义分析程序、代码优化程序和目标代码生成程序等五个主要编译模块,将完整的编译程序分解为多个小的教学项目,每个教学项目既要完成理论知识点的学习,又要分组完成程序设计实训任务。

(2)激励学习、实训绩效的促进教学法。在“编译原理”课程的成绩考核中,平时成绩、期末笔试成绩各占50%。其中平时考核内容包括对理论知识的掌握、基本编译模块算法的设计与实现能力。本课程制订详细的平时成绩考核办法,鼓励学生自主学习、实践,如果学生已经取得程序员、软件设计师等资格认证,可在平时成绩实训考核部分获得满分。本课程与实践联系紧密,如果学生的实训成果得到了企业认可,同样可以获得较高的平时成绩评价。

(3)贯彻自主学习与师生团队共同学习的教学法。本课程教师团队是一支以中青年教师为主、充满工作热情和创新意识、具有爱岗敬业和团队精神师资队伍。在教学过程中坚持以学生为主体,以学生活动为主线,将教学过程体现为学习过程。

理论教学部分和教学实训过程采用分组学习的方式。在教学过程中,教师先设计好课程的教学情境,并对任务学习要求做简单介绍,让学生自主获取任务信息,自主制订计划,自主实施计划和检测评估结果,学习过程发挥小组团队的作用。

(4)探索式教学法。在教学实施过程中,充分发挥学生的积极作用。师生共同探讨编译理论知识体系及其演变,也注重对教学方法的共同探索与思考。变演绎思维为归纳思维,变被动学习为主动学习,不仅学习效果好,更能培养学生思维的科学性、严谨性,把可持续发展落到实处。

(5)信息平台的利用。提供比较丰富的教学资源,如教学大纲、教学计划、电子教案、电子课件和教学视频等,方便学生自主学习。在学院网站课程论坛中实现教师与学生网上教学交流和互动,课程组老师及时跟进网络前沿技术,并将内容更新到网站上。

网络教学平台及资源在本课程的教学中已经发挥了关键的作用,课程教学组成员负责网站的日常维护和教学资源更新,学生每天的正常学习都要在这个平台上进行,课后师生也经常利用这个网络平台进行在线交流、答疑等。

4.实践教学

实践教学是编译原理课程教学过程的有机组成部分。实践教学内容设置围绕编译模块算法的设计与程序来开展,帮助学生课后进行自主课程设计训练,巩固课堂理论知识,提升程序设计能力。课外实践教学方案内容包括基本知识、基本理论、基本方法、典型教学案例等,方案内容充实、合理,目的性强。

为了提高实践教学环节的教学效果,课程组将辅导答疑作为实践教学系统中重要的环节。及时了解并解答学生实践学习活动中出现的问题,调整并改进教师教学内容和教学方法,这对提高教学质量十分重要。

5.质量监控

科学合理的考试、考核方法对激励学生主动参与学习、提高课程教学质量十分重要。编译原理课程要建立符合自身特点的结构化课程考试考核办法,避免一张试卷定结论的弊端。编译原理课程详细地规定了考核方式和成绩评定方法, 明确了平时、期中和期末成绩所占的比例,把学生平时的自主学习成绩纳入学生课程学习的总成绩。以对学生的知识、能力、素质综合考核为目标,积极开展考试内容改革,不断改革考试、考查的传统模式,探索符合教学内容特点,切合学生学习实际的方法,这样既有利于检验学生的学习成果,又能全面客观地反映学生学习业绩,从而引导学生自主学习,不断探索,提升自身综合运用知识的能力和创新能力。

6.教学资源

课程组将编译原理的课程概况、课程内容、习题解答、教学录像、参考资料、实践课题、编译实例库以及CAI 课件等内容通过信息平台,为学生学习和实践编译原理与技术提供理论知识和范例。同时组织课程组教师和部分学生将实践教学过程中的优秀教学案例和素材编写成课程实践学习方案讲义,供同学们参考学习。

7.小结

“编译原理”课程改革以教育思想和教育观念的转变为先导,通过改革教学内容,改进教学方法和教学手段,加强师资队伍建设和实践性教学环节建设,[2]在具体教学实践中,教师必须坚持每次上课前认真备课,教案每年都认真补充、修改,使其不断完善。在教学实践中不断改进教学方法, 使学生真正感到每堂课都能学到新的知识,从根本上保证课程建设在培养学生能力、知识、素质等方面发挥基础性的重要作用。

参考文献:

[1]陈火旺,刘春林,等.程序设计语言编译原理(第三版)[M].北京:国防工业出版社,2001.

[2]潘懋元,王伟廉.高等教育学[M].福州:福建教育出版社,2013.

猜你喜欢

内容体系实践教学教学方法
基于gitee的皮肤科教学方法研究
《计算方法》关于插值法的教学方法研讨
《计算方法》关于插值法的教学方法研讨
小学语文字理教学方法探析
基于党的十八大的大学生思想政治教育内容体系研究
校园足球运动训练内容体系的创新构建
系统科学理论视角下行政管理专业实践教学体系的构建
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
高职院校商务礼仪课程教学改革探索刍议