APP下载

基于模糊神经网络的程序设计能力、实践与创新能力评价方法

2017-04-12张永梅孙海燕付昊天

实验室研究与探索 2017年2期
关键词:模糊化计算机专业程序设计

张永梅, 马 礼, 孙海燕, 付昊天, 周 奇

(北方工业大学 计算机学院,北京 100144)

基于模糊神经网络的程序设计能力、实践与创新能力评价方法

张永梅, 马 礼, 孙海燕, 付昊天, 周 奇

(北方工业大学 计算机学院,北京 100144)

为了有利于解决现有评价方法计算复杂,过多地将专家意见等主观因素引入到评价体系中,建立了计算机专业本科生程序设计能力、实践与创新能力的3级评价指标。由于模糊神经网络汇集了神经网络与模糊理论的优点,集学习、联想、识别、信息处理于一体,能够更加真实地反映人脑对于外界信息的处理;采用模糊神经网络设计实现了程序设计能力、实践与创新能力评价方法。实验结果表明,该方法可以较为合理、全面、客观地评价计算机专业学生的编程、实践与创新能力,有利于发现教学、实践环节中的不足之处,进一步培养经济社会发展急需的信息产业人才。

编程能力; 实践能力; 模糊神经网络; 评价方法

0 引 言

计算机专业本科毕业生应具有计算思维能力、算法设计与分析能力、程序设计与实现能力、系统能力,计算机专业实践性常强。但不少企事业单位反映计算机类毕业生实际应用知识、动手与应用能力不够、程序设计开发经验严重不足,尤其是程序设计能力、算法设计与分析能力无法达到用人单位的要求[1-3]。

程序设计能力是评判一个学生是否是一名合格的计算机专业学生的一个重要指标。如何客观地评价计算机专业本科生的程序设计能力、实践与创新能力,并建立有效的评价体系,是亟需解决的问题[4-5]。

评价方法主要包括层次分析法、灰色关联度分析法,以及模糊综合评价方法。层次分析法是将与决策有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。其具体步骤为构造判断矩阵,求出其最大特征值,及其对应的特征向量,归一化后,即为某一层次指标对于上一层次某相关指标的相对重要性权值,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,最终权重最大者即为最优方案[6]。该方法的优点是:系统性的分析方法,简洁实用的决策方法,所需定量数据信息较少;缺点是:不能为决策提供新方案,定量数据较少,定性成分多,不易令人信服,指标过多时数据统计量大,且权重难以确定,特征值和特征向量的精确求法比较复杂。

灰色关联度分析法是一种灰色系统分析方法,意图透过一定的方法,寻求系统中各子系统(或因素)之间的数值关系。简言之,灰色关联度法的意义是指在系统发展过程中,如果两个因素变化的态势是一致的,即同步变化程度较高,则可以认为两者关联较大;反之,则两者关联度较小。因此,灰色关联度法对于一个系统发展变化态势提供了量化的度量,非常适合动态的历程分析。该方法的优点是:对样本量的要求较低,计算量较小,且与定性分析的结果更为吻合;缺点是:由于现有的模型存在一些缺陷,导致了该方法应用受到限制。

模糊综合评价法是一种基于模糊数学的综合评价方法。该方法根据模糊数学的隶属度理论把定性评价转化为定量评价,即用模糊数学对受到多种因素制约的事物或对象做出一个总体的评价。它具有结果清晰,系统性强的特点,能较好地解决模糊的、难以量化的问题,适合各种非确定性问题的解决。其具体步骤为确定被评价对象的因素(指标)集合评价(等级)集;再分别确定各个因素的权重及它们的隶属度矢量,获得模糊评判矩阵;最后把模糊评判矩阵与因素的权矢量进行模糊运算并进行归一化,得到模糊综合评价结果[7]。该方法的优点是:通过精确的数字手段处理模糊的评价对象,能对蕴藏信息呈现模糊性的资料作出比较科学、合理、贴近实际的量化评价;评价结果是一个矢量,而不是一个点值,包含的信息比较丰富,既可以比较准确地刻画被评价对象,又可以进一步加工,得到参考信息;缺点是:计算复杂,对指标权重矢量的确定主观性较强。

这些评价方法计算复杂,过多地将专家意见等主观因素引入到评价体系中。本文针对上述问题进行了研究,给出反映学生编程能力、实践与创新能力的具有较强针对性的一、二、三级评价指标,利用模糊神经网络的推理模拟和自学习优势,消除了评价过程中的主观性与随机性,最终得到合理有效的评价结果,使学生编程能力、实践与创新能力的确定更加客观规范。

