编译原理实践教学改革初探

2014-11-19 00:44李声
电脑知识与技术 2014年30期
关键词:分级教学

李声

摘要:编译原理是计算机专业的重要的必修课程,但在实际的教学实践过程中存在着诸多的问题。该文针对新时期编译原理教学实践的需要,先分析了实践的现状,进而提出了分级实践的改革方案。通过实施分级教学,可以更大限度地提升学生的计算机应用能力,是教学改革的必然趋势。

关键词:编译原理;实践改革;分级教学

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)30-7120-02

《编译原理》是计算机及相关专业的一门专业必修课程,在整个专业教学中占有举足轻重的地位。该课程内容比较抽象,逻辑性强,它涵盖了程序设计、自动机、数据结构、机器实现等多门学科,需要具有足够的计算机基础知识作为它的前驱课程,所以学生普遍反应编译比较难学。

现在计算机专业考研统考取消了《编译原理》的考查,许多同学便认为该门课程不是很重要,上课也都采取无所谓的态度,理论掌握不扎实,进而给实践增加了难度。该门课的理论性、实践性都比较强,学习内容包括了词法分析、语法分析、语义分析与中间代码生成、代码优化及目标代码的生成,其中涉及到的正则文法、有穷自动机理论、上下文无关文法、LR文法、属性文法、回填技术、局部优化等概念都是构造编译器的重要理论基础。其实归根到底编译的重点不在于研究编译程序具体代码的实现,而是对编译的算法、基本原理的理解,编译原理中包含的形式语言的定义、语言的翻译过程、自动机理论等知识都是计算机研究的精髓内容,通过编译系统的理论学习和编程实践,可以增强学生软件的设计开发能力,提高他们的逻辑思维能力和操作动手能力,提升他们的专业水平,使他们获得可持续发展的计算机应用能力。

1 编译原理实践课程现状

为了加深学生对编译原理理论知识的理论,实践环节的设置是必不可少的。在笔者的学校,目前给编译原理课程安排实践内容是8节上机课外加一个课程设计,因为上机课时有限,所以给学生安排的是任务量稍轻的词法分析、语法分析等程序的设计,课程设计则增添了语义分析及编译器的实现等内容。

从以前的实践结果看来,情况不容乐观。学生本身水平就是参差不齐,提交上来的设计作业水平也相差较大,更有甚者,如果不会做的话,直接把其他同学的作业拷贝一份改了名字交上来,这样一来显然失去了实践的意义。如果不是对学生足够了解的话,光凭作业老师是无法判断出谁的水平高、谁又是不劳而获的。能力较强的学生觉得大家提交的作业一样,体现不出自己的优势,可能会打击到他们的积极性,也无法激发他们进行再创造的兴趣。能力稍差的学生则觉得不用付出多少劳动,却能得到差不多的成绩,那为何不继续偷懒下去呢?长此以往,他们的水平只会不进反退,得不到真正的锻炼。

由此,笔者想来,因为每次布置的实验内容都是一样的,对于水平不同的学生来说,显然这是不太合理的。要是照顾的大多数同学的情况,作业难度提不上去,难度大的话不少同学不会做,太简单的话对于一些水平高的学生来说又体现不出他们的实际能力。那可不可以将学生分成几部分,分层次让他们实践不同的实验内容呢?

2 实践改革初探,采用分级实践、分组合作

所谓分级,是将学生按照他们的学习实践能力分为几个等级,上机时可以选择难度不同的实践内容。例如分为三个等级:

1) 这类学生基础知识比较扎实,编程能力较强,自主学习能力强,一般可以快速完成老师分配给他们的任务。对于此类学生,老师可以根据他们的特长设计不同的实践课题,或是让学生自己设计感兴趣的实践内容,只要能充分利用编译的相关原理即可。在实践前期,老师和学生一起探讨实践课题的需求分析、框架设计等等,后期的具体实施则交由学生去完成。同时老师的考核方法也要做相应的调整,不能只看结果不看过程,因为选题难度较之前的加大,学生很有可能在有限时间内无法完成,这样也会产生畏难情绪。作为老师应该打消他们的后顾之忧,只要整个过程学生亲身参与了,付出了相应的劳动,那就应该得到最大的鼓励,评分还是应以中上等为主。具体评价的时候,可以参考实践内容有没有创新,跟现有的类似课题相比有没有改进的地方。这样一来肯定会极大的激发学生的积极性,愿意投入更多的精力到新课题的实施中去。

