一项Java编程的自主学习系统外文翻译资料

 2022-12-18 15:29:33

英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料


一项Java编程的自主学习系统

查利 戴利 与 简 M.霍根

摘要:随着大学计算机课程的数量增加,对教学资源提出了巨大的需求,在没有大量增加员工的情况下,要保证教学标准和辅导的质量几乎是不可能的。为了克服这一种困难,作者开发了RoboProf,这是一种自主学习环境,可以同时生成和批改编程练习,在没有其他讲师和导师需求下,对学生提供持续的帮助和反馈。该系统还包含检测抄袭这一全球计算课程日益严峻问题的技术。为了这项研究,RoboProf被用于教授包含近300名学生在内的,计算机专业第一学年的班级学习Java编程。学生对系统的使用情况会被监测并记录在日志文件中以便调查运用方式对编程技巧影响程度的深浅。一项分析表明,完成这一组RoboProf的学生,其练习的表现明显优于不参加练习的人。相比于其他学生而言,他们完成这些练习的及时性是相当重要的:早期的解决者往往获得更高分,并且用较少的尝试解决问题的学生会获得更高分数。意料之中的是,抄袭者得分比那些自己独立完成作业的人要低。研究发现影响编程技术的其他因素包括入学成绩和性别。入学成绩对表现有着积极的影响,并且男性的表现明显优于女性。在RoboProf课程中获得的分数,以及随后以传统方式管理的计算机课程表现中,都存在着显著的正相关联系。

关键词:自助学习系统 ,java编程,剽窃,回归

1 简介

想要有效地学习计算机编程需要大量实践经验,以及讲师的一系列评估来确保学生正在掌握这项技能。随着在大学计算机课程越发流行,当课程以传统方式教授时,对这些课程提供的服务便需要更多的人材需求。反过来,这些需求的减少导致实际工作压力的减少,持续评估导致毕业生更容易达到标准。这种替代方案目的就是利用我们掌握的技术来协助教学和学习以保持教学标准。

这种举措的必要性并未被否定,并且在用于计算机教学的电子系统发展中已经有了爆炸性的突破。例如,英国的信息技术培训组织开发了众多基于计算机的学习工具,但他们旨在模仿传统的评估方法,在大多数情况下,仅用于减轻标记脚本的苦差事。在英国谢菲尔德的谢菲尔德大学开发的一个名为HANDIN[1]的系统专注于课程管理的解决,而在英国诺丁汉的诺丁汉大学的CourseMaster [2],则主要侧重于批改和管理。在芬兰,赫尔辛基赫尔辛基大学的KELVIN [3],则专注于自动批改的功能。

致力于开发自动批改和反馈功能的学习软件取得的成就都相当有限。本文介绍的RoboProf系统正试图填补这一空白。 它不仅仅促使和批改学生的作业,也为他们提供不断进步的过程记录以及改进他们表现的工具。

本文提出的是,有关爱尔兰都柏林的都柏林大学中计算机专业一年级的282名学生,在java编程学习中对该系统使用情况的分析。这项研究的目标将调查RoboProf对计算机教学的有效性,与传统方法的比较,以及学生对系统的使用方式,都在何种程度上影响他们所达到的编程水平。

RoboProf的第二节概述详细介绍了其主要功能,包括一项用于检测抄袭[4]的技术。 第三节描述了该课程内容和结构,第四节报告分析影响编程性能的因素。 特别指出的是,作者在开展课题之前曾研究过学生的教育水平,他们在课程中对该系统的使用方式,以及后续以传统方式提供的编程课程中的表现。研究结论是在文章最后一节给出,并讨论了结果对RoboProf以后发展的影响和将来的研究方向。

2 Roboprof

2.1概述

RoboProf由学生数据库,课程数据库,以及在Solaris服务器上运行的Java servlet[5]组成。课程的内容在概述页面中略述:

bull;编程简介

- Java和面向对象的设计

bull;关于Java

- 面向对象

- 类型和表达

*变量

*数据类型

*算法

*变量

- 控制流

* if else

*for循环

*while循环

*逻辑运算符

*do while循环

*switch语句

*布尔表达式

bull;字符条件

*嵌套循环

*流量控制摘要

- 数组

每个主题都提供课程说明和练习。访问主题是被规划好顺序的,只有在前面几节中的所有素材都已成功完成的情况下主题才会被检索到。RoboProf使用Java applet来编译和测试。

