编译技术线上线下混合式教学研究
2023-05-30谢红侠王志晓张辰刘佰龙
谢红侠 王志晓 张辰 刘佰龙
摘要:分析了当前主流教学工具的特点,选取了雨课堂+学习通(慕课平台)+钉钉+在线实验平台的线上线下混合教学模式作为疫情以来的编译技术课程的教学方式。针对线上教学师生之间的时空距离的特点,设计了课前慕课自主学习、课堂重点知识讲解与讨论、课堂测试与练习及课后测评、在线实验评测系统等教学环节,从不同的角度让学生参与到教学中来,最大限度地提供自主学习资源与便捷工具。真正做到了停课不停学,切实保障了课程教学效果,提高了学生的动手能力及自学能力。
关键词: 编译技术;混合式教学;在线测评;慕课;雨课堂
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2023)01-0175-03
1 引言
在当今的环境下,国内很多老师为了提高编译技术课程的教学质量,进行了多种教学改革[1-5]。编译技术是计算机科学与技术的一门重要的专业基础理论课。通过课程的学习,使学生获得所学内容的基本概念、基本理论和基本编译程序的开发方法,为学习后继课程和进一步获得编译知识奠定必要的基础。通过各个教学环节,培养学生具有词法分析、语法分析、语法制导翻译、中间代码生成等一般编译器的开发原理和方法的能力。为达到这一目的,结合所学的在线教学工具,确立了雨课堂+中国大学慕课+钉钉+在线实验平台的混合教学模式作为编译原理课程的在线教学方式。
2 在线教学工具的比较与选择
2.1 各种在线教学工具的比较
随着科技的发展,用于教育的在线工具也如雨后春笋般层出不穷,我们应该选择哪些工具作为我们的教学工具呢,表1对目前市场上主流的一些教学工具进行了比较分析。
2.2 在线教学工具的选择
通过比较以上多个平台发现,各个平台都有各自的优势与不足之处,用单一的在线教学工具不能满足课堂教学的要求,但是可以将它们组合在一起,扬长避短,发挥各自的长处,从而取得较好的教学效果。依据课程特点及教学要求,结合在线教学工具的优缺点,选取了雨课堂+学习通(MOOC平台)+钉钉作为编译技术课程的混合式教学平台。
2.3 实验平台的选择
学校没有提供合适的在线实验平台编译技术课程。学校已有的实验平台只提供了实验成果提交的平臺无法监控学生做实验的状态。经过调查研究发现EduCoder是一个由国内知名高校、产业联盟和大型企业共同发起的新型信息技术工程教育平台。EduCoder支持程序设计、软件工程、数据库、操作系统、编译技术、机器学习等全品类计算机专业方向的教学、实验、实训和科研活动。以闯关的模式循序渐进地进行实训。因此编译技术课程选择该平台作为实验平台。
3 线上线下混合式教学设计
3.1 基于MOOC平台的教学组织
随着疫情的发展,开学初的线上教学已成常态化,为了更有效地开展线上教学,课程组梳理了编译的知识点,将课程的重点、难点进行了梳理,并根据教学的进度进行了知识点的划分,分工合作完成了知识点的录制工作。这些知识点涵盖了以下内容:
形式语言与自动机理论中的基本概念、DFA、NFA、正规文法之间的等价关系及相互转换;词法分析中的单词分类、单词的正则表达式描述、有限自动机识别单词的机理与实现;自顶向下的语法分析常见的问题、解决方法、不含回溯的递归下降分析法以及非递归的预测分析法;自底向上的语法分析的一般模型、活前缀在自底向上的语法分析中的作用、识别活前缀的有限自动机的构造、LR(0) 、SLR(1)、LR(1)、LALR(1) 语法分析法及各种方法的对比;语法制导翻译中的属性、属性文法、属性计算的依赖图、S属性文法与自底向上的翻译、L属性文法与自顶向下的翻译;中间代码生成中的中间代码的形式、声明语句的翻译、表达式语句的翻译、布尔表达式的翻译、控制流语句的翻译。代码优化包括常用代码优化的方法如删除多余运算(删除公用子表达式)、合并已知量、复写传播、删除无用赋值等;局部优化技术如DAG图的构造及利用DAG图进行局部优化;循环的识别及循环优化常用的技术如代码外提、强度削弱、变换循环控制条件。
以上这些知识点涵盖了课程的主要内容,也是教学的主要内容。首先录制了这些知识点的视频讲解,接着对知识点进行梳理,为每个知识点构建相应的练习题。最后完成在线教学平台的搭建。这样在线上教学或者混合式教学中,教师可以方便地通过MOOC平台布置预习任务,课堂习题和课后作业及测试,构建从课前到课中再到课后全覆盖的、针对每个学生的学习数据的统计,获取学生的学习状态,针对学习状态异常的学生,可以进行有针对性的辅导,提高整体教学效果。最终实现以面授为主、在线练习为辅、线上线下相结合的混合式教学模式改革。在MOOC教学平台中,每个知识点的练习题为3-5个,主要检查学生的基础知识是否掌握。另外还为每章提供了综合的练习,这个放在了雨课堂中,方便教师在教授完一章之后,对学生进行随堂测试,实时掌握学生的学习情况,并且根据课堂测试结果布置相关作业,对重点、难点的内容进行巩固练习以加深理解。
3.2 课前预习与知识点测评
基于MOOC,课程组构建了编译技术的在线学习平台,该平台提供了重点、难点的知识点的视频讲解、课程内容的课件及对应知识点的练习题,为学生课前预习及知识点测评做好了详尽的准备。对于课程一些重点难点知识点在课前给学生相关的MOOC视频进行观看预习,在课堂上推送预先做好的雨课堂测验检验学生的学习情况,根据检验结果再有针对性地对相关知识点进行具体的讲解,课后再布置相关的作业加强对这部分知识的理解。
3.3 实验设计与测评
我校编译技术课程的实验主要注重编译器前端的设计与实现,分为词法分析器、语法分析器两大部分,语法分析器分为递归下降分析器和LR分析器两部分。往年的实验由学生根据词法分析器、语法分析器的思想,参考教材实现代码自己编程实现,但是学生在实现过程中对错误处理、细节处理不完善。EduCoder上开设的编译课程则是自动化工具,首先把问题形式化表示,然后采用flex、bison将问题形式化描述出来,由工具自动生成代码,便于学生学习编译器自动生成的思维方式和编程方式。自2020年开设的实验转向自动构造编译器的实验,提高了学生的学习兴趣。达到在实验中学理论, 在理论指导下完成实验,以实验来加深对理论的理解。
实验主要选取了词法分析、语法分析、中间代码生成三个实验。其中词法分析主要是完成Tiny C语言的编译程序的词法分析部分实现。要求从左到右扫描每行该语言源程序的符号,拼成单词,换成统一的内部表示(token) 送给语法分析程序。单词种类包括保留字、标识符、字符常量、字符串常量、数值型常量、运算符等单词种类的识别。主要目的是让学生学会针对DFA转换图实现相应的高级语言源程序中单词的识别。通过自己动手编码深刻地领会状态转换图的含义,逐步理解有限自动机,并且理解词法分析器的内部工作原理。
语法分析实验包括两个部分,一个是自顶向下的语法分析,一个是自底向上的语法分析。对于自顶向下的语法分析,实验给出了将要识别的源程序的上下文无关文法,要求学生首先对上下文无关文法进行检查,找出文法中存在的左公共因子和文法的左递归,接下来要消除左递归和提取左公共因子,这样可以避免回溯和语法分析中死循环的现象。 采用每个产生式的左边的文法符号对应一个函数或过程的形式,编写程序实现一个递归下降分析器。可以对如下类型的测试用例进行语法分析。
自底向上的语法分析实验测试用例和自顶向下的语法分析测试用例相同,要求学生根据课堂所讲授的LR(0) 的语法分析方法,编制程序实现对给定的语法进行自底向上语法分析的LR分析器,设计分析表,对于能力强的同学可自动构造识别活前缀的有限自动机,完成分析表的自动构造,能力稍弱的同学可手工构造,对给出的输入语句进行语法分析,判断是否符合相应的文法要求。自底向上的语法分析实验的主要目的是掌握LR分析法的思想,学会特定分析表的构造方法,利用给出的分析表结合高级语言源程序进行LR分析。
中间代码生成要求学生在完成了词法分析、语法分析实验的基础上,将程序整合后,结合语义分析和翻译模式,将Tiny C源程序翻譯为三地址代码形式的中间代码。要求学生在语法分析器基础上,对文法进行改造,使得文法能够进行自底向上的语法翻译,并且易于生成中间代码。完成从生成语法树到生成中间代码的转换。通过实验,学生可以熟悉中间代码各种不同的表示方法及它们之间的优缺点,掌握中间代码的重要作用以及语义翻译的实现方法。
3.4 教学效果
这种教学方法实施两年来,教学质量没有因为线上教学或线上线下教学而降低,由于教学方法的多样性,还提升了学生的学习兴趣取得了较好的教学效果,图2为这两年与线下教学的成绩对比。该图包含每年两个行政班同学编译技术成绩的分析。其中2019年采取的是线下教学,线上教学攻击使用了雨课堂进行课堂知识点的测评。2020—2021年采用了线上线下混合式教学。从学生成绩段的分布来看,高分段(90分以上)学生逐年增加,低分段(70分以下)学生逐年减少,进一步说明了该方法可以提高学生的学习效果。另外多种教学方法的使用,以及方便快捷的多种在线测试手段也增加了平时成绩的客观性。
4 结论
本文分析了疫情以来的教学情况的发展变化,对各种在线教学工具进行了分析和比较,结合本校学生特点,在实践中总结出了一套行之有效的线上线下混合式的教学方法,通过教学方法的改革,学习了编译技术这门课程,使学生更好地理解了编译技术的基本原理、编译程序的组成及编译程序的基本设计方法和主要的实现技术,让学生充分认识和了解程序设计语言编译程序的基本结构,并使学生初步具备编译程序的开发能力,进而增强学生解决问题的能力,为未来从事相关工作打下坚实的基础。
参考文献:
[1] 武瑛,张丽华.新工科背景下基于混合式教学的编译原理课程教学改革[J].电脑知识与技术,2019,15(1):169-170.
[2] 王中卿,朱培培.层次化精准编译原理实践教学[J].电脑知识与技术,2020,16(20):158-159.
[3] 孙守卿.基于工程教育专业认证的《编译原理》课程改革[J].电脑知识与技术,2019,15(29):104-106.
[4] 陈义仁,王一宾.编译原理MOOC的教学设计与实践[J].福建电脑,2020,36(1):44-45.
[5] 刘洪娟,宋经平,韩春燕.编译原理慕课建设与混合式教学设计[J].计算机教育,2020(4):98-101.
[6] 谢红侠,孟凡荣,闫秋艳,等.移动互联环境下数据库原理混合式教学研究[J].科教文汇(中旬刊),2020(2):64-65.
[7] 赵永刚.基于钉钉平台线上教学策略研究[J].教育艺术,2021(12):31-32.
[8] 陈义仁,王一宾.编译原理MOOC的教学设计与实践[J].福建电脑,2020,36(1):44-45.
[9] 王敏,方芳.基于超星学习通和EduCoder平台的信息化教学改革探索[J].电脑知识与技术,2021,17(22):226-227.
【通联编辑:王力】