编译技术可扩展式课程设计改革研究

2009-02-24 07:02唐仕喜
计算机教育 2009年2期
关键词:软件工程

唐仕喜

文章编号:1672-5913(2009)02-0040-03

摘要:本文探讨了我院编译技术可扩展式课程设计改革中的编译技术与工程的关系、可扩展式课程设计改革指导思想与内容、实施方案和评价体系。

关键词:编译技术;可扩展式课程设计;软件工程

中图分类号:G642

文献标识码:A

编译技术是计算机及其相关专业一门重要的核心课程,是学习计算机软件的重要课程。从实际工作需要来看,仅靠教学计划安排的课内实验时间是不够的,课内的实验是侧重于对某一方面知识的学习,在解决实际问题时,可能涉及并运用多个方面的知识,具有较强的综合性,这就需要进行一些综合性的设计练习,来提高分析和解决实际应用问题的能力。为了帮助广大同学对编译过程有更好的掌握,提高运用编译技术和有关形式语言理论和方法解决实际问题的能力,需要对编译过程及涉及到的编译技术进行系统的实践训练。

编译技术课程设计的目的是进一步培养学生编译器设计的思想,加深对编译技术和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。

1问题的提出

长期以来,许多学校在开设此课时,虽然开设了实验课及相应的课程设计,但只是对编译理论中的某些算法单纯地实现,缺少或根本没有实际背景,存在着以下问题:

(1) 在现行的教材中,大部分都是从编译技术本身的角度来思考的,为的只是让学生掌握编译的基本理论与思想,学生易感觉太抽象;

(2) 重理论轻实践,将语法技巧理论的讲解作为主要部分,与实际工程联系少,缺乏活力,学生易产生“学而无用”的思想;

(3) 与实际工程鸿沟大,学生易产生惧怕思想。

为了有效地解决这些问题,结合工程应用实际,我们提出了编译技术可扩展式课程设计的思路。

2编译技术与工程的关系

第一个编译程序的出现是在20世纪50年代早期,多数早期的编译工作是将算术公式翻译成机器代码,奠定了对高级语言编译系统的研究和开发的基础。20世纪50年代中期出现了FORTRAN等一批高级语言,相应的一批编译系统开发成功。随着编译技术的发展和社会对编译程序需求的不断增长,20世纪50年代末有人开始研究编译程序的自动生成工具,提出并研制编译程序的编译程序。它的功能是以任一语言的词法规则、语法规则和语义解释出发,自动产生该语言的编译程序。目前很多自动生成工具已广泛使用,如词法分析程序的生成系统LEX,语法分析程序的生成系统YACC等。20世纪60年代起,不断有人使用自展技术来构造编译程序。自展的主要特征是用被编译的语言来书写该语言自身的编译程序。1971年,PASCAL的编译程序用自展技术生成后,其影响就越来越大[1][2]。编译技术与工程的关系如表1所示。

表1编译技术与工程的关系

随着并行技术和并行语言的发展,处理并行语言的并行编译技术,将串行程序转换成并行程序的自动并行编译技术也正在深入研究之中。另外嵌入式应用迅速增长的需求,推动了交叉编译技术的发展,还有系统芯片设计方法和关键EDA技术的研究,也带动了专用语言VHDL等及其编译技术的不断深化。

3可扩展式课程设计改革指导思想与内容

编译技术课程设计教学是工程类本科教学中的重要环节,具有很强的综合性和实践性,组织实施好课程设计教学,已成为教学改革的重要课题之一。与一般本科院校相比,我们应当更加注重技术层面的提升,培养学生具有更强的技术操作水平和解决实际问题的能力;和高职高专相比,又应该有更宽、更深一些的专业理论基础,以培养有较强的创新能力和实践能力,能适应实际工作需要的高级应用型人才。因此编译技术课程设计教学应充分考虑到社会对人才的全方位要求以及为学生未来的可持续发展奠定良好的基础[3]。

