1、聚焦培养工程能力的编译原理实验教学改革赵 晓 孙连山摘 要:基于工程教育专业认证理念,结合长期的教学实践,落实以学生为本,聚焦学生工程能力培养,对编译原理实验的教学内容进行了优化,建立了新的实验教学管理方法,围绕实验全过程完善了教学评估体系。教学实践表明,该课程改革深度融合了工程教育专业认证理念,有利于培养学生的工程观念以及解决复杂工程问题的能力,为其他计算机类实验教学的改革提供借鉴。(陕西科技大学 电子信息与人工智能学院,陕西 西安 710021)关键词:工程教育改革;编译原理;实验教学改革;工程能力中图分类号:G642 文献标识码:A 文章编号:1008-6609(2023)01-0008
2、-042 确立培养工程能力的实验内容编译原理作为计算机及相关专业的一门核心专业课程,课程内容主要涉及原理性质的介绍,其原理和性质除了能够用于编译器的设计,还能够为一些基本问题提供求解方法,以及处理问题的思路,被广泛地用于很多3新的研究领域。与理论教学相配套的实验教学是帮助学生理解、掌握、应用理论知识的必要环节,实施效果的好坏是实现教学目标的有力保障,也是实现工程教育专业认证人才培养目标的重要途径。根据计算机专业工程教育认证要求,我校确定了编译原理实验教学支撑的毕业要求指标点,具体内容如表1第二列所示,对应的产出类型如该表的第一列所示。表1的毕业要求指标点包含三个方面,分别对应不同的产出类型,各
3、个指标点的内容都明确指出与复杂工程问题的求解有关,这就要求编译原理课程实验内容需要围绕解决复杂工程问题进行设计,以达到培养学生解决复杂工程问题的人才培养目标。工程教育是高等教育的重要部分,工程教育专业认证通过实施成果导向的教育,注重学生创新、实践等能1力的培养,最终实现人才培养的工程化目标。作为国际间本科工程教育专业学位互认协议,华盛顿协议指出了本科阶段主要是培养学生解决复杂工程问题的能2力。我国工程教育专业认证的12条毕业要求中有8条都与学生解决复杂工程的能力培养有关。针对编译原理实验教学的现状,依据计算机专业工程教育认证背景下的毕业要求指标点的内容,结合编译技术在解决复杂工程问题中发挥的作
4、用,本文以学生为主体、以教师为主导,提出了确定面向学生工程能力培养的实验内容、设计面向学生工程能力培养的实验过程以及构建工程能力培养结果的评价体系等方面的实验改革,并在实践教学中积极落实,引导学生面向能力目标开展学习,突出了对学生工程能力的培养。课程组深入分析表1第二列的毕业要求指标点的内容,突出培养学生运用编译原理的理论和技术解决复杂工程问题的能力,以此确定了编译原理实验教学目标,编译原理课程是一门理论性强、编译程序各个部4分相对独立、涉及算法复杂的专业课程。很多学校的编译原理实验任务分为两种类型,一种实验任务要求学生编程实现编译程序的各个阶段的功能,如构造一个简单的词法分析器或者实现一个自
5、上而下的语法分析程序等,另外一种实验任务要求学生实现一个小型5编译器。因为这些实验过于注重算法的设计,与实际应用结合不紧密,大多数学生因为不清楚相关原理能解决什么实际问题,所以兴趣不高,从而导致学生完成实验的主动性和积极性不高。显然,如果仍然延续传统的实验教学模式,很难满足工程教育专业认证所要求的毕业要求指标点。1 引言作者简介:赵晓(1978),女,陕西西安人,博士,副教授,研究方向为人工智能、数字图像处理等。基金项目:国家自然科学基金资助项目,项目编号:61601271;陕西科技大学博士启动经费,项目编号:2019BJ-27;陕西科技大学校级教改项目,项目编号:21Y072。电脑与电信8D
6、OI:10.15966/ki.dnydx.2023.z1.004电脑与电信实验教学包括对理论知识的验证、掌握和运用,是7一个重在过程的教学工作。实验过程的合理设计是帮助学生保质保量完成实验任务的必要条件,是满足工程教育专业认证所要求的学生能力培养的关键环节。考虑到课程实验学时少的现状,课程组借助超星“学习通”教学软件,采用线上线下相结合的方式设计实验教学过程。从以下三个方面重点阐述实验教学的改革措施。3 设计培养工程能力的教学方案分层设计后的实验内容立足工程问题,结合学生的兴趣点,循序渐进的阶梯式设计,逐渐加大拟解决问题的难度,体现了对学生针对复杂问题的分析、建模和求解能力的培养。每个指标点对
7、应的教学目标如表1第三列所示。基于教学目标,结合编译原理技术在软件工程、信息安全、计算机测评、网络管理与协议解析以及自然语言处理等方5面的应用,课程组结合学生实际的认知能力、编程能力以及实验学时等情况,对编译原理实验内容进行设计,按照难度递增的原则将实验内容设计为三个层次,第一个层次:利用词法分析器的原理,实现识别合法的电子邮件地址、统计文本中特殊意义的词频、识别DNA序列模式串、检测网络病毒等实验题目,要求学生熟练运用正规文法对待识别对象进行定义,能够建立相应的状态转换图,并根据状态转换图编写相应的算法,用熟悉的编程语言编写程序。学生选择上述任务中的一个完成即可。第二个层次,应用语法分析器的
8、原理和技术,实现一个包含加法和乘法运算的公式计算器,学生能够利用上下文无关文法表示算术表达式的语法规则,借助递归下降子程序法进行算术表达式的识别,形式上正确的算术表达式经过语法分析后生成语法树,对语法树遍历后求解算术表达式的值。第三个层次,综合前两个层次的实验知识进行高阶综合性实验的设计,实现程序代码相似度的检测、DNA序列相似性检测等复杂工程问题,教师提供相应的任务需求分析及简要解析,借助翻转课堂等互动式教学形式,让学生在自主学习、小组交流、难点问题讲解、回答问题等方式中增强对实验内容、方法的理解,大多数学生能够完成实验。(2)针对层次一和层次二的实验特点,设置诸多相关的问题,以随机提问的方
9、式督促学生独立完成实验方案设计、实验报告撰写等任务。层次一和层次二的实验原理涉及词法分析和语法分析的基本原理和技术,因为这些理论知识已经在理论教学中讲解过,所以要求学生独立完成。学生明确实验的基本任务基础上,在实现程序设计的同时,完成需要提交的资料,这些资料包括实验结果、实验预习报告和实验报告。为了加强对预习环节的管理,防止学习预习报告的抄袭情况,利用超星“学习通”发布测试题,检查学生的预习情况,提高预习的效果。教师将实验中用到的知识点设计成不同的问题,以随机选题的方式发布给学生,检查学生的预习情况。(3)层次三的实验属于综合应用型实验,通过小组协作,以翻转课堂的形式助力学生顺利完成实验。学生
10、完成教师在“学习通”上发布的由编程、编译理论等综合知识组成的测试题,教师依据分数高低将学生分成46人的翻转课堂学习小组,教师发布实验任务,提供实验基本需求的说明,实验任务的简要解析讲解,推荐拓展资源。学生以小组的形式自主学习与实验相关的资料,组内交流讨论,提出实验设计的方案和相关模块。(1)对实验任务进行逐步分解,以此完成整个实验任务。基于编译原理实验的教学目标,针对实验内容难易程度的不同,课程组通过细化实验过程,引导学生通过完成一系列的小任务从而驱动整个实验任务的完成。以第一个层次的实验任务为例,学生确定好选题后,引导学生在问题分析的基础上,第1个小任务是抽象待识别的符号串的词法规则,设计表
11、示词法规则的正规文法,第2个小任务是画出小任务1的正规文法的状态转换图,第3个小任务是用代码表示状态转换图中各状态的迁移过程,第4个小任务是测试程序并进行功能优化。相对于整个任务化整为零、化繁为简,学生易于实现各个阶段的小任务,更加容易实现每个小任务的功能,从而消除畏难心里,轻松完成整个实验任务。表1 毕业要求指标点和教学目标产出类型毕业要求指标点教学目标问题分析分析建模研究实践具有运用数学、物理和计算机科学基本原理,识别和判断计算机领域复杂工程问题关键环节的能力识别和判断解决计算机领域复杂工程问题的关键环节和指标需求,能够运用编译器相关技术分析问题,确定恰当的解决方法具有运用数学、物理和计算
12、机科学基本原理,选取适当的数学模型,正确表达计算机领域复杂工程问题的能力结合计算机领域复杂工程问题的基本雷求,结合正规文法以及上下文无关文法定义相关的语法规则、构建状态转换图以及定义自上而下语法分析的的文法,正确表达问题的求解过程能够基于科学原理,借助文献研究等方法,调研和分析计算机领域复杂工程问题的解快方案能够结合查阅相关文献资料调研的结果,合理运用编译原理的理论和技术分析解决方案,能够利用高级程序设计语言实现具体功能,对方案进行测试和分析,并能够准确、清晰表达实验相关结果9电脑与电信学生在整个实验过程中,不但可以持续完成实验任务,遇到困难还能够及时发现并得到有效解决,步步推进,逐项完成实验
13、任务,达成实验教学目标。在多样化评价方式下,教师能够动态了解学生对编译原理理论知识的掌握情况、运用理论知识和技术对工程问题的解决能力以及专业素养的提高程度,引导学生学会“自己学”“做中学”和“思中学”。教师根据学生的评价结果分析课程培养目标与毕业要求的符合度与达成度,进一步完善课程教学活动,对实验教学进行持续改进,以更好地保障对学生工程能力的培养。5 改革效果评价体系主要用于评价学生对于编译原理理论和技术的理解及运用情况,包括应用编译技术解决实际问题过程中的学习情况,允许学生评价自己的学习以及在小组学习中获得的知识和技能,让学生依据实验数据、实验结论以及已有的理论知识解释回答开放性问题,证明自
14、己理解了编译原理理论和技术,能够对自己的进步和所掌握的理论知识和能力给出评价,能够提出可进一步探究的相关问题。依据上述的评价体系的主旨,根据不同层次的实验内容,设计相应的考核依据与指标以及各个实验任务的成绩占比,具体的内容如表2所示。依据三个层次的实验的难易程度,我们设置了每个实验成绩占总分的比例依次是25%、35%和40%。前两个层次的实验任务,学生以“预习报告和实验报告”的形式呈现实验结果和结论,实验过程是教师掌握学生对实验各个环节理解的主要途径,所以前两个层次的考核依据主要采取“预习报告+实验过程+实验报告”的考核方式。预习报告和实验报告考核学生是否能够按照规范的模式对实验的目的、内容、
15、步骤、实验结果以及实验心得进行合理地阐述,占该项实验总分的比例依次设置为20%和30%。实验过程包括各个小任务的完成质量,实验结果的演示,程序功能的完成程度,分为功能的基本实现、基本完善以及完全实现,针对存在的问题进行合理的评价等,该项占比为50%。第三个层次的实验需要学生以小组的形式完成“翻转课堂+答辩+小论文”等任务,这三部分考核内容的成绩占该类实验总分的比例依次是40%、30%和30%。翻转课堂要求学生展示对各阶段任务的理解,设计的解决方案,对难点问题的处理方法等,学生在答辩环节展示实验方案、实验结果以及团队协作等方面的成果。在答辩环节设置一些问题,加深学生对实验的理解和认识,随机选择答
16、辩小组组员回答问题,调动学生参与实验的积极性,打消个别学生蒙混过关的念头。小论文是综合性实验的全面介绍,并对实验结论进行说明和讨论。在翻转课堂以及实验答辩环节设置了组内互评、组间互评以及教师评价,组内互评、组间互评和教师评价成绩占比依次是30%,30%和40%。为了防止组内和组间的恶意评价,教师制定互评标准,学生按照互评标准对其他同学打分。问卷星问卷调查结果表明,学生普遍认为通过这样的课程实验教学改革获得了多方面的能力提升,认为对问题的分析能力、建模能力、算法设计能力、工程实践能力、团队协作能力、文献阅读能力、自主学习能力等4 构建培养工程能力结果的评价体系课程组针对20202021第2学期计算机科学与技术专业3个班开展实验教学改革实践,调查反馈结果表明,以解决工程问题为驱动、以提高学生能力培养为目标设计的分层次的实验教学改革模式,吸引了更多的学生积极参与到实验任务中,细化后的实验过程以及精准的评价标准对于完成情况良好的学生是一种激励,对于动手能力差的、依赖性强的学生具有一定的督促作用,提高了学生整体实验完成质量。在翻转课堂中展示小组形成的阶段性成果、对于难点问题的解决思路等,充分展示