1 学生编程能力、实践与创新能力评价指标的建立

对学生编程能力、实践与创新能力的评价是一项十分重要的工作,通过评价结果可以了解到学生的实际编程能力、实践与创新能力,有利于发现教学、实践环节中的不足之处,进一步培养经济社会发展急需的信息产业人才。

为适应新形势下对计算机人才的新要求,应该加强培养学生的程序设计能力,关键环节程序设计能力、实践与创新能力,完善各类项目、竞赛、实验实践教学,培养大学生的实践与创新能力,提高学生的综合素质,切实提高学生的编程、创新和实践能力。因此需要建立一套较为完整的学生编程能力、实践与创新能力评价指标。选取指标时,应该着重考虑科学性、系统性、全面性、可行性、目标导向性五条原则。

(1)科学性。确立的指标是否能够客观地反应对象的本质和特点是一个评价体系是否合理的一个重要因素。

(2)系统性。一个评价体系除了要从侧面反映出每个学生的编程能力、实践与创新能力,还要反映它们之间的联系,每一组下的指标相互独立,却又彼此联系,共同构成一个有机统一体。

(3)全面性。评价指标要尽可能地覆盖到学生的各个方面,要防止以偏概全,但也要抓住重点,不能因小失大。建立的体系应该能够全面地、综合地反映学生的编程能力、实践与创新能力。

(4)可行性。评价体系的数据来源应该易于获取,同时来源要可靠。指标在保证全面性的前提之下,尽量简化,为后面的数据处理打好基础[8-10]。

(5)目标导向性。建立评价体系的初衷是为了通过评价来提升学生的编程能力、实践与创新能力,要鼓励,激励学生向更好的方向发展。这一点也要体现在评价体系中。

根据上述原则结合我校的具体情况,计算机专业学生的综合能力可以通过编程、实践、创新3个方面进行评定,3个一级指标中,编程能力可被分解为数据表达能力、程序理解能力、系统认知能力、问题分析能力、硬件基础能力、基础科学素养和程序修改与复用能力7个方面进行评定,实践能力可分为实验性课程、实习、竞赛、资格证书的获取和参与项目5个方面进行评定,创新能力则可从学生的创新意识、创新思维、创新知识表达和创新类实践给出评定结果。为了使评价指标更具有可操作性,可以将这些二级指标细化为更具体可行的三级指标,具体指标体系如表1所示。

表1 评价体系表

根据表1所示的评价体系表,通过网络调研,在学校发放调查表,获取到400份指标,其中350份用于训练网络,50份用于测试网络,期望输出是专家对学生的评价结果,采集到的部分数据如表2所示[11-12]。

表2 部分学生的得分情况

专家对学生编程能力、实践与创新能力的评价结果较为准确,但仍带有一定的主观性。对采集到的数据进行简单分析后不难发现,只有个别学生成绩都比较高,大部分存在着“偏科”的现象,即某个指标得分很高,有的指标得分比较低,但指标得分较接近相应的平均成绩。

2 基于模糊神经网络的编程能力、实践与创新能力评价方法

模糊逻辑和神经网络已在理论和应用方面得到独立发展,模糊逻辑的优点是能处理模糊信息、非线性和其他不确定问题,比较适合于表达基于规则的知识;缺点是缺乏自学习和自适应能力。神经网络的优点是具有并行计算,分布式信息存储,容错能力强,自学习功能,缺点是不适合表达基于if-then规则的知识。表3给出了模糊系统与神经网络的比较。

表3 模糊系统与神经网络的比较

近年来,人们将注意力集中到模糊逻辑与神经网络的集成上,以期克服各自的缺点。把模糊逻辑与神经网络集成起来,就形成了一种新的研究领域,即模糊神经网络(Fuzzy network,FNN)。FNN汇集了神经网络与模糊理论的优点,集学习、联想、识别、信息处理于一体,更加真实地反映人脑对于外界信息的处理。一般模糊系统的概念模型如图1所示。

图1 模糊推理系统概念模型

FNN主要由输入层、模糊化层、模糊推理层、去模糊化和输出层5层组成。其中模糊输入层决定网络第1层的节点数目,并且将输入向量向下传递,模糊化层通过隶属度函数实现输入向量的模糊化,输出各个模式的隶属度。模糊推理层采用T-S模糊推理模型,以模糊化层的输出作为权值,对输入数据进行模糊推理。然后通过去模糊化层,将模糊推理结果重新映射成可直接计算的数值,输出层给出最终的综合评价结果。下面给出FNN各层的详细说明。