提交编程练习后,批改后的版本会立即重新呈现,并突出显示错误。程序批改是在学生机器上进行,以减轻在服务器负荷(编译Java程序是CPU密集型的)并且便于立即反馈。

易于访问是设计中的优先事项。 RoboProf可以通过任何支持Java的标准Web浏览器访问。 学生们可以使用RoboProf完成编程练习,并在任何有网络的地方查看他们的进度。 它是本质上是学生可以随意使用的学习工具;程序源代码可从作者处获取以供教师使用的。

2.2.编程练习

通过促使学生们编写大量增加难度的短小程序,RoboProf的主要目标之一是教授编程语言的语法和语义。RoboProf系统中有51个编程练习,在学期结束前学生应该完成这些题目。批改这种数量的练习题往往会需求更多的,与班级大小成比例的师资力量,当班级规模很大时这将一个非常昂贵的解决方案。使用RoboProf,可以使作业批改和反馈不再受限于学生数量。练习的目的是逐步增加学生的信心并确保他们精通编程基础知识,在随后的课程中,解决更高级的编程细节,程序设计和问题。

练习的进展规则大致地遵循着那些旧式文字冒险游戏规则,必须解决一个个问题来解锁可用于探索的其他内容,与那些玩家们必须完成一个级别才能升级到更高级别的电子游戏相类似。

每个问题都倾向于建立在之前的问题上;问题旨在确保学生在进行更高级的主题之前了解以前的材料并避免遗忘的可能。从困难的概念上说, 学生按照自己的节奏进行练习并一直进步。

该系统包含了一个依据其输出来批改程序的打分方案,它将输出的数字和正确的输出相比较,使用一组测试数据来为每次提交或修复随机生成匹配。随机生成测试数据可防止学生耍诈。系统通过编写代码来打印适当的输出。在分数达到50%之前学生不能从一个问题进入下一个问题,仅在半数或者更多的答案正确时,系统才会给予分数。如果没有编译,则会给予零分。如果所有测试数据都正确,则给与100分。

学生可以根据自己的意愿重新提交作业。在他们对他们已经达到的标准满意之前不会受到惩罚。由RoboProf维护记录学生的使用模式,所有程序提交都是已登记的。 最后一次练习中的分数被视为学生的真实分数。

一整套这样的练习可以在http:// www.computing.dcu.ie/~daly/roboprof上找到。

编程练习的一个例子如下:

示例:对于任何给定的练习,都给出了部分程序以及如何处理的一些指导。图1中提供了一个例子。然后使用者开发一个Java程序并按照指示提交。假设提交的代码如下:

public class SumSquares

{

public static void main(String [] args)

{

Int n1 = Console.readInt();

Int n1 = Console.readInt();

Int sum = 0;

for(int i = n1 ;i lt; n2 ; i )

Sum =i*i;

System.out.println(“The sum is ” sum);

}

}

该程序依据一组测试数据而运行,而每组测试数据都显示了程序的实际输出和预期输出。

在这个例子的for循环语句中,ilt;n2应该是ilt;=n2。RoboProf给出了图2中的反馈。请注意不正确的输出是粗体。

学生必须更正该程序并在继续作答之前重新提交。 如果for语句被更正为for(int i = n1 ;i lt;= n2 ; i ),重新提交程序,将获得图中所示的反馈。

图1.习题示例:求平方和

2.3 检测抄袭

RoboProf的一个特点是它能够检测剽窃,这是基于Plauger[6]的思路而成,后者使用它来验证是否侵犯版权。 当学生提交课程给RoboProf时,applet首先将程序存储在服务器上。学生所未知的applet会通过添加识别水印修改程序。这个水印是一个二进制代码,其中包括学生的ID,作业ID,学年,校验和,与一行末尾的空格和制表符。即使程序被修改, 此空白区域已添加到主方法的结果也不太可能被改变。大多数文本编辑器不会在一行的末尾显示过多的空格,因此,学生很难发现这些代码。 RoboProf随后可以使用代码确定每个学生的抄袭程度。 这个方法不同于传统的成对比较方法(例如MOSS [7]); 它的主要优势是一旦程序提交,它就会检测抄袭,并且不需要收集许多内容就可以再次运行分析程序。

