一种面向编程题作业的同伴互评系统及方法与流程

文档序号:18272507发布日期:2019-07-27 09:50阅读:632来源:国知局
一种面向编程题作业的同伴互评系统及方法与流程

本发明涉及互联网教育技术领域,具体涉及一种面向编程题作业的同伴互评系统及方法。



背景技术:

随着经济水平和互联网技术的发展,慕课成为高等教育领域的变革力量,提供了大规模、开放式、在线的教学活动环境。由于其大规模的特性,在教师人工评定评阅数量有限、机器评定的灵活性缺乏的情况下,同伴互评被认为能够有效应对大型网络课程环境下,大规模学习测评需求。

考察已有的慕课平台的互评题,其类型多为主观题。而计算机相关课程作为慕课主要课程,编程题也成为慕课作业中重要的组成部分。教师在提供编程类互评题型时,缺乏合理的评分维度指导,无法达到培养学生优秀代码意识的教学任务;学生在评阅过程中,缺乏合理的分数评定指导,无法科学地评价编程题代码,无法让评分过程转化为学生学习过程。在评分机制上,由于缺乏维度指导,互评活动的可信度和效率较低,分数机制死板,缺乏灵活性。



技术实现要素:

本发明的第一个目的是提供一种能够为互评学习者提供编程题评分维度的分类指导,为评分操作提供科学的参考依据,同时能提高编程题同伴互评结果准确性的面向编程题作业的同伴互评系统。

为实现上述目的,本发明采用了如下技术方案:一种面向编程题作业的同伴互评系统,包括教师端、学生端及服务器端;所述教师端与学生端通过服务器端实现数据交互;

所述教师端包括前端题库模块、作业发布模块、以及学生成绩接收模块;所述前端题库模块用于教师端向服务器端上传和获取编程题互评作业;所述作业发布模块,用于教师用户编辑作业、以及向学生用户发布作业;所述学生成绩接收模块,用于教师用户接收学生编程题互评作业得分;

所述学生端包括作业接收模块、作业提交模块、学生互评模块、以及作业结果接收模块;所述作业接收模块,用于接收编程题互评作业、以及待互评判分的编程题作业;所述作业提交模块,用于学生用户向服务器端提交编程题作业代码、以及编程题作业的互评结果;所述学生互评模块,用于学生用户对他人编程题作业进行评价判分;所述作业结果接收模块,用于学生用户接收编程题互评作业得分;

所述服务器端包括后端题库模块、作业模块、学生作业记录模块、以及成绩计算模块;所述后端题库模块,用于读取并储存所有教师用户提交的编程互评题;所述作业模块,用于教师用户编辑作业、以及向学生用户发布作业;所述学生作业记录模块,用于存储学生用户提交的编程题代码、编程题作业的被评价判分次数、作业被互评所得结果矩阵、以及记录各学生用户参与互评次数;所述成绩计算模块,用于统计编程题作业得分,并将结果提交给教师端和学生端。

本发明的第二个目的是提供一种能够为互评学习者提供编程题评分维度的分类指导,为评分操作提供科学的参考依据,同时能提高编程题同伴互评结果准确性的面向编程题作业的同伴互评方法。

为实现上述目的,本发明采用了如下技术方案:一种面向编程题作业的同伴互评方法,包括以下步骤:

步骤(1):教师用户通过教师端提供编程题互评作业中各编程题的评分指导维度、并给所选评分指导维度赋予机动性权值;

步骤(2):服务器端向学生端随机分发作业后,学生用户通过学生端对编程题互评作业中各编程题按照评分指导维度及评分指导维度机动性权值,进行互评判分;

步骤(3):服务器端根据编程题互评作业中各编程题的各维度分数,统计学生作业得分,并按维度统计作业教学完成度和维度教学完成度。

进一步地,前述的同伴互评方法,其中:在步骤(1)中,具体赋分方式包括:

(1)编程题互评作业中每道编程题qi,题目集合可表示为{q0,q1,...,qk},题目总分为

(2)教师用户从提供的评分指导维度中选择所需的评分指导维度wi,维度集合可表示为{w0,w1,...,wn},则每道编程题qi的维度集合为其中评分指导维度包括:正确性、健壮性、可读性、灵活性、规范性、代码效率和易用性;

(3)教师为选择的评分指导维度赋机动性由于题目qi总分为则各评分维度赋分集合为其中

进一步地,前述的同伴互评方法,其中:在步骤(2)中,按照评分指导维度及评分指导维度机动性权值进行互评判分,具体包括:

(1)设合法学习者rx,即参与编程代码提交且参与互评者,用集合{r0,r1,...,rm}表示;

