基于 CDIO 教育理念的 “编译原理”课程教学的探索

2016-06-01 11:29徐艳群张斌南阳理工学院计算机与信息工程学院河南南阳473004
新丝路(下旬) 2016年9期
关键词:编译器原理考核

徐艳群 张斌(南阳理工学院计算机与信息工程学院 河南南阳 473004)

基于 CDIO 教育理念的 “编译原理”课程教学的探索

徐艳群 张斌(南阳理工学院计算机与信息工程学院 河南南阳 473004)

“编译原理”是计算机专业中一门非常重要的课程,它最能锻炼学生的计算思维能力,计算思维能力对从事计算机专业工作的学生将终身受益。但是“编译原理”课程教学中依然存在一些问题:教学方法陈旧,忽视实践环节,学生参与意识不强等。本文针对这些问题,在编译原理课程教学中应用CDIO(Conceive、Design、 Implement、 Operate)教育理念,从理论课教学方法、实践环节、考核方式等方面进行改革。 实践证明CDIO 模式在“编译原理”课程教学中取得了良好的效果。

CDIO教育理念;编译原理;启发式教学法;项目教学法

【DOI】10.19312/j.cnki.61-1499/c.2016.09.056

“质量工程”的广泛实施,各高等院校在计算机专业的人才培养方面做出了很大贡献,但是毕业生的专业能力相当一部分不能很好地满足社会需求,究其原因主要是因为现有的教学理念、教学思路存在问题。 最新教育改革成果—CDIO教育模式,实践证明 CDIO 教育模式先进可行,适合工科教育教学环节的改革。为了培养高素质的计算机专业人才,就需要从课程这个培养人才的课程载体上进行改革,而编译原理课程作为本专业的重要课程更应该改革。因此本文将CDIO工程教育理念用于编译原理的教学实践中,以期取得良好的教学效果。

一、CDIO 工程教育理念

国际工程教育改革的最新成果--CDIO工程教育模式是以产品研发到产品运行的生命周期为载体,鼓励学生积极、主动、实践地投入到课程学习中去,在学习过程中注意专业课程之间的内在联系。CDIO大纲对专业毕业生能力的考核主要包括基础知识掌握情况、个人的学习、及实践能力、团队协作能力和系统工程能力四个方面。各高校应该按照大纲的要求用综合有效的培养模式力求在这四方面达到目标要求。

二、“编译原理”课程的特点

《编译原理》是计算机专业的一门很重要的课程,课程涉及的理论知识点多,比较抽象,相当一部分算法有些复杂。目前编译原理课程教学绝大部分采用传统的教学方式,这种学习方式完全是一种被动的接受知识的过程,学生学完这门课程,不知道一个编译器到底应该怎么设计?怎样实现?采用传统的方式不能充分发挥学生的积极主动性,不利于引导学生去思考,更不利于带动学生去发现问题、解决问题。针对目前在编译原理课程教学中存在的问题,笔者将CDIO教育理念引入到编译原理课程教学中。

三、CDIO 教育模式下的“编译原理”课程的教学探索

为了改善“编译原理”课程的教学效果,提高学生的实践能力,我们将CDIO理念应用于“编译原理”课程的教学中。课程教学中尝试采用启发式教学、项目式教学等教学方法;上机实践方面根据课程内容布置小程序,课程学完后在课程设计中布置综合性项目。考核方式设置中注重学生的动手实践能力考察。让学生亲自经历和体验编译的全过程。

1.启发式教学

启发式教学是强调学生学习的主体地位,激发学生独立思考后去解决问题。常见的启发式教学方法是:创设情境法、问题导向法,行为驱动方法等等。例如在LR(1)分析中采用启发式教学方法中的问题导向法。

题目:对于以下文法采用LR(1)分析法分析。

G:(0)S'→S (1)S→aAd (2)S→bAc (3)S→aec (4)S→bed (5)A→e

先要求学生采用已学过的LR(0)分析法进行分析。在做题的过程中学生会发现在两个状态中出现了移进-归约冲突,这时候学生就得重新审视这种方法。这时老师引导学生进一步思考采用SLR(1)分析法,介绍SLR(1)分析法,它对于移进项目跟LR(0)完全相同,对于归约项目需求归约项目产生式左部非终结符号的Follow集,思考冲突能不能解决?引导学生SLR(1)分析法为什么不行?组织学生分组讨论,教师进行归纳补充。引入LR(1)分析法,提供资料让学生分组自主学习并讨论如何采用LR(1)分析法来完成该题。

2.项目式教学