2.4 系统适应

RoboProf的默认模式是提出一个不变的规范,即基于程序输出并且读取包含所需测试数据的文件,来对编程习题评分。但是,由于RoboProf是用Java编写的,因此在无需修改配置的情况下,也可以动态加载程序模块。此外,RoboProf采用分层结构方法;这种结构可以毫无困难地实现向系统添加新程序和批改方案。另外,由于批改是依据程序输出而成,所以RoboProf可以用于使用同一组习题来教授任何编程语言。

3课程结构

课程包括24个讲座,为期12周,总共一个学期。其中实操作业包括RbooProf练习,和三个用以解决具体问题以及程序设计的作业。作业由导师手动批改;其他的都是自动操作的。每周规定有两次时长1小时的实验室课程,以帮助那些在RoboProf 或作业上有困难的人;这些课程的导师都是从研究生中选拔而出。

在学期末,有一个时长3小时的考试,由Rooprof提出并批改的五段程序组成,每个程序都用来测试不同的编程技术。

总分是程序设计考试、Rooprof练习和作业中获得的分数的综合。在本研究中,作者着重分析了学生在程序设计考试中的成绩,以此作为衡量学生程序设计能力的真正标准,并试图确定影响学生程序设计能力的因素。

本次研究中共有282名学生参加了本次考试,Rooprof作为一种计算机教学和影响编程性能决定因素的工具,这些学生构成了对其进行有效性分析的基础。

4结果分析

4.1以往成绩

因为这门课程是学生在大学第一学年的选课,作者对不同的入学资格如何影响随后的表现很感兴趣。

在爱尔兰,和大多数欧洲国家一样,全国考试在二级教育结束时进行,学生获得的分数决定了他们是否有资格参加大学课程。根据所取得的成绩,将分数分配给六个科目中的每一个。课程中的地点是在竞争基础上根据获得分数分配给申请人的。当然,分数的最低线是必需的,但成功者往往得分更高。在这门课程中,获得一个名额的最低分数是385分,但许多学生的分数要高得多;最高分数是590分。图4显示了入校时的考试成绩。

从图4可以看出,除了一个学生的入学分数大于500分外,其他所有学生的编程考试成绩都达到了60%或更高,而在编程考试成绩为零的学生中,除了两个学生以外,其他学生的入学分数都不超过450分。一个有趣的现象是,许多入学分数低的学生在程序设计考试中获得了高分。

利用皮尔逊相关系数r[8]计算两个变量之间的关系程度。可见r是恒定的,这意味着入校分数和编程考试成绩之间存在正相关联系。

4.2性别

下一个分析是确定女性和男性在编程技能方面是否存在差异。表一给出了在程序设计考试中男女得分的平均值和标准差。

从表一可以看出,在参加课程的282名学生中,79名(28%)是女性。低比例的女性在课堂上的参与率与全世界大学计算机科学课程的女性参与率一致[9]。例如,据报道目前美国大学计算机科学学士学位的女性毕业生约占总数的17%。作者观察到,男性的表现优于女性,平均优势超过18%;此次的平均差距具有重要的统计学意义而被应用采纳。图5更进一步说明了男女之间的差异。

由此可见,女性的成绩中位数为26.6%,而男性的中位数为60%。作者们曾希望,使用Rooprof可能有助于提高女性相对于男性的表现,但很明显,这种改善并未实现。这一令人失望的结果需要人们进一步调查,并且这将是进一步研究的主题。

4.3使用方式

下一个感兴趣的问题是确定学生在课程中使用RoboProf学习工具会如何影响他们在编程考试中的表现。对每个学生监控使用方式和使用频率,并记录在日志文件中。此文档使明确以下因素成为可能。

bull;Roboscore给出了在RoboProf练习中取得的总分数。它以百分比表示。

bull;SolveTime提供每个学生相对于最早完成一套练习的周时间,。第一组在第七周完成,分值为1;最后一组在第12周,被标为6分。未完成的学生被标记为7。

bull;avattempt记录每个学生每次练习的平均重复尝试次数;学生可以根据自己的意愿随意修改和提交程序。重新提交后,Roproprof便会更新分数。

bull;nplagiar测量每个学生剽窃的编程练习的数量。作者一开始就试图通过网站上的一项规定指出共享代码是不

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[20286],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。