(1) 输入层。本文通过48个指标实现对学生编程能力、实践与创新能力的综合评价,因此,输入向量即为学生的48个成绩指标。

(2) 模糊化层。本层主要通过隶属度函数和模糊逻辑运算规则,生成模糊权值。隶属度函数选用指数函数:

(1)

由于输入为48维向量,故本层中共含有96个神经元,代表96个隶属度函数。通过将第1层传递过来的数据以全连接的方式输入这些隶属度函数,得到96组隶属度,将得到的各组隶属度采用下式中的模糊乘进行模糊计算,得到控制权值:

(2)

j=1,2,…k

(3) 模糊推理层。采用T-S模糊推理规则进行模糊推理。T-S模糊推理式为:

(3)

(4) 去模糊化层。对得到的权重进行归一化,通过加权平均方法,将上一层得到的中间输出进行去模糊化处理

(4)

(5) 输出层。给出最终的评价结果。评价的最终结果可以表示为

(5)

FNN结构如图2所示。

图2 模糊神经网络结构图

整个网络构建完成后,即可采用BP神经网络训练算法对整个网络进行训练,从而自动对网络中的权值进行调整,使整个网络表达的函数最贴近真实情况,从而生成有效的评价规则。这些评价规则作为知识分布在整个网络结构中,是对学生程序设计能力、实践与创新能力做出正确评价的主要依据[15-16]。

3 实验结果与分析

本文利用Matlab编程实现了模糊神经网络,从400组数据中选取350组数据作为训练数据,另外50组数据作为测试数据。同时,为了增强网络的泛化能力,人为加入了5组特殊值,这5组特殊值所代表的成绩分别为0、40、80、95和100分。图3给出了系统对于训练数据的输出。

图4所示为50组测试数据的输出。整个系统的输出即为去模糊后的百分制成绩,是对每名计算机专业本科生编程能力、实践及创新能力的综合评价。在测试组中,为了测试程序的泛化能力,也向其中加入了3组特殊值,分别为98、90和30分,与训练组中的特殊值完全不同。由图4可见,系统无论是对正常测试数据还是对3组特殊值,都取得了很好的预测结果,并且所有测试数据产生的输出均与专家组的预测有较高一致性,误差平均值仅为1.014 4,能够对大学生的编程能力、实践与创新能力进行综合、客观的评价。

图3 网络对于训练数据的输出

图4 网络测试数据输出及误差曲线

通过对训练后网络的权值进行逆向分析,发现在最末层权值中,第26、28、46、54、72这5组训练结果具有较大权值,即对最终成绩的评定具有较大贡献。前向追踪这5组线性表达式,进一步分析发现这5组数据中,权值较大且具有公共频度的共有15个指标。这15个指标及频度见表4。

表4 15个指标的编号及出现频度

这些编号对应的相应指标为:面向对象程序设计、数据结构、C语言程序设计、计算机组成原理、汇编程序设计、概率论与数理统计、程序运行准确率、程序调试能力、软件程序设计竞赛、数学建模竞赛、全国计算机等级考试、计算机软件水平考试、个人开源项目经验、发散思维能力、专业知识创新能力。

由此可见,一个具有较强程序设计能力、实践与创新能力的计算机专业毕业生必须具备的素质包括:①较强的专业知识,必须至少了解一门程序设计语言以及相应的数据结构。②对计算机专业程序编译具有全面而深刻的了解,了解操作系统在最底层是怎样运转的,知道程序的编译及运行过程。③相应的数学素养,较高数学素养能够有效帮助学生理解算法的原理。④实际动手编写程序的能力,自己动手编写程序,并能对程序进行快速、准确调试。⑤参与竞赛项目。⑥具有项目经验,能够参与教师负责的国家基金、科技支撑计划、横向科研等课题,结合具体实际,设计算法、编写程序。⑦良好的逻辑思维能力、抽象能力、编程习惯,能够学以致用。

4 结 语

本文建立了计算机专业本科生程序设计能力、实践与创新能力的三级评价指标,采用模糊神经网络设计实现了程序设计能力、实践与创新能力评价方法。该方法可以较为合理、全面、客观地反映计算机专业学生的编程、实践与创新能力,为解决学生编程、实践与创新能力的不足给出了参考数据,通过评价结果可以了解到学生的实际编程能力、实践与创新能力,有利于发现教学、实践环节中的不足之处,进一步培养经济社会发展急需的信息产业人才。

