姜振凤
(枣庄学院信息科学与工程学院,山东 枣庄 277160)
程序设计ITS中的智能诊断及评价工具研究
姜振凤
(枣庄学院信息科学与工程学院,山东 枣庄 277160)
目前智能技术在网络教学系统中的应用是一个大的趋势,对于大多数编程新手来说,在开放式的计算机程序设计在线学习平台中进行有效率的编码及程序开发学习是非常困难的,而智能教学系统凭借其自动适应学生的学习需要、提供个性化教学方式等优势能最大化提高教学质量和效率.运用文本挖掘和机器学习技术,对基于程序设计智能教学系统中的诊断及评价工具进行研究,并给出了系统模型的构建方案.智能诊断及评价模块主要包含“重要度计算器”、“复合分类器”、“反馈模块”、“程序设计评估”等4部分,针对学习者提交的程序源代码和注释信息进行处理,并能将评价结果反馈给学习者,从而达到提高学生学习效率及协助教师甄别成绩较差学生并对其进行有针对性辅导的目的.
智能教学系统;学习评价;文本挖掘;评估反馈
智能教学系统(Intelligent Tutoring System,简称ITS)是人工智能技术与计算机辅助教学相结合而形成的一个新兴的研究领域.近几年随着WEB技术、数据挖掘、智能代理(Agent)、专家系统等技术在ITS中的应用,使得智能教学系统在系统结构、知识表示和管理等方面取得了新的进展.对于一个能够进行程序设计教学的ITS平台,它应在一定程度上模拟人类教师进行实践编程环节的教学活动,并能够根据学生对知识的理解和掌握程度,自动调节教学方法及教学进度,从而进行个别化教学.此外,为了提高学生在程序设计类ITS平台中的学习质量,必须对学生的学习效果进行分析并提供有效的反馈.
本文利用文本挖掘和机器学习技术设计一个基于程序设计类ITS中的诊断和评估工具.学习者在编程过程中感到困惑或止步不前的时候,该智能评估工具能够根据学生的学习档案为学习者提供指导,帮助程序设计ITS中学习能力较弱的学习者在开展的学习项目中取得持续的进展,而且评估模块也能够协助教师评价学习者的最终学习质量.
1.1 智能教学系统
计算机技术在教育领域的应用已经越来越普遍.传统的计算机辅助教学(CAI)主要是通过一个树结构向学生展示教学材料,并引导学生从一个页面到另一个页面进行学习,这种方法的局限性在于它没有考虑学生的知识多样性和特定需求[1].此外,CAI系统无法像人类导师那样对学生提供个性化的关注.
一个智能教学系统能够以一种更为灵活和个性化的方式向学习者提供教育材料.这些系统可以用于常规教学过程,也可以用于远程教学.实证研究表明,个人一对一的辅导是最有效的教学和学习模式,而ITS则能提供一种技术来实现计算机辅助一对一教学辅导,这也是ITS区别于CAI的一个主要特点.智能教学系统综合利用计算机科学、人工智能技术、教育心理学等多门学科的研究成果,特别是在Web上构建的智能教学系统,不仅能够利用网络实现分布式教学,还可以不受时间和空间限制同时接受多个用户的并发访问,最大程度满足资源共享及因材施教的需要,因此智能教学系统成为网络教学发展的必然趋势[2].V.J.Shute和J. Psotka在文献[3]中提出ITS必须能够实现三个主要任务:
1)使用“原则”对学生的知识水平(例如学生的速度、学生擅长或较为薄弱的特定领域以及当学习更多知识时的学习速度)进行准确的诊断,这些“原则”并非是预先编写好的响应程序;
2)决定下一步做什么,并相应的进行指令调整;
3)提供反馈.
由于智能教学系统是一个涉及多学科的复杂知识系统,在发展过程中存在很多未能解决的问题,其中提高系统评价诊断功能的智能性和功能性是亟待解决的问题之一[4],目前在ITS中的诊断和反馈机制通常是使用人工智能技术来实现.
1.2 程序设计ITS中的评价诊断工具
在过去几年,使用机器学习技术开发有效的学习诊断和评价系统已经成为相关文献的研究热点.为了帮助教师在智能教学平台上更容易分析学生的学习档案,很多研究人员试图从学生的学习档案中提取一些有用的信息从而反映学生在ITS课程活动中的参与度.基于网络的学习评价工具的应用优势已经在相关文献中进行了描述.文献[5]指出ITS给出的提示反馈可以有效的减少学生在学习过程中的挫败感.文献[6]研究表明,学生在学习过程中如果能够定期、及时地收到有关学习进展的反馈,不仅能够提高学习积极性还有助于提升他们的成绩;此外,教师也可以在管理工作量的同时进行有效的教学和实践评估.文献[7]也指出,使用提示和反馈功能,学生能够主动参与学习过程,有助于提高学生的知识掌握及检测一些在学习中可能出现的误区.
针对程序设计类课程教学特点,Ala-Mutka在文献[8]中提出了5个程序代码设计的评价指标,分别是模块化、简单明了性、实效性、文档编制,程序输出结果的正确性.
1)模块化.包括各种类的实现及封装问题;
2)简单明了性.如程序中函数及代码块的评价长度,简短语句的使用等;
3)有效性.如变量作用域;
4)文档编制.如是否给出有意义的注释信息;
5)程序输出结果的正确性.包括执行输出的正确性和合理性.
选择以上评价标准集对学习者完成特定问题而编写的程序进行评估,其主要意图应放在对学生完成程序设计实际的编码和设计规范进行有效的评价,因为比起单纯地从源代码中收集统计信息来说,让学习者拥有更多的程序结构知识才是更为重要的.目前,每种编程语言的编译器都具备了较为完备的警告选项来协助程序设计人员检查程序语法的有效性.而对于编程初学者而言,培养良好的程序设计风格是十分重要的,这其中对于程序注释的合理使用能够较为客观的反映学习者对程序设计的理解和程序结构的把握.例如通过程序注释学习者可以对该项目所涉及的程序模块的功能、算法、接口(参数描述、调用形式等)等进行详细说明,因此,对于学习者提交的程序注释进行知识挖掘也可以作为评价学习者对学习内容掌握程度的重要标准之一.
1.3 相关实现技术
自然语言处理(NLP)是一种计算机处理人类语言的方式,包括自然语言理解和自然语言生成两部分.自然语言理解是对自然语言的内容和意图的深层次把握;自然语言的生成是指从非自然语言输入到自然语言输出的处理.NLP可以应用于诸如语音识别、对话系统、信息检索和知识表示等各种基于语言的领域.在文本方面主要有基于自然语言理解的智能搜索、文本分类与文件整理、智能机器翻译、自动判卷系统、语法校对、文本挖掘与决策等.NLP是基于内置的语法和语义数据库表示每个句子的意思.然而,对于某些专门的应用领域建造一个详尽的语法和语义数据库是非常困难的.
文本挖掘技术已经广泛的应用在很多研究领域,如语义网络挖掘、外汇预测等.近年来,文本挖掘技术也被应用到智能电子学习平台的实现.文献[9]将基于三种人类思维(包括相似、接近、对比)的联想能力与智能决策Agent相整合,为学生提供了一个可以积极参与集体研讨并发表独创性意见的平台.文献[10]利具有语义网络概念的智能Agent教授人工智能课程,并且相关信息可以从网络中被监控、过滤和检索.文本挖掘应用还包括在自然语言文本中查找模式,实现文本分析、提取信息的过程.例如,从文本数据库中确定句子的相似度就一种无形的知识提取过程.利用文本挖掘技术从短文中检索信息已经被证明是一个有效的方法.用于在长文本文件中检查句子相似性所采用的传统技术主要针对重叠词进行研究,然而由于自然语言所特有的灵活性使得人们完全可以使用不同的句子结构和内容来表示相似的含义,因此在句子中词共现的情况可能比较少见或不存在[11].本文中基于程序设计ITS的智能评估模块所要处理的信息之一就是由学生根据要完成的作业所提交的中文程序注释信息,为此本文主要针对短文本进行相似度计算.
本文所涉及的智能教学系统的体系结构如图1所示.系统的主要功能定位是用于协助教师进行本科生程序设计课程的教学工作.按功能划分智能教学系统分为智能接口模块、学生模块、教师模块、专家知识领域模块及诊断评价模块等主要部件.其中对于学生学习情况的诊断评估数据都来自于学习者的学习档案,学习档案在学习者在线学习过程中进行更新.学习者的学习档案涉及的主要内容包括:
1)教师根据历史学习记录对每个学习者进行的能力评估;
2)每个学习者的响应时间;
3)每个学习者通过智能教学系统提交的附有注释的程序源码.
图1中所示的诊断评价模块主要用于对学习者所编写的源代码进行质量评定.诊断评价模块不仅能够监控学习者的学习状况并及时为学生提供所需的帮助,还要向教师和和学生提供最终的学习报告.评价模块给定的度量主要基于以下几个方面:学习者所编写程序的执行结果,学习者提供的注释及程序单元和结构.这种度量方法使得学习者在最终提交作业前有机会进一步改进其编写的代码质量.
基于上文中的5个评价指标,本文研究的智能诊断评价模块包括4个主要部件,分别为重要度计算模块、复合分类器、反馈模块及程序设计评估模块.其中复合分类器采用3种分类方法来计算学习者提交的注释与预期解决方法之间的相关度.从学生的学习档案中提取的程序代码注释是以中文形式给出的,采用向量空间模型(VSM)来表示注释文本.VSM的基本思想为:假设组成句子的词是互相独立的,每个句子都可以表示为一个向量,该向量由包含于该句子的词组成[12].VSM模型简化了句子的表示方法,并使其具有可计算性.根据从学习者提交的程序注释中提取的动词和名词,重要程度计算器得出的数值能够对学习者的解决方案给出有效性度量.然后这个数值被输入到复合分类器来确定是否学习者在学习过程中出现一些误区.教师基于反馈规则集来构建所需的反馈信息数据库[13],反馈模块用于向学习者提供反馈信息.为了便于计算,从注释中提取的动词和名词将转换为数组形式作为诊断模块的输入,因此诊断模块与具体的语言或字符没有直接关联.
3.1 重要性程度计算模块
在进行程序设计智能教学系统平台操作之前,教师首先收集程序的样本注释并为每个样本注释分配相关度值.为每个样本注释生成的分词结果和相关度值的组合被用于测量学习者提交的注释和参考答案注释之间的相关性.根据教师为每个样本注释分配相关性程度,建立正、负模板类向量,分别代表注释相对于参考答案注释的相关性和非相关性.这两个模板类向量协助智能教学系统为每个学生提交的注释分配一个合适的值,同时也为每个学生在学习过程中的学习状态提供一个有效的测量工具.
模板文本类向量的构建算法简介如下:
1)假设事先教师收集了n个样本注释.利用VSM来提取句子中各个单独的词.只保留动词和名词作后续处理.样本注释的分词结果按照以下形式进行保存:[Wi,1,Wi,2,…,Wi,ki]T,其中ki表示在样本注释中最后提取词的标识.
2)根据教师对样本注释和教师预期的实施方法之间相关度的判断,每个样本注释中的词被放置在与预期结果相关的正样本集和与预期结果不相关的负样本集中.这两个模板文本类向量可表示为[P1,P2,…,Ppos]和 [N1,N2,…,Nneg]两种形式.
3)对于每个样本文本类向量中的词Pi,其重要性程度可以用以下公式表示(式(1)~(2)).
其中:pfPi,pos和pfPi,neg表示词Pi分别在正、负样本集中的正常出现频率.添加一个正常数K是为了防止等式中除数为0的情况.IDFpi为逆文档频率,可用式(3)定义:
其中:N代表注释总数,PNPi是包含词Pi的注释的编号,η代表一个正常数.
4)通过式(4)~(5)生成正、负模板本文类向量.式(4)~(5)在分类过程中可用于比较学习者提交的第i个注释分词结果.
对于学习者提交的第i个注释的测试文本类向量可以通过式(6)和式(7)表示.
如果Pj不属于第i个注释,且1≤j≤neg,则sdp1,neg=0;
注意,每个注释的两个测试文本向量都作为各个分类器的输入进行处理.
3.2 组合分类器
组合分类器模块包含3个基本分类器,分别为文本类向量相关性分类器、支持向量机(SVM)、多属籍贝叶斯分类器(MMB).在收集的样本代码注释中训练这3个基本的分类器模型并记录其精度.然后将精度作为每个分类器的权重.分类器的精度越大,其相应的权重也越大.由于SVM已经被成功的运用在如手写数字识别、语音识别、文本分类等各种分类应用领域,因此本文将SVM分类器作为基本分类器.
3.2.1 文本类向量相关性分类器 程序的参考答案注释和学习者提交注释的相关度用以下式(8)~(9)计算.
如果Pj不属于第i个注释,且1≤j≤pos,则sdp1,pos=0;
其中:vpos和vneg分别表示模板文本向量中的正类和负类,ti,pos和ti,neg分别表示学习者提交的第i个注释的文本向量的正、负类.式(8)~(9)计算得到的相关度决定了学生发布的注释与参考答案之间的相关性,如果rpos大于rneg,则学生提交的注释与参考答案注释相关.
3.2.2 支持向量机分类器 在SVM模块中,程序的参考答案注释和学习者提交注释的相关度用式(10)计算.
其中:Wi,j表示提取的关键词,pfWi,j,pospfWi,j,neg表示词Wi,j分别在收集的相关注释和不相关注释中的出现频率.η代表一个正常数,IDFWI,J由式(3)计算得出.
3.2.3 多属籍贝叶斯分类器 由于在模式识别和机器智能领域,多属籍贝叶斯分类器对人类固有的不确定性推理有着高效的建模能力.与基本贝叶斯方法相比,MMB不仅能够准确的识别当前内容的多个类别,而且对于训练集没有限制[13].多属籍贝叶斯分类器的核心是其推理引擎的构成,如式(11)所示.
其中:P(Ci)是Ci类别模式的先验概率,P(Ci|T1,T2,…,Tk)表示类别Ci在相关选定特征集T1,T2,…,Tk中的后验概率,P(T1|Ci)表示特征Tj在当前给定的类别Ci的条件概率.在样本注释中每个分割词相对于参考答案的相关度由式(1)和式(2)得出,相关度用于确定由多属籍贝叶斯分类器推理引擎收集的特征集.此外,对于学习者提交的程序注释,利用式(6)和式(7)从正、负文本类向量中得到等量的特征集,这些特征集都输入到MMB推理机并运用MMB算法来获得分类结果.
3.3 反馈模块
反馈模块的结构如图2所示.反馈模块由反馈规则构造器和反馈信息分配器组成.反馈规则构造器允许教师标记与预期解决方案相关的样本注释并创建相应的规则.教师提供的规则也作为提供给学习者的一种问题解决方法的提示或建议.如果组合分类器得出的最终结论是学习者提交的注释与预期的解决方案无关时,或教师指定的必须元素或结构没有出现在学习者提交中的源代码中时,反馈信息分配器被激活并向学习者发送适当的反馈信息.
当学习者提交的注释被认为是一种不恰当的问题解决方案时,检查所有的负样本类中的样本注释,其中与提交的注释最相近的一个将触发相应的反馈规则,并向学习者反馈一个适当的诊断信息.样本注释和提交注释的相似度计算如下(式(12)~(14)):
图2 反馈模块结构图Fig.2 Architecture of the feedback module
其中:c代表第i个样本注释的文本向量,p表示学习者提交注释的文本向量,k和m分别代表分割关键字在第i个样本注释及学习者提交注释中的编号.需要注意的是在两个文本向量中每个元素的值与式(2)计算的重要度值是相同的.如果由式(12)计算得出的相似度低于某预设阈值,则提交的注释将被认为是与数据库中所有的反馈规则不匹配.反馈模块将告知教师并允许教师生成一个新的反馈规则来处理学习者发布的这一不合适的程序注释.
3.4 程序设计评估模块
程序设计评估模块主要从模块化、简单明了性、实效性、文档编制,程序输出结果的正确性等5个方面进行评价.在对学习者提交的程序代码进行综合评估之前,针对每个任务项目,教师应提供一个或多个示例程序源代码.在项目开发结束后,由教师明确提出对应程序代码的模块化及简单明了性这两个标准.程序代码的实效性可以根据学习者完成任务过程中程序的执行时间和内存使用情况获得.文档编制的有效性是通过诊断评估模块中的复合分类器得出的.学习者编写程序输出结果的正确性是通过与教师提供的示例程序输出结果进行对比得出的.当程序设计评估模块收集到五个指标的评分结果后,评估模块将对学习者完成任务的总体表现情况进行评估,计算公式如下(式(15)).
其中:m、s、e、r和v分别代表“模块化、简单明了性、实效性、文档编制,程序输出结果的正确性”5个评价标准,α、β、γ、δ和ε是各个相应项的权重因子.这些权重因子由教师在向学习者布置任务之前指定.
本文构建了一个基于文本挖掘和机器学习的智能教学评估工具.通过检查学习者针对指定问题提交的程序源代码及注释,来判断其学习结果与预期结果相比是否出现偏差.当诊断工具判断学习者处于学习误区时,反馈规则构建机制将用于向学习者提供反馈信息.评估模块用于协助教师评价学习者的学习质量,五个评价指标包括模块化、简单明了性、有效性、文档编制,程序输出结果的有效性.教师既可以将评价结果作为学习者期末成绩的一部分,也可以利用该评估结果在每个学习阶段发现那些落后的学生以便进行更有针对性的辅导.
[1]Yao J T,Yao Y Y.Products and Services of Web-based Support systems:building research tools for scientists in the new informaton age[C]//Pro⁃ceedings of the IEEE/WIC International Conference on Web Intelligence,Canada:Halifax,2003,10:570-573.
[2]Brusiovsky P.Intelligent tutoringsystem CMS forword-wide web[C]//Dar CMStadt,Dar CMStadt:Proceeding of Third International WWW Confer⁃ence,Fraunhofer Institutefor Computer Graphics,2005:42-45.
[3]Shute V J,Psotka J.Intelligent tutoring systems:past,present,and future[C]//Handbook of Research on Educational Communications and Technol⁃ogy.Macmillan,New Your 1996:570-600.
[4]郭长庚.智能教学系统若干关键技术研究[D].武汉:武汉理工大学,2012.
[5]Raineri D M,Mehrtens B G,Hu bler A w.CyberProf-An Intelligent Human-Computer Interface for Interactive Instrction on the World Wide Web[J].Journal of Asynchronous Learning networks,2008.1(2)http://www.sloan-c.org/publications/jaln/v1n2/pdf/v1n2_raineri.pdf.
[6]Smill C R.The Implementation and Evaluation of OASIS:A Web-Based Learning and Assessment Tool for Large Classes[J].IEEE Transaction on Education,2005,48(4):1-6.
[7]Guzman,Conejo R.Self-Assessment in a Feasible[J].Adaptive Web-Based Testing System,IEEE Transanctions on Education,2005,48(4):688-695.
[8]Ala-Mutka K,Uimonen T.Supporting students in C++Programming Courses with Automatie Program Style Assessment[J].Jouranl of Information Technology Education,2004(3):245-262.
[9]Yuan S T,Chen Y C.Semantic Ideation Learning for Agent-Based e-Brainstorming[J].IEEE Transactions on Knowledge and Data Engineering,2008,20(2):261-275.
[10]Pantic,M.,Zwitserloot.Teaching Introductory Artificial Intelligence Using a Simple Agent Framework[J].IEEE Transaction on Education,2005,48(3):382-390.
[11]Chenn-Jung Huang,Chun-Hua Chen,Yun-Cheng Luo.Developing an Intelligent Diagnosis and Assessment E-learning Tool for Introductory Pro⁃gramming[J].Educational Technology&Society,2008,11(4):139-157.
[12]邬启为.基于向量空间的文本聚类方法与实现[D].北京:北京交通大学,2014.
[13]Lo,S.-A,Lee,C.-Y.Atuomatically Classify Web Sites by Multimembership Bayesian Approach[C]//Proceeding of Third International Confer⁃ence on Information Technology,New Generation,ITNG,2006:580-583.
责任编辑:时 凌
Probe into the Intelligent Diagnosis and Evaluation Tools in ITS of Programming Design
JIANG Zhenfeng
(College of Information Science and Engineering,Zaozhuang University,Zaozhuang 277160,China)
Currently,the application of intelligent technology in the field of E-learning system is a great tendency.To the majority of the novice programmers,it is rather difficult to effectively conduct the work of coding and program developing in on-line learning platform under open computer programming.Never⁃theless,intelligent tutoring system,by virtue of the superiorities,such as automatically adapting to the leaners’learning demands,providing personalized teaching approaches,etc.,can maximally enhance the teaching quality and efficiency.In light of the technologies of text mining and machine learning,the present study aims to probe into the diagnosis process and assessment tools in intelligent tutoring system based upon programming design,and puts forward the construction schemes of the system model.The in⁃telligent diagnosis and evaluation modules mainly cover the following four parts,i.e.significance degree calculator,composite classifier,feedback module,and programming assignment.This can well deal with the program source codes and comment information to which the learners submitted,and can also feed⁃back the evaluation results to the learners,so as to achieve the goal of upgrading students’learning effi⁃ciency,giving assistance for the teachers to discriminate those students with lower scores and providing targeted counseling for them.
intelligent teaching system;learning evaluation;text mining;evaluation feedback
TP311
A
1008-8423(2015)03-0308-06
10.13501/j.cnki.42-1569/n.2015.09.021
2015-07-16.
山东省“普通本科学校应用型人才培养专业发展支持计划”项目(33301).
姜振凤(1981-),女,硕士生,讲师,主要从事数字化教育资源、数据挖掘等的研究.