(2)互评阶段开始后,设互评学习者rx每次打分为pi,则代码作者r0题目qz的维度的此次得分为学生用户通过作业提交模块,将互评判分结果提交至服务器端,并记录作业被互评次数counter、学习者rx评分次数count;

(3)代码作者r0经过除自己以外互评者{r1,r2,...,rm}评分后,其题目qz得分可表示为:

进一步地,前述的同伴互评方法,其中:在步骤(2)中,作业分发过程中,将作业按被互评判分次数进行升序排序,取前n份作业,即优先分发被互评次数小的作业;对被互评判分次数相同的作业,对作业id进行顺序分发。

进一步地,前述的同伴互评方法,其中:在步骤(2)中,判分时对不合格学习者进行分数归零,具体包括:

(1)在sthomework<tnow<etmewrk时间内,学生用户若未参与编程题作业代码的提交,则视为放弃本次作业的参与权,同时,该学生本次作业成绩默认为0分;

(2)在sthuping<tnow<eting时间内,学生用户若未参与互评活动,或参与互评次数未达到要求的n次,则视为放弃本次作业的参与权;同时,该学生本次作业成绩默认为0分;

其中,sthomework为本次作业的作业阶段开始时间、ethomework为本次作业的作业阶段结束时间,sthuping为互评阶段的开始时间、sthuping为互评阶段的结束时间,tnow为现在时间。

进一步地,前述的同伴互评方法,其中:在步骤(3)中,根据编程题互评作业中各编程题的各维度分数,统计学生作业得分,并按维度统计作业教学完成度和维度教学完成度,具体包括:

(1)互评阶段结束后,计算代码作者r0的题目qz各维度代码得分的计算方式为:

(2)代码作者r0的题目qz得分为:

(3)代码作者r0的本次作业得分为:

(4)互评阶段结束后,服务器端分析获得所属课程班级学习者{r0,r1,...,rm}在本次作业中数据,并按维度统计作业教学完成度和维度教学完成度;

其中,所属课程班级学习者{r0,r1,...,rm}的题目qz的教学完成度为:

其中,所属课程班级学习者{r0,r1,...,rm}的维度qz的教学完成度为:

通过上述技术方案的实施,本发明的有益效果是:

(1)本发明将题目系统与作业系统分开,本发明允许教师在一次作业中,同时加入多道编程类互评题,具有适应性、可操作性和灵活性;

(2)本发明从计算机程序设计核心原则出发,以设计模式六大原则基础,参考计算机领域教育学术文章、实际行业代码评价标准、计算机程序设计语言设计者著作,将计算机程序设计教学指标,与实际行业通行标准结合,将计算机程序设计原则理论,与实践操作规范化过程结合,有助于培养学生的优秀代码习惯、代码性能意识、代码规范化意识、代码发展意识、用户友好意识,在帮助学生完成教育过程的自我测评的同时,为学生学以致用投身行业奠定基础;

(3)发明在互评阶段为学生引入判别指导维度,降低学生评价难度,提高学生评分的积极性,解决学生判分过程中给分模糊缺乏指导、判断主观不能真实反映代码实际水平的问题,提高判分结果的准确性;

(4)本发明在互评阶段为学生提供判别指导维度,在互评过程中,参与评价的学生需考量各个维度,考察待评编程题代码的正确性、健壮性、可读性、灵活性、规范性、代码效率和易用性,在此过程中,学生需要通过计算时间复杂度、空间复杂度等方式,对代码进行判分;这个过程对学生的技能水平和优秀代码意识水平提出了新的要求,让学生不仅在答题时进行学习,在互评中也能进行学习、巩固并测试所学知识,帮助学生在各个环节培养优秀的代码习惯,提高代码水平。

附图说明

图1为本发明所述的一种面向编程题作业的同伴互评系统的结构示意图。

图2为图1中教师端的结构示意图。

图3为图1中学生端的结构示意图。

图4为图1中服务器端的结构示意图。

图5为本发明中学生用户进行作业互评作业流程图。

图6为本发明中服务器端记录作业的流程示意图。

具体实施方式

下面结合附图和具体实施例,对本发明的具体实施方法做进一步详细描述。

如图1所示,本发明所述的一种面向编程题作业的同伴互评系统,包括教师端、学生端及服务器端;所述教师端与学生端通过服务器端实现数据交互;

如图2所示,所述教师端包括前端题库模块、作业发布模块、以及学生成绩接收模块;所述前端题库模块用于教师端向服务器端上传和获取编程题互评作业;所述作业发布模块,用于教师用户编辑作业、以及向学生用户发布作业;所述学生成绩接收模块,用于教师用户接收学生编程题互评作业得分;