项目教学法是一种综合实践性的教学方法,强调学生的主体参与,教师的引导作用,一般在一门课程学完之后才能开展, 是对课程所学内容进一步深入应用,让学生把课程所学理论与实践有机结合起来。通过项目实践,学生不仅掌握了课程内容,而且具备了该课程所应具备的工程实践能力、团队协作与交流的能力。因此,在“编译原理”课程设计中,让学生动手完PL/0编译器的设计与开发,它的编译过程使用一遍扫描方式,核心模块是语法分析和语义分析器,词法分析器、代码生成器分别作为它的一个过程。为了完成相应的项目内容,在平时上课的过程中就会注重介绍PL/0编译器,帮助学生了解必要的步骤和编码实现技术。为了培养学生的阅读文献的能力,可以提供PL/0编译器文本供学生阅读,提醒学生应该先熟悉总体结构,然后理解每个流程的功能、实现方法及各过程之间的相互关系,最后达到深入理解编译器构造过程和实现技术。PL/0编译器实现图如图2-1所示。项目要求:他包括大纲、内容、组织、进度计划和实施过程;与此同时,对学生进行分组,每组选一个组长, 在项目中每个团队成员都有自己的任务和职责;此外,改变过去“填鸭式教育”,以学生为主体主动学习,给学生提供展示的机会,激发学生学习积极性和主动性;项目完成后,每个项目团队成员进行汇报,演示程序,用幻灯片辅助讲解,并且提交项目文档。项目报告不仅是团队的结果的展示,同时促进了项目团队之间的交流和学习。通过项目汇报,也锻炼了学生的表达能力,增强了学生的自信心。

图2-1: PL/0编译程序的实现

3.上机实践

为了让学生在系统学习编译原理的章节之前, 对编译原理获得一些感性认识和初步了解,世界著名计算机科学家N.Wirth编写的“PL/0编译器”是对编译程序的总结和实施的过程分析说明,作为学生阅读PL/0语言编译器文本的提示,便于建立整体的概念。编译原理的教学内容包括词法分析、语法分析、语义分析和中间代码的生成、代码优化和目标代码生成等。实验内容选择PL/0语言的编译程序,原因是PL/0语言功能简单,结构清晰、易读, PL / 0编译器可以充分体现一个高级语言的编译器实现的基本技术和步骤。结合PL/0编译程序的设计与实现要求学生对给定的PL/0源程序进行词法分析、语法分析、语义分析和中间代码生成等,从而理解每个过程的功能和相互联系及实现技术,作为拓展内容可以让学生用C语言或者Java对PL/0编译程序进行改写,这样可以让学生体会到各门课程之间的联系,做到对知识的融会贯通。为了提高学生学习的目的性和主动性,在编译原理课程每次讲理论课前先介绍要求学生完成的实验内容,并分组讨论。在每次实验前给出实验要求让学生讨论需要掌握哪些内容并列举出来,上课时教师根据学生们需要学习的内容进行讲解并适当拓展。让学生体会理论知识在实践中如何用?为什么需要学习这些理论知识?从而改变学生以往被动接受知识的习惯,让学生有目的地、积极主动地参与到实验中,参与到课堂中。

4.考核方式

“编译原理”课程考核一般采用闭卷考试方式,基本决定学生最终期末成绩,平时成绩基本按考勤、提问等核定,只占到10%-20%。这种方式考核的是知识而不是能力。CDIO工程教育理念要求从四个维度考核,重点强调实践动手能力。因此在编译原理的考核方式上进行改革,采用注重过程评价的评价方式。过程评价主要包括和项目评价和实验评价。实验评价:对每个实验的实验目的、实验步骤、实验结果进行考核;项目评价:以项目团队为单位考核,对项目的实施情况、团队协作情况、项目答辩和项目文档等进行评估;期末理论考试在总成绩中的比重最多不超过50%。 其中项目的实施情况包括词法分析部分、语法分析部分、语义分析和中间代码生成部分、代码优化部分、目标代码生成部分等综合确定。

四、效果评价

为了量化编译原理课程改革情况,我们按照CDIO教育理念的目标设计了一份调查问卷,主要从四个维度进行考量:(1)课程知识掌握情况;(2)解决具体问题的能力;(3)团队协作与组织能力;(4)工程系统化情况。回收问卷统计结果表明:学生通过课程实践,基本能够掌握课程要求的大部分知识,并且能够活学活用;通过上机和课程设计,项目实践动手能力大大提高,学会了分析问题、解决问题,及团队合作;具备了该门课程的工程应用能力。

五、结束语

CDIO教育理念是一种先进实用的工程教育模式,将CDIO理念引入到“编译原理”课程教学中,对课程从教学方法、上机、考核方式方面进行改革和尝试,实践证明了CDIO模式在教学实践中取得不错的教学效果。随后我们将继续深入探讨CDIO在课程教学中的应用。

[1]李桂玲,朱晓莲等.基于CDIO理念的“数据结构”课程教学的探索[J].中国教育信息化,2015(24):50-52

[2]张运涛.基于CDIO工程教育模式的AutoCAD课程教学改革初探[J].安徽科技学院学报,2010(3):60-62

[3]薛健飞,林凌敏.基于CDIO的行业特色高校的可持续发展研究[J].教育与职业,2011(4):72-75

[4]李震平;李晓霞;魏红君;CDIO模式下C语言教学项目专业化研究[J].河北工程大学学报(社会科学版),2012(1):121-124

徐艳群(1978—)女,陕西韩城人,讲师,硕士,研究方向:计算机应用。

猜你喜欢
编译器原理考核
基于包络解调原理的低转速滚动轴承故障诊断
了解咳嗽祛痰原理,有效维护健康
内部考核
基于相异编译器的安全计算机平台交叉编译环境设计
运行速度大突破华为《方舟编译器》详解
创新完善机制 做实做优考核
平均场正倒向随机控制系统的最大值原理
化学反应原理全解读
公立医院 如何考核?
通用NC代码编译器的设计与实现