1. 研究目的与意义
由于常年的疫情防控影响,全国高校的教育事业不断地向线上教学演进,而由于缺少线上教学的经验,也暴露出了很多的弊病。虽然理论课的教育可以轻松在线上和线下之间切换,但是类似计算机编程的实践课由于线上与线下之间的落差太大,缺少合适的学习和管理平台,导致经常因为疫情的原因而不得不延迟调课,既耽误了课程的学习,也大大降低了学生们的编程热情。因此产生一套成熟的计算机编程实践智能教学系统是实现优质编程教学的关键[1]。从目前来看,计算机编程实践缺乏合适的线上编码和水平测试的平台,难以达到教学质量和优化编程实践效果的目标[2]。因此,为了保证一定的教学质量,我们需要创造一套新型的编程实践智能教学系统。
本课题基于以上考虑,增加了例题分析、资源上传与下载、在线编程等系统功能,并可以自动检查用户输入的代码,智能地提示代码中的错误原因与修改意见。另外,改进了组卷策略,优化智能组卷模型,利用动态学生模型分析知识点的学习情况选取符合当前参数指标的试题。因此我们有必要实现一套成熟的智能教学系统,以满足当下高校师生对教学品质的需求。
2. 课题关键问题和重难点
二、课题关键问题及难点 将智能教学系统的业务功能模块化,需要完成例题分析、资源上传与下载、在线编程以及代码评测等功能。
本课题的关键:
对于例题分析模块,要改进系统的组卷策略,首先初始化试题,利用动态学生模型分析知识点的学习情况,再去抽取符合当前参数指标的试题;资源上传与下载模块主要是将文件上传至服务端或用户从服务端下载已有文件,可通过原生Java方式或其他类库来实现[3];完善计算机编程代码评测功能,需要集成静态检测工具与抽象缺陷模式,优化代码检测技术,融合静态检测和动态监测,完善知识规则库,利用缺陷模式匹配算法去检查代码,智能提示代码中的错误原因与修改意见。在编译和运行Java源程序代码时,可能会产生两种信息,一种是运行结果输出,一种是错误信息输出,需要对这两种信息都进行捕捉。因此可以创建两个输入流,一个用于连接运行结果输出,另一个用于连接错误信息输出。但一般情况下,这两种信息不会同时出现,程序正确执行时会输出运行结果,程序执行失败时会输出错误信息。为了方便处理,我们捕捉这两种信息,但合并到一个字符串对象中一同处理。在运行编译命令时,如果程序没有语法问题,不会有任何信息输出,输入流不会捕捉到任何信息;如果程序有语法问题,会输出编译错误或警告信息,输入流也会捕捉到错误或警告信息。因此,如果编译没有出错,捕捉到的信息对象为空,则可以继续执行运行代码的命令。如果编译出错,则到此结束,将捕捉到的编译错误信息返回页面显示[4]。
本课题难点:
词法分析也称为分词,此阶段编译器从左向右扫描源文件,将其字符流分割成一个个的词(token,记号,后文中将称为token)[5]。所谓token,就是源文件中不可再进一步分割的一串字符,类似于英语中单词,或汉语中的词。程序语言中可用的token的类别是有限的,而且是非常少的。一般来说程序语言中的token有:常数(整数、小数、字符、字符串等),操作符(算术操作符、比较操作符、逻辑操作符),分隔符(逗号、分号、括号等),保留字,标识符(变量名、函数名、类名等)等。在词法分析中,主要难点在于解决语法的歧义性,所谓歧义,就是指对于一个符合语法结构的句子,它可以由两种不同的方式被推导出来。如果一个语法中,任何一个句子的推导方式都是唯一的,那这个语法就被称为是没有歧义的[6]。显然,程序语言必须是没有歧义的。例如25 13*8,我们希望先算乘除,再算加减,为了消除歧义问题,一种方法就是引入“优先级”[7],不需要改写语法,当推导过程中出现歧义的时候(也就是出现两种不同的推导方式的时候),利用符号的优先级来选择需要的推导方式即可。
|
3. 国内外研究现状(文献综述)
由于常年的疫情防控影响,全国高校的教育事业不断地向线上教学演进,而由于缺少线上教学的经验,也暴露出了很多的弊病。虽然理论课的教育可以轻松在线上和线下之间切换,但是类似计算机编程的实践课由于线上与线下之间的落差太大,缺少合适的学习和管理平台,导致经常因为疫情的原因而不得不延迟调课,既耽误了课程的学习,也大大降低了学生们的编程热情。因此对于线上复杂的计算机编程类课程学习,拥有一套成熟的智能教学系统是实现优质教学的关键。
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器主要是用于将汇编或高级计算机语言源程序作为输入,翻译成目标语言机器代码的等价程序。高级程序设计语言推动了计算机的发展和应用,其中编译器起着中流砥柱的作用。它的设计与实现是个很大的软件工程,其依赖的相关编译原理以及技术也十分复杂[8]。编译器有三个阶段,即词法分析、语法分析和中间代码生成。它使用了一些古老的编译器构造原则,如递归下降解析、语法定向翻译和回发[9]。
4. 研究方案
1. 系统功能结构
系统总体功能结构如图1所示
5. 工作计划
2022-2023-1学期:
第15-16周:完成选题,查阅相关中英文资料,进行相关技术的学习;
第17周:与导师沟通进行课题总体规划;
以上是毕业论文开题报告,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。