如图3所示,所述学生端包括作业接收模块、作业提交模块、学生互评模块、以及作业结果接收模块;所述作业接收模块,用于接收编程题互评作业、以及待互评判分的编程题作业;所述作业提交模块,用于学生用户向服务器端提交编程题作业代码、以及编程题作业的互评结果;所述学生互评模块,用于学生用户对他人编程题作业进行评价判分;所述作业结果接收模块,用于学生用户接收编程题互评作业得分;

如图4所示,所述的所述服务器端包括后端题库模块、作业模块、学生作业记录模块、以及成绩计算模块;所述后端题库模块,用于读取并储存所有教师用户提交的编程互评题;所述作业模块,用于教师用户编辑作业、以及向学生用户发布作业;所述学生作业记录模块,用于存储学生用户提交的编程题代码、编程题作业的被评价判分次数counter、作业被互评所得结果矩阵、以及记录各学生用户参与互评次数count;所述成绩计算模块,用于统计编程题作业得分,并将结果提交给教师端和学生端;

如图5、图6所示,所述的一种面向编程题作业的同伴互评方法,包括以下步骤:

步骤(1):教师用户通过教师端编辑并生成编程类互评题目,对题目内容、题目描述、题目要求、代码示例进行编辑,并提供编程题互评作业中各编程题的评分指导维度、并给所选评分指导维度赋予机动性权值;

其中,具体赋分方式包括:

(1)编程题互评作业中每道编程题qi,题目集合可表示为{q0,q1,...,qk},题目总分为(2)教师用户从提供的评分指导维度中选择所需的评分指导维度wi,维度集合可表示为{w0,w1,...,wn},则每道编程题qi的维度集合为其中评分指导维度包括:正确性、健壮性、可读性、灵活性、规范性、代码效率和易用性;

其中正确性:即代码运行结果是否正确;本维度对程序按照说明书加以执行的能力提出要求,要求学生编程题代码切合题目,达到客观的题目要求;作为与题目本身关联度最高的维度,本维度是所有维度中首选维度;在互评过程中,本维度为编程题代码的总体评定奠定基础;

健壮性:即代码对于错误的输入和内部组成部件的故障,是否能够正确处理;健壮性作为衡量代码在各种出错条件下恢复能力的一种测度,是在正确性之下的,衡量代码优劣的最重要指标;面向健壮性的编程对代码提出了对于妥善处理未期望的行为、及时终止错误、提高容错性的要求;

灵活性:即代码是否可维护、可复用、可拓展、可伸缩;参考设计模式六大原则,即单一职责原则、里式替换原则、依赖倒转原则、借口隔离原则、迪米特法则、开闭原则,代码的灵活性作为建立在设计模式六大原则之上,对于学生代码维护意识的测度,对编程题代码的重用性、可靠性和可维护性提出了要求;一方面,能够系统地帮助教师,考察计算机程序设计理论部分的教学实现;另一方面,培养了学生优秀的代码习惯,为学生发展和适应行业奠定基础;

可读性:是否有完整文档和注解,是否达到简介易读的程度;文档和注释是程序很重要的部分,他们是理解一个工程或项目的途径之一。参考计算机程序设计行业代码评价标准,代码注解的数量和质量是影响代码整洁度的重要指标,对代码可读性的重视符合行业需求,顺应计算机行业小组分工的工作模式;

规范性:包括代码格式是否规范,代码缩进是否规范;代码格式和缩进在python等现代计算机程序设计语言中尤其重要,是影响程序运行和报错的关键。在基础语言中培养良好的代码规范性意识和良好的代码习惯,将帮助学生进行拓展学习;

代码效率:包括时间效率和空间效率两个组成部分;对时间效率和空间效率的判别,对学生在时间复杂度和空间复杂度的计算提出了要求;时间复杂度过高会导致代码效率降低,空间复杂度过高,也会影响代码的性能;代码效率维度的提出,一方面,有益于教师对于教学过程的考察,将学生的互评过程转化为学习和温习过程过程,在判别题目的过程中巩固所学内容;另一方面,培养了学生对于程序的性能意识,在帮助学生养成良好代码习惯、良好算法习惯的同时,也能帮助学生适应计算机程序设计行业的实际要求;

易用性:是否具有完整的输入输出提示、是否具有良好的交互菜单功能;易用性代表用户使用软件的容易程度,易用性意识的培养,对于学生在编程题代码实现过程中,对错误的预判和用户友好度的意识提出了要求,符合计算机程序设计行业要求;

(3)教师为选择的评分指导维度赋机动性由于题目qi总分为则各评分维度赋分集合为其中

