版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在线评测在c程序设计实验教学中探究和评价本文针对c程序设计课程实验教学的特点,利用在线评 测系统对选课的目标群体开展实验教学研究。探索在实验教 学中应用在线评测的教学方法和手段,同时对传统的纸质考 试方式进行变革,在课程考试中引入在线评测,并对实施的 结果做详细的数据分析和评价。在线评测程序设计实践教学 1引言对普通规模的理工科高校而言,每年选程序设计课程 的本科生数量大约在2000至2500人次左右,辐射面广,受 众面大。无论是c, c+还是java,程序语言设计课程作为 理工类本科生的必修课程,都有一个共同的特点:即“上机 第一、实践第一”。仅通过课堂的理论教学是无法理解程序 设计的精髓的
2、,也无法培养和锻炼学生的实践能力和创新能 力。因此,课程的实践教学环节的重要性凸显,胜过其他任 何一门课程。目前程序设计课程在实践教学环节大多仍停留 在学生撰写纸质实验报告,编写程序代码,课后由教师进行 批改这种传统的教学模式上。这种传统的实践教学模式不仅 存在浪费资源,耗时耗力的问题,而且加重了教师和学生的 负担。根据一项生物心理学研究显示,人脑类似一个反馈激 励系统,在有效的信号刺激下,刺激的频率越快,信息驻留 在大脑中的时间就越长,有效及时的信息反馈能够激发人脑的学习潜能和兴趣。而传统模式由于反馈时间周期长,恰恰 缺乏了及时的特点,大脑在得不到有效反馈的情况下,对信 息的记忆度将大为减弱
3、。因此传统的实践教学模式不利于学 生的进一步学习。在线评测的英文名为online judge,简称 0j,是一个基于http协议的服务器端判题系统,用来检测程序源代码的正确性。用户可以在线提交多种程序(如c、 c+)源代码,系统对源代码进行编译和执行,并通过预先 设计的测试数据来检验程序源代码的正确性。0j系统最初使用于 acm-icpc国际大学生程序设计竞赛和信息学奥林匹克竞赛中的自动判题和排名,现广泛应用于世界各地高校学生 程序设计的训练、参赛队员的训练和选拔、各种程序设计竞 赛以及数据结构和算法的学习和作业的自动提交判断,著名 的有rqnoj、ural、北京大学oj等。目前,在线评测模式
4、正 在被越来越多的程序设计学习和爱好者所接受。2实验教学 的实施利用oj实施教学首先需要在服务器上建立试题库, 题库包括acm程序设计竞赛试题及与c程序设计课程实验教 学内容紧密结合的实际问题。每道题目包含description(题 目描述)、input data (输入数据格式)和output data (输 出数据格式)三个部分,学生编写完成后在网页中将源程序 提交到服务器,服务器启动编译器编译该源程序并生成可执 行程序,以输入数据文件作为输入启动该可执行程序,并将 程序的输出结果和标准输出数据文件进行对比,最后系统返 回给用户一个状态:完全一致则判为accept (接受),否则 判为 w
5、rong answer (错误),超时(time limit exceed), 超内存(memory limit exceed),运行时错误(runtime error) 或是无法编译(comp订e error),并返回程序使用的内存、 运行时间等信息。学生能够立即看到服务器反馈的结果,同 一段代码可以修改后多次提交。在0j上开展实验教学十分 方便,除预先部署题库外,利用0j的authors ranklist (用 户排名等级)功能,即按solved problems (做对题数)和 submit (提交次数)的比例对用户进行排序,如图1所示。authors ranklist在一定程序上能较准
6、确地反映学生的实际水平,便于教师掌握学生的实验进度,并有针对性的对 个别排名靠后的学生进行实验辅导。对学生而言,提交通过 的题数越多,自己的排名越靠前,能让学生获取成功的喜悦 感和成就感,进一步刺激他们主动去做更多的题,争取更髙 的排名,形成了正反馈激励效应。另一方面由于程序课程覆 盖面广,基本上涵盖了理工类的所有本科生,选课的人数众 多,采用了 0j系统对学生提交的作业进行评判,一方面可以大大减轻教师的工作量,另一方面又可以减少因教师的主 观因素使评测尺度不统一,做到高效客观的判题。3扩充平 台的功能3. 1增加相关考试功能在现有0j功能的基础上,进一步丰富了平台的功能,改进后的0j支持多种
7、语言的判 定,有c、c+、pascal和java。扩充了考试模块,包括多 种题型的设定,有选择、判断、填空和程序设计。增加了防 作弊开关功能,如图2中所示,左侧控制菜单中有switch 按钮,用来开启和关闭查看代码和收发邮件功能。考试时禁 止考生互发邮件和查看试题源代码。3.2相似代码检测功能在平时的编程练习或考试过程 中,两个人可能提交相似的源程序以欺骗系统进行判断。人 工批阅过程中,类似的欺骗很容易被发现,但对于机器评测 这是一个盲区,0j系统对于代码防抄袭(cheat checker) 方面没有做预防措施。为了解决这个问题,可利用基于最长公共子序列lcs(longest common s
8、ubstring)的方法进行检测。将两次提 交代码取出回车,空格与制表符,得到两个长字符串,然后 每次都找出两串的最长公共子序列,将他们删除,然后再找, 直到找到的最长公共子序列小于某个阈值,计算被删除的字 符数目占原始数目的比例,比例高的就有较高的抄袭可能 性。如图3所示:这种基于lcs的判定方法可以用来检查多种方式的抄 袭,比如移动代码块,修改变量名,修改函数名等。检测程 序的算法复杂度是0 (n*m), n和m是要两个被检验程序的 字节长度。不足之处是当用户提交的程序较长时,效率会变 低,耗时增加,所以适合有针对性的使用。4考试方式的转 变在研究中,选取2011级选“c程序设计”课程的部
9、分学生作为样本,共885人次使用在线评测系统参加期末考试,要 求在3小时内完成选择,判断,填空共30题和程序设计题5 题。从考试结果看,由于成绩在50分以下的属于极个别, 因此我们重点考查成绩在50分至100分之间的情况,将成 绩区间划分为10个区间,统计每个区间对应的人数分布密 度,如表1所示:根据概率和数理统计规律,大多数随机变量均服从或近 似服从正态分布。如测量的误差,学生的考试成绩,人的身 高与体重等。正态分布的随机变量应用范围之广,使其在数 理统计学中占有极其重要的地位。考查考生成绩分布情况的直方图,如果基本呈正态曲线状,属于好;如果略呈正(负) 态状,属于中等;如果呈严重偏态或无规
10、律,就是差的。定 义成绩的样本空间为s: 50,51,52-100,将考生的成绩xi作为随机变量,其中(50wxiw100, lwiwn)。设定 o =9. 72o在excel中对样本空间构建正态分布函数f (x)数学期望值p=75,计算均方差为=94. 48,标准差为二normdist (si, n , o , 0),得到正态分布曲线,如图5 中红色虚线所示,可看出成绩分布直方图近似地接近于正态 分布曲线,说明在考试中引入在线评测模式具有较为客观的 区分度。5评价及结论收集0j模式下的实践教学活动中的数据,由参与者对教学活动的内容、组织等进行评价。包括做题数量,兴趣度,使用习惯等。本次调查对
11、象885人次,其中女生224人,占25.4%,男生661人,占74.6%。 调查专业为非计算机的理工类专业,主要集中在机械、材料、 生物、土木等专业。通过调查,我们得出以下一些结论:(1) 认为0j题目难度偏难的有362人,占总人数的41%,其中女 比男高出3%,显示出男生更擅长于程序设计。(2)认为0j 进行实验比传统撰写实验报告方式更具有优势的占总人数 的70%,其中女比男高出10%,这意味着0j本身更受到女生 的欢迎。(3)值得注意的是,在这次调查中不习惯使用0j 的人数有61人,占总人数的7%。在这些学生中,认为题目 偏难的有44人,比例高达71.6%,远高于平均比例41%,只 有2人
12、认为题目难度适中但不习惯使用0j。因此,我们得出 结论:造成这些学生对0j有抵触心理的主要原因是题目难 度高于他们的平均水平,使得他们无法在较短的时间内提交 正确,从而打击了继续使用0j的积极性。假设能降低部分 题目的难度,让这些学生先做简单的题目,便可让他们逐步 适应并认可0j。(4)在60分钟的课时内,接近85%的人能够做对三题或三题以下,15%的人能完成五到七题以上, 凭此可大致估算程序设计题量和所需时间的关系o(5)34. 5% 的人在使用0j时遇到问题倾向于独立思考,其中男生比女 生高10%;反之,遇到问题后想请教他人的,男生占52%, 女生占63%,女生髙于男生11%。这意味着虽然
13、0j可以自动 判题并给出学生反馈,有利于学生在编程时独立思考解决问 题,但显然女生仍应更多的受到关注和帮助。(6) 73%的人 通过0j的训练,对程序设计课程产生了兴趣,男女比例基 本持平。28. 4%的人有参加acm竞赛的愿意,试试自己的编 程水平。(7)从调查结果看,认同0j的原因主要有:简单 易行、反馈及时、有利于主动学习。但即使0j被广泛认可, 教师仍不能过度依赖于机器判题的自动化,尤其对程序设计 的初学者而言,在学习的初级阶段,程序的书写格式以及良 好的编程习惯的培养,都需要教师对学生的耐心指导,而远 非依靠0j所能达到。6结语随着计算机人工智能的发展,程 序代码自动评测系统已成为程
14、序设计课程实验教学过程中 的有效辅助工具。改变传统的笔试考核方式,使用在线评测 系统开展课程考试逐步成为趋势。同时需要不断完善在线评 测系统的功能,最大程度上减少和避免抄袭现象的发生,这 样做既能促进学生主动学习,又能考查出学生真实的编程水 平,同时极大减轻了教师的工作量,让他们有更多的时间和 精力投入到教学活动中去。经过多年的教学实践,目前已形 成包括实验教学体系,教学方法,考核评价,创新能力培养 等在内的一整套方案,建立了适合初学者练习的在线评测试 题库,积累了大量地学生平时练习和考试的原始数据。藉此, 希望对高校程序设计课程的实验教学起到一定的借签和指 导作用。参考文献:1 t邦旭,钟志水基于acm的计算机程序设计类课程 实验教学体系设计j安庆师范学院学报(自然科学版), 2012, 18 (3): 117-120.2 张丽萍,刘东升,王春晖程序设计基础"精品课 程建设j计算机教育,2010 (20): 115-117.3 韩君泽,钟美,刘东升.程序设计在线评测辅助教 学系统的设计与实现j.内蒙古师范大学学报,2010, 39
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年眉山市东坡区城管协管人员招聘笔试参考试题及答案详解
- 2026年南充市高坪区城管协管人员招聘笔试参考题库及答案详解
- 2026年武汉市洪山区(中小学、幼儿园)教师招聘笔试参考试题及答案详解
- 2026年那曲地区(中小学、幼儿园)教师招聘笔试参考试题及答案详解
- 2026年辽宁省丹东市(中小学、幼儿园)教师招聘笔试备考试题及答案详解
- 2026年湖北省十堰市城管协管人员招聘考试备考试题及答案详解
- 2026年黑龙江省牡丹江市城管协管人员招聘笔试备考试题及答案详解
- 2026年浙江省城管协管人员招聘考试参考题库及答案详解
- 2026年江西省萍乡市(中小学、幼儿园)教师招聘笔试备考题库及答案详解
- 2026年郑州市管城回族区城管协管人员招聘考试备考题库及答案详解
- 2026人工智能辅助药物研发进展及商业化前景预测报告
- 深静脉血栓形成诊断和治疗指南(第四版2026)
- 2026年计算机二级《MSOffice》高级模拟试题及答案
- 中国成人失眠共病阻塞性睡眠呼吸暂停诊治指南(2024版)
- 2026年保安证考试理论学习试题及答案
- 《生成式人工智能基础与实践》高职全套教学课件
- 化妆知识课件
- 2025年重庆市渝北区法院系统招聘真题
- 2026年河北高考政治真题试卷+解析及答案
- 2026年企业未分配利润转增资本财务处理规范与税务申报技巧
- 2025年湖南岳阳市总工会社会化工会工作者和专职集体协商指导员招聘16人(公共基础知识)测试题附答案解析
评论
0/150
提交评论