当前位置:首页 期刊杂志

形成性评价在程序设计实践中的应用

时间:2024-05-04

古 平,张 程,孙天昊,李 佳,杨瑞龙

(重庆大学 计算机学院,重庆 400044)

0 引言

形成性评价也称过程性评价,是指在教学过程中对学生的学习过程进行评价的方式。形成性评价采取目标与过程并重的价值取向,着重关注学生的学习效果、过程、参与程度和学习态度等。教师通过形成性评价可以获得更加全面的反馈信息,使学生的学习策略与教师的教学方法同时得到改进和优化,促进教与学的协调发展。

形成性评价可以解决传统总结性评价的很多问题,因此国内研究者逐渐将其引入相关教学活动,如与网络教学手段相结合,实现全过程的信息采集与评价[1-2];通过学生自评与互评,实现建构主义学习理论[3-4];通过构建发展性评价系统[5],实现多元化评价及结果可视化[6]等。但这些研究均与计算机专业实践特征和能力要求不符,因此教学、应用过程中面临以下几个问题:①以实验为核心的形成性评价体系研究不足,计算机作为一门实践性较强的学科,其形成性评价内容、指标和方法均与理论教学不同,需要针对性的研究与设计;②完整、及时的过程数据采集对实验形成性评价的准确性尤为重要,但现有研究过度依赖人工观察和采集,无法支撑大数据环境下的形成性评价体系。

1 程序设计实践中的形成性评价体系

1.1 形成性评价思路

应将程序设计实验的各个环节与形成性评价相结合,通过自动或半自动方式采集实验过程相关数据,利用大数据分析与处理方法,形成反映学生实践能力的多维评价体系,进而准确地对学生在知识、技能、能力、态度等方面进行评价。

1.2 形成性评价主体

传统评价体系中多采取教师评价与学生自评、互评的方式,因此评价主体主要为教师、学生。但无论是教师还是学生,其评价过程的主观性都较强,有时还存在一定的随意性和片面性。因此,本研究将计算机应用也作为形成性评价的主体之一,既可以独立参与对学生特定实践能力的评价,也可以为教师评价提供辅助决策。

1.3 形成性评价内容

程序设计类实验一般由算法设计、编码、测试、调试、发布、报告编写等过程组成,涉及的形成性评价内容主要包括实验方案设计、实验操作过程、实验数据记录、计算机程序源码、实验报告、实验态度等。评价内容不同,数据获取方式也不同,如实验方案设计、实验报告、计算机程序等电子文档,由于实时性要求较低,可以通过系统上传获取;实验态度可部分通过人脸识别系统自动记录、汇总学生出勤情况获得。

实验过程数据采集最为复杂,一方面其实时性要求很高,另一方面随着实验进程,数据量将呈爆发式增长,传统的事后采集或人工采集方式显然无法满足这一特殊需求。因此,本研究将大数据技术引入形成性评价系统,利用学生客户端驻留程序,实时、自动地采集学生在程序开发过程中产生的关键数据,通过数据清洗和预处理,转化为结构化或非结构化数据,再通过关系数据库和非关系数据库(如NoSQL)进行混合存储。

1.4 形成性评价指标

评价指标无疑是形成性评价体系的核心,本研究主要结合程序设计的能力要求和形成过程,设计了以下形成性评价指标,见表1。

表1 面向程序设计类实验的形成性评价指标

2 面向程序设计实验的形成性评价支持系统设计

2.1 软件架构设计

整个评价支持系统由4部分组成:客户端采集子系统、数据存储与加工子系统、形成性评价分析子系统、评价子系统,其总体架构见图1。

客户端采集子系统提供多种途径实现基础数据采集功能,主要由学生客户端驻留模块和面部识别考勤模块组成;数据存储与加工子系统负责接收实时或非实时实验数据,清洗和预处理后,通过MySQL和NoSQL混合存储;形成性评价分析子系统作为本系统的核心,主要通过多种数据分析、处理技术,对学生实践能力提供多维可视化和评价量化分析;评价子系统一方面提供教师实验报告检查、批阅、综合评价功能,同时利用反馈机制实现由“实践”到“理论”教学的反向闭环。

图1 形成性评价支持系统总体架构图

2.2 主要模块设计

2.2.1 代码静态评测

代码静态评测是指不需要运行源程序,通过程序理解、语义分析等方法对源程序进行质量评价,其在形成性评价中的应用模式主要有3种:用于教师评价学生语法熟悉情况;用于教师评价学生算法设计能力;解决学生程序无法执行时的质量评价问题。

