刘 立,王明艳,顾宝程
(南华大学计算机学院,湖南 衡阳 421001)
能力是评价大学生综合素质的主要指标,比较著名的能力素质模型(Competence Model)——冰山模型,由哈佛大学教授麦克里兰(McClelland)[1]提出.我国教育界虽然把能力素质作为教育的核心任务,但一直没有有效的能力模型作为指导.[2]在软件开发行业,编程能力是衡量软件开发人员能力的关键,是影响软件开发的重要因素.国内外学者在能力评估方面作了不少研究[3-8].郑丽娟等[3]在评估策略中增加了模糊判断矩阵的一致性检验,但该评估方法运算量较大,对开发者开发能力的评价不够全面;李家豪等[4]避免了过多地将专家意见等主观因素引入到评价体系中,但无法实现对评估对象的准确评估;GOLECADEM等[9]、LUO L等[10]将模糊层次分析法应用于能力评估,证明在解决多层次、多指标的决策问题中,层次分析法(Analytical Hierarchy Process,AHP)和模糊综合评价法(Fuzzy Comprehensive Evaluation,FCE)的优势.基于国内外在能力评价和编程能力评估方面的研究成果,结合AHP和FCE的优点,笔者提出一种基于改进的模糊层次分析法(FAHP)的编程能力评估模型,并将企业对大学生编程能力的反馈加入到大学生编程能力多层次评价模型中,以此构建更全面的、更切合实际的大学生编程能力评价体系.在Matlab中对该编程能力评估方法的自动评价机制进行仿真,实验结果证明了模型的有效性和实用性.该评价方法既可以为企业招聘提供参考依据,也可作为评价高校计算机专业大学生编程能力的手段.
美国T L Satty等在20世纪70年代提出的AHP是结合定性和定量分析的多层次、多目标决策方法,该方法将复杂的决策问题分解成若干个因素,并根据支配关系建立层次结构,常被用于计算目标的各指标权重.由于对编程能力进行评估时,所使用的评语常常带有模糊性,因此笔者将 AHP和 FCE相结合,在层次分析法中引入了模糊一致矩阵,不但解决了判断矩阵的一致性问题,提高了算法的收敛速度,而且满足了计算精度的要求.此外,由于模糊综合评估以“非此即彼”的思想评价复杂对象,评价常介于“好”与“坏”之间,所以笔者用加权平均模型代替取大取小模糊算子,将评语集按等级区间化赋值代替最大隶属度原则,从而使得评价结果更加可信、更切合实际.
统计分析智联招聘、前程无忧和猎聘网等各大招聘网站对开发人员编程能力的需求,并充分考虑专家经验,从基础知识素养、程序理解与复用、实战能力和企业反馈4项内容对开发人员的编程能力进行评价.编程能力评估指标体系如图1所示.
图1 编程能力评估指标体系Fig.1 Programming Ability Evaluation Index System
采用如表1所示的0.1~0.9标度法对编程能力评估指标进行两两比较,得出优先关系矩阵F1—F5,如表2—6所示.
表1 0.1~0.9数量标度Table 1 0.1~0.9 Scale
表2 优先判断矩阵F1Table 2 F1Priority Judgment
表3 优先关系矩阵F2Table 3 F2Priority Relation
表4 优先关系矩阵F3Table 4 F3Priority Relation
表5 优先关系矩阵F4Table 5 F4Priority Relation
表6 优先关系矩阵F5Table 6 F5Priority Relation
通过数学变换[11](rij=(ri-rj)/2s+ 0.5,其中s为模糊一致矩阵的阶层),将优先关系矩阵F1—F5转换成模糊一致矩阵H1—H5.H1和H2矩阵如表7,8所示,H3—H5略.
表7 模糊一致矩阵H1Table 7 H1Fuzzy Consistent Matrix
表8 模糊一致矩阵H2Table 8 H2Fuzzy Consistent Matrix
ωCO=(ωC1OωC2OωC3OωC4O)=(0.216 7 0.275 0 0.325 0 0.183 3),
P层相对于C层各因素权重排序为
ωPC1=(ωP1C1ωP2C1ωP3C1ωP4C1ωP5C1)=(0.220 0 0.210 0 0.235 0 0.170 0 0.165 0),
ωPC2=(ωP6C2ωP7C2ωP8C2)=(0.250 0 0.300 0 0.450 0),
ωPC3=(ωP9C3ωP10C3ωP11C3ωP12C3)=(0.235 5 0.189 7 0.308 3 0.266 5),
ωPC4=(ωP13C4ωP14C4)=(0.400 0 0.600 0).
一级指标权重为C层相对于O层各因素权重排序ωCO,二级指标权重为P层相对于C层各因素权重排序ωPCi(i=1,2,3,4).权重的具体值列于表9.
表9 各层元素权重汇总Table 9 Weight of Collection at Each Level
图2 隶属函数曲线 Fig.2 Curve of Membership Function
(1)
以高校某大学生为例,评价编程能力的14个指标的评分如表10所示.
表10 软件编程能力指标评分及模糊评估矩阵Table 10 Software Programing Ability Evaluation Index and Fuzzy Evaluation Matrix
根据梯形分布法进行一级评估,按照(1)式计算出一级评估结果排序为
(QC1OQC2OQC3OQC4O)=(79.675,85.085,66.315,87.800),
对应一级指标基础知识素养C1、程序理解与复用C2、实战能力C3和企业反馈C4的评分.二级评估结果QPC=76.725,对应编程能力评估值,该值介于70~80,因此该学生编程能力综合评价结果为一般.
通过Matlab进行实验仿真得出的综合评价结果为一般.由表9可知,在编程能力评估指标体系中,实战能力对评价结果的影响最大,而程序运行准确率对实战能力影响较大.由表10可知,该大学生在实战编程能力方面较弱,特别是在程序运行准确率方面存在不足,因此仿真实验得出的结果与根据经验进行推断的结果相符.通过Matlab进行大量的模拟实验,进一步验证了该算法的正确性和有效性.
为解决高校大学生编程能力的定性和定量评估中存在不客观、不准确的问题,综合层次分析法和模糊综合评价法的优点,提出了基于改进模糊层次分析法的评估方法,为教师及时发现学生的优势和不足,以及为用人单位招聘合适人才提供依据.
参考文献:
[1] 吕 鲲,陈西平.能力结构模型、评价和实证方法研究[J].现代教育管理,2010(9):62-65.
[2] 杨宝山.实践能力评价的现状、问题与方法[J].教育研究,2012,33(10):69-74.
[3] 郑丽娟,任永昌.一种计算机专业学生软件开发能力评价方法[J].计算机技术与发展,2013,23(6):233-236;240.
[4] 李家豪,刘 婧,吴泽群,等.基于模糊层次分析法的社交编程网站开发者评估方法[J].计算机应用研究,2016,33(1):141-146.
[5] 张永梅,马 礼,孙海燕,等.基于模糊神经网络的程序设计能力、实践与创新能力评价方法[J].实验室研究与探索,2017(2):18-22.
[6] 鈴木隆之,高田圭,高橋宗雄,等.Technique for the Evaluation of Programming Ability Based on MTS[M].John Wiley & Sons,Inc.,2007.
[7] DALY C,WALDRON J.Assessing the Assessment of Programming Ability[J].ACMSigcse Bulletin,2004,36(1):210-213.
[8] CHAMILLARD A T,BRAUNKA.Evaluating Programming Ability in an Introductory Computer Science Course[C].Proceedings of the 31st Sigcse Technical Symposium on Computer Science Education.ACM,2000:212-216.
[9] GOLEC A,KAHYA E.A Fuzzy Model for Competency-Based Employee Evaluation and Selection[J].Computers & Industrial Engineering,2007,52(1):143-161.
[10] LUO L,LIU Y,HU T.Research on the Evaluation Model of Electronic Commerce Innovation Ability of College Students Based on Analytic Hierarchy Process[C].International Conference on Social Science & Higher Education,2016.DOI:10.2991/icsshe-16.2016.46.
[11] 李 永,胡向红,乔 箭.改进的模糊层次分析法[J].西北大学学报(自然科学版),2005(1):11-12;16.
[12] 张吉军.模糊一致判断矩阵3种排序方法的比较研究[J].系统工程与电子技术,2003(11):1 370-1 372.
[13] 陈 策,郭久武,赵春霞.层次分析法和消去选择轮换法相结合的装备软件质量评优方法研究[J].兵工学报,2010,31(11):1 481-1 486.