课程设计改革的重要特征之一就是面向社会,面向市场,面向生产,编译技术课程设计要具有一定的实用性、可行性。编译技术课程设计题目的选择直接影响到学生完成的情况和教学效果,对提高学生的能力大有裨益。学生参与课程设计,首先就要开始参与课程设计的选题,以教师确定的指导为前提,强调学生在课程设计中的主体地位。让学生们明确自己是这个实践活动的主体,从领会课程设计的目的、任务,到理解课程设计的步骤、方法和注意事项,因此确定课程设计的题目必须让学生唱主角,消除学生们的依赖心理,发挥他们的主动性和创造性,学生通过查阅资料、调查等多途径接触社会实际提出题目,在教师的参与指导下结合课程理论进行可行性分析讨论,筛选出适合于课程设计的题目。这样的课题结合了社会实际,考虑到学生的实际能力,结合了编译技术课程理论,结合了学生的兴趣,学生的积极性在课程设计中将获得的充分的激发和保护,既不会因课题枯燥无味而淡漠,也不会因难度较大而畏缩不前。编译技术可扩展式课程设计改革内容如表2所示。

编译技术可扩展式课程设计的特点是以编译技术理论与编译实验为基础,结合实际工程和科研的需要,由学生提出合乎自己实际能力的课程设计的课题,并尽力发挥其创造力,向工程方向扩展。

4可扩展式课程设计施实方案

4.1设计内容具有开创性和实用性

就设计内容而言,让学生们感到既有一定的难度,又有相当的兴趣,许多学生都是积极主动地探讨解决问题的途径,从而打破了以往学生总是为最后的成绩而做实验的被动局面,具有十分重要的创新意义。在向学生布置任务时就有意识地将实际科研中需要完成的一些内容落实下去,使学生的工作成果得以充分的利用,就这一点来说,可以认为课程设计的内容具有较好的实用性。在时间上,依据可扩展式课程设计实际,专门时间为1个星期,之后根据设计扩展的情况,延长2~3个星期,甚至还可以之后扩展为毕业设计。

4.2设计小组采取优化组合的方法

在设计前,将全班学生按平时主干课程的成绩分为上中下三个等级,然后每一个小组中三个人刚好可以按不同等级各分配一人,以成绩较好的学生为小组组长,负责小组内的工作,小组中每个人都可以按自己的设计思想完成同一任务,在最后整体连接时,可选择各组中较好的程序。这样既保证了最后的程序质量,同时又使同学之间可以互相探讨,取长补短,效果较好。

4.3选用合适的激励机制

为把编译技术课程设计做好,我们选用了以下激励机制:其一是合理的成绩分布,让真正做出了东西的人得到较高的成绩;其二是引入竞赛机制,对优秀者进行奖励;其三是以适当的资金进行资助,以达到其实用的目的。

5可扩展式课程设计评价体系

编译技术可扩展式课程设计评价体系注重过程考核,通过过程的监控手段实现教学目标,原则上多种方式并举,如下所述。

5.1形成式考核

与传统考核模式的区别在于:形成式考核的过程贯穿于整个教学过程;考核的形式是多样化的;考核的内容除知识点外,还包含学生学习过程中的表现,学生完成课程任务过程中表现出来的分析与解决问题的能力等多方面,是对学生的全方位的考察,是一种更科学的评价体系。

5.2答辩形式进行考核

实践的目的是培养学生综合应用所学知识解决问题的能力,因此考核的重点应该放在对学生把握问题、分析问题以及解决问题等诸多方面的能力上面。实践证明,通过答辩能充分反映学生的全面素质,同时,通过答辩过程中学生对问题的回答,也能较为准确与全面地了解学生对知识点的掌握情况。

猜你喜欢
软件工程
基于课程群的软件工程专业三位一体教学模式探索
依托工作室的软件工程实践教学研究
高职软件工程课程改革研究
软件工程应用型课程建设与实践
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