完成赋分和题目编辑后,通过教师端的前端题库模块向服务器端的后端题库模块提交form表单,当表单数据合法时,后端题库模块通过函数存储表单包含的题目信息,将教师用户新建的题目载入后端题库模块;

教师用户从题库选择所需编程互评题组成一份作业,允许教师浏览并使用其他教师上传至题库的编程互评题;教师用户确认本次作业的作业阶段开始时间sthomework、结束时间ethomework,互评阶段的开始时间sthuping、结束时间sthuping,设现在时间tnow,则其中tnow<sthomework<ethomework<sthuping<ethuping,完成一次作业的编辑;

步骤(2):服务器端读取数据库中该教师用户所属的班级学生信息,向学生端随机分发作业,学生用户通过学生端对编程题互评作业中各编程题按照评分指导维度及评分指导维度机动性权值,进行互评判分;

其中,按照评分指导维度及评分指导维度机动性权值进行互评判分,具体包括:

(1)设合法学习者rx,即参与编程代码提交且参与互评者,用集合{r0,r1,...,rm}表示;

(2)互评阶段开始后,设互评学习者rx每次打分为pi,则代码作者r0题目qz的维度的此次得分为学生用户通过作业提交模块,将互评判分结果提交至服务器端,并记录作业被互评次数counter、学习者rx评分次数count;

(3)代码作者r0经过除自己以外互评者{r1,r2,...,rm}评分后,其题目qz得分可表示为:

其中,作业分发过程中,将作业按被互评判分次数进行升序排序,取前n份作业,即优先分发被互评次数小的作业;对被互评判分次数相同的作业,对作业id进行顺序分发;

其中,判分时对不合格学习者进行分数归零,具体包括:

(1)在sthomework<tnow<etmewrk时间内,学生用户若未参与编程题作业代码的提交,则视为放弃本次作业的参与权,同时,该学生本次作业成绩默认为0分;

(2)在sthuping<tnow<eting时间内,学生用户若未参与互评活动,或参与互评次数未达到要求的n次,则视为放弃本次作业的参与权;同时,该学生本次作业成绩默认为0分;

其中,sthomework为本次作业的作业阶段开始时间、ethomework为本次作业的作业阶段结束时间,sthuping为互评阶段的开始时间、sthuping为互评阶段的结束时间,tnow为现在时间;

步骤(3):服务器端根据编程题互评作业中各编程题的各维度分数,统计学生作业得分,并按维度统计作业教学完成度和维度教学完成度,具体包括:

(1)互评阶段结束后,计算代码作者r0的题目qz各维度代码得分的计算方式为:

(2)代码作者r0的题目qz得分为:

(3)代码作者r0的本次作业得分为:

(4)互评阶段结束后,服务器端分析获得所属课程班级学习者{r0,r1,...,rm}在本次作业中数据,并按维度统计作业教学完成度和维度教学完成度;

其中,所属课程班级学习者{r0,r1,...,rm}的题目qz的教学完成度为:

其中,所属课程班级学习者{r0,r1,...,rm}的维度qz的教学完成度为:

本发明的优点是:

(1)本发明将题目系统与作业系统分开,本发明允许教师在一次作业中,同时加入多道编程类互评题,具有适应性、可操作性和灵活性;

(2)本发明从计算机程序设计核心原则出发,以设计模式六大原则基础,参考计算机领域教育学术文章、实际行业代码评价标准、计算机程序设计语言设计者著作,将计算机程序设计教学指标,与实际行业通行标准结合,将计算机程序设计原则理论,与实践操作规范化过程结合,有助于培养学生的优秀代码习惯、代码性能意识、代码规范化意识、代码发展意识、用户友好意识,在帮助学生完成教育过程的自我测评的同时,为学生学以致用投身行业奠定基础;

(3)发明在互评阶段为学生引入判别指导维度,降低学生评价难度,提高学生评分的积极性,解决学生判分过程中给分模糊缺乏指导、判断主观不能真实反映代码实际水平的问题,提高判分结果的准确性;

(4)本发明在互评阶段为学生提供判别指导维度,在互评过程中,参与评价的学生需考量各个维度,考察待评编程题代码的正确性、健壮性、可读性、灵活性、规范性、代码效率和易用性,在此过程中,学生需要通过计算时间复杂度、空间复杂度等方式,对代码进行判分;这个过程对学生的技能水平和优秀代码意识水平提出了新的要求,让学生不仅在答题时进行学习,在互评中也能进行学习、巩固并测试所学知识,帮助学生在各个环节培养优秀的代码习惯,提高代码水平。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1