徐秀娟 江贺 刘馨月 贾棋
摘 要:根据卓越工程师的培养目标,针对编译原理课程的教学实际,分析编译原理课程的教学特点以及当前学生的特点,阐述编译原理课程的立体化教学资源建设方法,最后说明教学效果。
关键词:卓越工程师;开放课程;问题教学;编译原理
0 引 言
2010年6月教育部正式提出了“卓越工程师教育培养计划”,以贯彻落实《国家中长期教育改革和发展规划纲要》,旨在培养一大批能够适应社会发展的、创新能力强的高质量工程型技术人才[1-2]。结合面向卓越工程师发展的人才培养体系[3],编译原理课程致力于使该体系的实验教学和专业训练条件达到国内先进水平,为学生提供优良、完善的实验与实践条件。
编译原理、操作系统、数据结构是各大高校计算机专业的三大核心课程,也是各大高校与一般高职院校计算机专业的重要差别之一。与数据结构、操作系统和数据库这类计算机核心课程相比,编译原理课程具有不针对具体语言且模块化的特点,是高校计算机专业、软件工程专业的重要专业课程。
1 编译原理课程授课现状及定位
1.1 授课内容的特点
编译原理课程是计算机和软件工程专业的一门重要核心课,有一定的理论性又有一定的实践性,尤其是本课程的知识与计算机应用中很多领域有紧密联系[4]。了解与掌握本课程的基本内容有利于学生提高专业素质和能力。通过本课程的学习,学生既能掌握编译的基本过程、基本方法、编译系统的组成,又具有设计、实现、分析编译程序的初步能力,为今后从事应用软件和系统软件的开发打下一定的理论和实践基础。
本课程介绍编译程序构造的一般原理和基本实现方法,内容包括形式语言基本知识、词法分析、语法分析、中间代码生成和目标代码生成,要求学生不仅了解与掌握编译程序构造的基本原理与技术,还要了解其中的基本概念、基本原理和实现方法。本课程理论性较强、概念复杂、难以理解。为了适应应用型工程师人才培养的目标,编译原理教学小组对原有的教学大纲进行了调整,增加了一些工程应用的案例。由于课堂教学学时保持48学时不变,教师需要调整教学内容的分配,仅仅利用课堂时间完成整套编译原理课程的教授有很大困难,此时慕课的出现很好地补充了原有的不足。
1.2 授课对象的特点
当前高校的大学生几乎都是90后,具备如下特点。
(1)多数伴随着网络一起成长,有问题更习惯直接求助网络;课堂上更加沉默,对教师的提问不愿给予积极回应。
(2)多数是视频一代,习惯看各类吸引眼球的视频,教师针对单个知识的直接讲述很难吸引学生,学生的注意力集中时间更短。
(3)学生的个性更为突出,单纯的课堂教学很难满足学生多样化的需求。
基于以上几点,现有的课堂模式必须加以转变才能有效激发学生的学习兴趣。
1.3 课程重新定位
针对编译原理课程,要构建软件学院的授课体系,开发符合软件学院教学案例以充实和丰富课堂内容,研究问题驱动的教学模式和任务驱动的实验教学模式,利用多元化、立体化的视频授课、研究课题等教学资源,构建课程的全新教学体系,探索性地研究问题驱动的教学理念效果,以达到培养学生创新能力、动手能力的目的。编译原理是信息管理与信息系统、软件工程、计算机科学与技术等专业的一门重要专业课,其目的是使选修本课程的学生深刻了解从传统的编译器转变到编译原理的必要性、必然性和可行性[5]。
1.4 问题引导式的课堂设计
由于丰富的教学资源,特别是慕课资源的出现,冲击了传统的教学方式,在建设慕课资源的时候,需要结合编译原理知识框图,从每个知识点对应的问题开始讲授,引导学生自主式学习。
教师提出能够引起学生深入思考的问题,这些问题包括新讲授知识和之前知识的拓展和延伸[6]。例如,针对语法分析方法,引导学生思考构造语法树的方法有哪些,通过设定特定的表达式启发学生思考问题,并一起寻找解决方案。
教师在问题讨论的基础上引导学生,使学生由浅层知识学习转变到深层知识学习。例如,结合本课程,通过语法树的构造方法,首先讨论自上而下的语法树应该具有哪些特点,进而介绍如何消除左递归和提取左因子。
在每次课结束之后,教师仍旧通过一个问题给出下次课的讨论主题。例如,在学习完成自上而下的语法分析后,引导学生思考如果采取自下而上的分析方法,如何利用栈完成构造语法树的工作,学生展示实现的算法,教师进行点评,使学生能够进行对比,深刻理解各类算法的优缺点。最后,教师布置本次课程的作业。
2 立体化的教学体系
学校结合精英教育发展思路,总结国内外其他院校在编译原理课程方面对学生素质培养的成功经验,通过对编译原理课程体系的研究,从培养模式、教学模式、考核模式等角度构建编译原理知识体系和实验设计。本项目由教授负责整体设计和分配,最终形成“教授—副教授—讲师”阶梯教学团队,打造高水平的编译原理在线开放课程。本课程建设包括5个方面,见图1。
(1)建立整体化的知识点结构,增加学生的学习动力。
(2)建立原理与实践统一的课程内容组织结构,降低学生的学习难度。
(3)采用多层次激励型教学模式,吸引学生的学习兴趣。
(4)设计梯度化实验体系,提高学生的学习效果。
(5)建设立体化教学资源平台,保障教学质量。
2.1 整体化的教学内容建设
编译原理是较难的计算机学科课程,内容较为抽象,但如果教学内容设计合理,则能很大程度提升学生的兴趣。围绕核心内容,结合社会对本课程的实际需求,我们进一步完善课程内容,例如換名调用的参数传递方法;加强对前沿知识的介绍,增加在线编译器的介绍;引入在线编译器网站等。图2为整体化的教学资源建设示意图。