2) 对于前期课程没有学好,编程水平较差的学生,让他们独立完成一个稍大型的程序不太现实。那我们可以因材施教,让他们去阅读一些程序代码,分析代码的结构,所用到的算法,画出代码的流程图等等,即使没有亲自设计程序,也可以大致读懂程序,为后续的课程实践打下基础。另外也可以从词法分析器或语法分析器中提取出部分内容,让他们设计实现一些简单的函数。对于这部分学生,千万要防止他们出现自暴自弃的情绪,如果只是单纯靠抄袭其他同学的作业来交差,那他们在实践方面永远得不到提高,这对于他们找工作是极其不利的。

3) 此部分学生应该是班级中的大多数了,他们在平时的学习中按部就班,循规蹈矩,对于老师布置的一般任务基本可以独立完成或是少部分求助于其他同学,但基本缺乏创新意识,思考问题不够全面。对于此类学生,应该鼓励他们去实践一些有创新性的实践课题。摒弃以往单纯去实现词法分析、语法分析、语义分析的思路,可以分析设计基于某表达式的计算器,实现某编译的前端等等。从根本上对学生的实践内容进行改革,根据他们的个人能力来决定他们的实践题目。此类学生的考核可以从创新性、题目的难度及完成程度几方面去考察,既要让学生掌握编译原理的相关知识,又不能打击了他们的积极性,让他们对以后的课程实践都失去了兴趣。

还有一种实践模式,就是将好中差学生分在一组,根据实践的难易程度,大家量力而为,将实践内容分解为几部分,不同的学生完成不同的内容,最后大家提交一份完整的设计。这样的分组,有利有弊,利在可以培养学生的团队合作精神,集思广益,大家齐心去完成一个有难度、有创新的课题,考核时采用答辩的机制,每人阐述自己所完成的部分,既公平又使每人都得到了锻炼。不过此法的弊端也是存在的,那就是有的同学浑水摸鱼,什么都不做,最后直接把别人的成果拿为己用,这对于辛苦参与实践的同学是有失公允的。

3 对老师提出新的要求

基于因材施教的原则,在实践部分采取分级的方式是比较合理的一种方法,但同时也对老师提出了较高的要求。首先老师要对学生基本水平具有足够的了解,指导学生进行不同课题的选择,以体现他们的实际水平并激发他们的潜能。但在当前的教育模式下,要让老师认识每一个学生并掌握他们的学习情况基本上是不可能的事情,这就要依靠其他教师或辅导员的力量,争取让学生能选到合适自己的题目。

其次根据不同学生的水平设计不同的实践题目,需要老师对编译原理掌握的更为透彻,需要深入研究教学内容,了解学科的前沿动态,将新思想、新事物加在编译原理的实践当中,以提高学生的学习兴趣并设计出更适合、更能有效体现学生水准的题目。

4 结论

采用分级实践教学法,既可以提高教师的业务水平,加强教师对学生的了解,促进师生间的交流;也可以提高学生的学习兴趣,通过完成不同的实践课题培养了学生的成就感,也激发了学生的想象力和创造力。采用分级实践法应是教改的必然趋势,但具体实施起来还是有一定困难存在,里面存在的很多细节问题需要大家一起去探讨去解决,相信这项改革必能给学生带来更大的发展空间。

参考文献:

[1] 张素琴,吕映芝,蒋维杜,等.编译原理[M].2版.北京:清华大学出版社,2005.

[2] 李侃,陈英,等.面向编译原理与设计课程的学生创新性思维阶梯式培养模式[J].计算机教育,2013(17):11-14.

[3] 王宇英,李优.C语言程序设计实验分级教学改革探索[J].新西部,2010(6):202.

[4] 王光伟.编译原理实验课程教学设计的改进[J].电脑知识与技术,2012(8):5851-5852.endprint

猜你喜欢
分级教学
探索计算机基础“分类+分级”教学模式,服务于应用型人才培养
大学英语因“分层”而精彩
基于ESP视角的大学英语分级教学
浅谈完善钢琴分级教学评价体系的重要性
构建大学英语个性化教学改革与实践
大学英语分级教学对学生心理产生的影响及对策