[1] 牛源渊. 基于AHP与DEA的高校科研竞争力评价——以“一省一校”工程院校为例[J]. 高等财经教育研究, 2015,18(3):38-42.

[2] 邵民智,岑脉霆. 居民食品消费价格指数递进时段灰色关联度分析研究[J]. 数学的实践与认识, 2015,45(9):1-8.

[3] 李 茹,张丽芳,褚诚缘. 科技项目模糊综合评价方法研究[J]. 系统工程理论与实践, 2006(9):66-76.

[4] 左国平,谢红艳,邱小平,等. 基于神经网络的高校教师课堂教学质量评价[J]. 中国现代教育装备,2011(3):97-99.

[5] 张金梅,员世芬,谢克明. 人工神经网络在教学质量评价体系中的应用[J]. 太原理工大学学报,2005,36(1):37-39.

[6] 冯莹莹,于 干,周红志. 层次分析法和神经网络相融合的教学质量评价[J]. 计算机工程与应用,2013,49(17):235-239.

[7] 郑 永,陈 艳. 基于BP神经网络的高校教师教学质量评价模型[J]. 重庆理工大学学报,2013,29(1):85-90.

[8] 吕云玲,全雪峰,孟晓红,等. 利用模糊-BP神经网络评价高校教师教学质量[J]. 计算机时代,2009(8):36-38.

[9] 饶崇林,田裕康,邓燕妮. 基于标准模型的模糊神经网络及其Matlab实现[J]. 三峡大学学报,2012,24(7):83-85.

[10] 鲜晓东,熊庆宇,陈 静,等. 基于神经网络的高校学生信用模糊评价研究[J]. 计算机科学,2007,34(9):203-205.

[11] 高兴培.模糊神经网络在教学质量评估中的应用研究[J].中国科教创新导刊,2009(9):56-57.

[12] 袁莺楹,刘红梅. 高校教学质量评价的BP神经网络模型[J]. 计算机与数字工程,2015,38(5):16-18.

[13] 洪顺华. BP神经网络在教学质量评估中的应用[J]. 机械制造与自动化,2005(6):160-162.

[14] 乔维德. 基于BP神经网络的现代远程教育教学质量评价模型的构建[J]. 中国远程教育,2006,17(7): 69-71.

[15] 秦荪涛. 高校教学工作水平评估的人工神经网络模型[J]. 计算机系统应用,2004(10):34-37.

[16] 吴 蕾,吴 婷. BP神经网络在教学质量评价中的应用观察[J]. 湖南理工学院学报,2014,27(3):33-36.

Programming, Practice and Innovation Ability Evaluation Method Based on Fuzzy Neural Network

ZHANGYongmei,MALi,SUNHaiyan,FUHaotian,ZHOUQi

(School of Computer Science, North China University of Technology, Beijing 100144, China)

In order to solve the problem of complex computation, and much introduction of the subjective factors such as expert opinions in the existing evaluation methods, this paper establishes tertiary evaluation indexes of programming, practice and innovation abilities for computer major students. Because the fuzzy neural network brings together the advantages of neural network and fuzzy theory, sets learning, association, recognition, information processing in one, it can more truly reflect the human information processing of the external world. The paper designs and implements evaluation method based on fuzzy neural network. Experimental results show the method can more reasonably, comprehensively and objectively evaluate programming, practice and innovation abilities for computer major students, find the deficiencies of teaching and practice, further train information industry professionals for economic and social development.

programming ability; practice ability; fuzzy neural network; evaluation method

2016-03-01

国家自然科学基金项目(61371143);北方工业大学2015年教育教学改革和课程建设资助课题“培养大学生程序设计能力、实践与创新能力的研究与探索(XN093-001)”项目

张永梅(1967-),女,山西太原人,博士,教授,研究方向为图像处理。

Tel.:13810842037,010-88802212;E-mail:zhangym@ncut.edu.cn

TP 183

A

1006-7167(2017)02-0018-05

猜你喜欢

模糊化计算机专业程序设计
([0,1],[0,1])-模糊拟阵的基和秩函数
“以赛促学,以赛促教”促进计算机专业教学理念创新与实践研究
餐饮娱乐空间的“边界模糊化”态势探讨——餐饮娱乐空间设计专辑
基于Visual Studio Code的C语言程序设计实践教学探索
三角模糊数去模糊化对VIKOR妥协解的影响研究
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
职业高中计算机专业教学改革浅析
PLC梯形图程序设计技巧及应用
非计算机专业C语言教学探讨