2.2.2 代码自动评测

好的软件应该在功能、性能、界面、安全性等多个方面满足产品质量标准。除界面、安全性等指标外,软件功能、性能均可以通过代码自动评测实现。功能评测主要建立在程序编译、执行结果和预期结果对比的基础上。对部分编译无法通过的程序,系统提供简单纠错功能,如果仍然无法运行,则转而执行静态评测。性能测试主要通过分析程序执行CPU时间、内存使用量、数据访问量等实现。

2.2.3 代码与报告查重

代码和报告对程序设计实验而言非常重要,但又极易通过抄袭完成,因此,引入抄袭检测,一方面可以反映学生的实验态度,也可以作为督促学生独立、自主实践的一种手段。

针对某些学生为了逃避抄袭检测,可能采取改变变量名、颠倒语句顺序、增加无关代码等方式掩盖抄袭行为的问题,本系统在传统串处理方法基础上,利用位置无关的“指纹”信息进行代码比较,提高了查重的效率。图2为班级内代码查重的情况。如果对上述数据进行聚类分析,可以进一步发现多个学生之间直接或间接抄袭的情况,见图3。

报告查重的原理、方法与代码查重基本相似,但其内容更复杂,如含有图、表抄袭检测。本系统采取PHash算法与OCR字识别相结合的思路,在降低抄袭图表误检、漏检率的同时,保证了系统的运行效率。

2.2.4 程序开发过程分析

通过对程序开发过程的跟踪、分析,有助于准确掌握学生的语法熟悉情况、程序调试能力以及实验态度等,其数据主要源自驻留在学生客户端的数据采集子系统,主要包括剪贴板数据、编译错误数据、调试结果对比数据、编译错误修复时间、逻辑错误修复时间、输入代码量、程序执行结果等。

2.2.5 报告辅助批阅

在格式审查的基础上,自动从实验报告文档中抽取规格化信息,并根据报告模板生成待批阅电子报告,教师直接通过系统对实验报告进行在线评阅,所有批阅信息最后再反向写入原报告文档中,见图4。

3 应用效果分析

为了验证支持系统对形成性评价的有效性,实验选取学院计科、网络专业的程序设计课程Java程序设计进行初步应用,每次实验课16学时,共分4次进行。

首先,通过随机抽取的超过200份样本,对评价支持系统的准确性和效率进行分析。结果显示,系统对报告查重的误报率和漏检率为14%和10%,对源码查重的误报率和漏检率为18%和6%。其次,从运行效率上看,人工评阅报告的时间约为2分钟/每份,人工评阅程序的时间约为5分钟/每份,而评价支持系统则在1~2秒/每份。更为关键的是,评价支持系统应用以后,学生的抄袭情况明显好转,实验态度得到极大改善。

图2 某班级内实验源码查重情况图示

图3 某班级内代码抄袭团结构图示

图4 实验报告辅助批阅功能图示

其次,在保持理论教学、实践内容相同的情况下,在一个专业中应用评价支持系统,而作为对照在另一专业中仍然使用传统评价方式。通过期末组织的上机独立水平测试,可以发现两组学生在实验完成率、正确率、优秀率等指标上表现出一定的差异,见表2。实验结果表明,使用形成性评价支持系统对提升学生的程序设计能力效果明显,表明形成性评价确实起到了引导、反馈和改善的效果。

此外,在两种评价方式下,分别从原实验考核成绩为“优”“良”“中”的学生中各抽取12、30、16名学生作为观察样本,在完成上述独立水平测试后,对比其水平测试成绩与原实验考核成绩,见表3,可以发现使用形成评价支持系统对学生的能力评价更为准确、客观。

表2 形成性评价支持系统对学生实践能力影响 %

4 结语

形成性评价是现阶段教学评价的热点,但在计算机专业实验教学中应用很少,其主要原因在于复杂的实验环节需要教师投入过多的精力设计评价活动,采集、分析数据。本文以大数据分析技术为基础,设计了一套面向程序设计类实验的形成性评价方法、体系,并开发了一套集多种功能于一体的辅助支持系统。通过在实际教学中的应用,证明了该系统对提高学生实践能力的有效性,但由于系统仍处于试运行阶段,所选实验样本有限,还需要进一步验证和优化,并逐渐提升系统的准确性与应用范围。

表3 两种评价方式下的准确性对比

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!