ACM在线评测系统与程序设计教学_徐义春
C程序设计教学中的在线评测系统应用

以通过对各学生 的账号查询来掌握学生 的上机实践情况 , 使 得教师能够实时地查看每 一个学生 的上机情况 , 极大地增强 了教师 的 管理能力 。 可以促 进学生上机实验热情的提高 , 加大学生的上机实验效率 。该文就在线评 测系统在 C程序设计教学 中的具体应用
进行了探讨 。
1在线评 测 系统简 介
在线评测系统最早用 于国际大学生程序设计竞 赛 , 其 通过对学生用 网页浏览 器提交到服务 器的竞赛题 目源代 码进行在线 编 译, 生成 可执行 文件并 产生输 出 , 将输 出与服务器数据库 中的测试数 据中的输 出文件进 行逐字节的对 比来判断学生提交程序 的正 确性 , 并 对耗 时 、 耗费 内存等方面进行评测 , 并将评 测结果保存在数据库 中同时返 回给 日 = j 户 。 目前 , 在线评测系统 已广泛应用于 各 高校 的程序设计类课 程实践教学 中, 其除对源代码进行 评判之外 , 还具有用户管理 、 题库管理 、 在线 比赛及 在线讨论等功 能模 块 , 其 中用户管 理模 块用于提供新用户 的注册及用 户信息 的更改 功能 , 并 为每个 用户维护提交 的源程序 , 同时对所有用户进 行排名 ; 题库管理模块用于题 目的发布 、 修改 、 分类 和删除等 , 每一道题 目包括题意描述和测试数据两部分 , 其 中题意描述部分包含 与测 试
摘要 : 讨论 了在线评测 系统在 c程序设计 实践教 学 中的题库建设 、 随堂及课后 练习的题 目分类及使 用方 法、 考试 方式及 线评测 ; 题库 ; 练习; 考试 中图分 类号 : T P 3 1 1 文献标识码 : A 文章编号 : 1 0 0 9 — 3 0 4 4 ( 2 0 1 4 ) 0 7 - 1 4 6 5 - 0 2
ACM在线评测系统在成人高等教育程序设计类课程中的应用初探

『1 1简友 光. 1 成人 高等教育计算机 实验教学研
究『. 续教 育研 究 ,0 94 1—4 J继 】 2 0 , : 1. 3 『] .C 2吴昊 A M程 序 设 计培 训 教程 , 国铁 道 出 中
版社. 0. 2 7 0
【 尤枫 , 辉 . C 3 】 史 A M在 线评 测在 编 译 原理 实 践 教 学 中 的 应 用 探 讨 【.实 践 教 学 , J 1
人 , 士研 究 生 , 硕 国家 注册 系统 分析 师 , 究 研
方 向为信 息安 全 , b数 据挖掘 。 We
基 金项 目: 浙江 省教 育考试 “ 一五 ” 十 科研 规划 项 目(0 6 J S 0 ) 2 0 Z K 0 7
中国新技术新产品
一 5— 4
恶补程序设计基本功 的专升本成人学生。 经 过 这样 的训练 , 即要 考虑 程 序运行 的 正确性 , 同时也 要 对 比程 序 运行 的性 能 ,对题 目的多 种 算法 实 现有 了独 特 的思考 与分 析 。 经 过 两届 学 生不 同专 业成 人学 生使 用来 看 , 补 考人 数 明显 减 少 , 不仅 而且后 继课 程 的 平 均成 绩 也有 大 幅提 高 , 效果 提高 显著 。 教学 通 过这 个 系统 ,学生 能更 好 地将 理论 与实践 紧密结合 , 动手能力 、 创造能力和协作能力得 到提 高 , 开拓视 野 , 创新 性人 才培养 。H 促进 4 结 束语 吸收 A M 在线 评测 系 统 中的诸多 优点 , C 注重成人学生的特点,在程序设计类课程中 有机结合 , 能有 效 促 进教 学 质 量 、 教学 水 平 、 教 学效 果 的 同步提 升 。如何 更好 地发 挥 A M C 在 线评 测 系统 的长处 , 其他 如数 据库 原理 、 让 操作系统 、 数据结构等课程通过扩展 A M在 C 线 评测 系统 的功 能实 现在 线 实验教 学及 无纸 化上机考试 , 为远程教育、 自学考试实践等不 同办学 类 型 的相 关课 程 的教 学 、考核方 法 改 革 应该 有 更深 刻 的思考 。
基于ACM自动判题系统的程序设计实践教学改革探索

基于ACM自动判题系统的程序设计实践教学改革探索
梅旭时;王伟斌
【期刊名称】《计算机光盘软件与应用》
【年(卷),期】2011(000)022
【摘要】The traditional teaching model for program design shortcomings,proposed a system based on automatic sentence of experiments to explore issues,and summarizes the advantages and features,in the actual teaching and achieved good results.%文章针对程序设计传统教学模式存在的不足,提出了基于自动判题系统的实验探索,并总结了其优点和特色,在实际教学中取得了较好的效果。
【总页数】2页(P211-211,183)
【作者】梅旭时;王伟斌
【作者单位】金华职业技术学院,浙江金华321017;金华职业技术学院,浙江金华321017
【正文语种】中文
【中图分类】TP311.1-4
【相关文献】
1.基于ACM-ICPC的C语言程序设计实践教学改革 [J], 朱朝艳;陈根浪
2.基于SSM的ACM虚拟判题系统的设计与实现 [J], 王致远;周威;陈义明
3.基于ACM竞赛模式的程序设计类课程实践教学改革的探讨 [J], 刘海霞;冉宇瑶
4.基于API自动测试的程序设计在线判题系统的研究与实现 [J], 韩志科;王贵;韩俊杰
5.基于在线判题系统的程序设计课程群教学研究 [J], 欧阳佳;肖茵茵;刘少鹏;姚华南;陈惠香
因版权原因,仅展示原文概要,查看原文内容请购买。
程序设计课程在线测评方法探究——以类ACM模式程序设计课程为例

程序设计课程在线测评方法探究——以类ACM模式程序设
计课程为例
刘凤连;汪日伟;苑静中
【期刊名称】《天津市教科院学报》
【年(卷),期】2014(000)002
【摘要】程序设计课程是对学生实践能力要求较高的技术应用型课程,教学目的是培养学生在程序设计过程中的分析问题与解决问题的能力.通过对程序设计课程现状进行分析,针对造成学生程序设计能力较低的原因,提出了以培养学生实践能力为终极目标的课程辅助系统建设方案,即在程序设计课程的作业、实验与考试环节中,引进类ACM模式的在线测评方法.
【总页数】3页(P32-34)
【作者】刘凤连;汪日伟;苑静中
【作者单位】天津理工大学计算机与通信工程学院,天津300384;天津理工大学计算机与通信工程学院,天津300384;天津理工大学计算机与通信工程学院,天津300384
【正文语种】中文
【中图分类】G642.3
【相关文献】
1.CDIO工程教育理念下的软件类课程教学模式初探——以java程序设计课程为例
2.基于ACM竞赛平台的程序设计课程教学模式改革的探索
3.岗位核心能力导
向下的专业课程考核方法探究\r——以Java面向对象程序设计课程为例4.混合教学模式下程序设计课程在线实践探索5.基于PBL的在线教学模式研究——以C语言程序设计课程的应用为例
因版权原因,仅展示原文概要,查看原文内容请购买。
基于ACM程序设计竞赛的在线评测系统设计与实现——前台网站部分

基于ACM程序设计竞赛地在线评测系统设计与实现——前台网站部分计算机科学与技术专业学生:吴玉培指导教师:赵磊摘要:随着Internet地广泛应用和计算机技术地飞速发展,计算机算法在其中发挥着极其重要地作用.为了更好地适应这个社会选拔人才地要求,同学们提高程序设计能力地愿望越发强烈,然而人工评测程序地效率还是很低地.因此ACM在线评测系统应运而生了.这个在线评测系统主要由三个大地部分组成,即数据库部分,网站部分,和编译器地调用部分,三个部分紧密地联系在一起.在用户提交解决方案地同时,在服务器端产生源程序,编译部分负责调用源程序,并把结果写入数据库,然后网站部分再通过数据库查询语句把数据库中地结果显示在网页上.关键词:在线评测;ACM;网站部分1 概述1.1 ACM在线评测系统设计背景和研究意义ACM/ICPC国际大学生程序设计竞赛始于1970年,是全球大学生计算机程序能力竞赛活动中最有影响地一项赛事.ACM国际大学生程序设计竞赛是参赛选手展示计算机才华地广阔舞台,是著名大学计算机教育成果地直接体现,是信息企业与世界顶尖计算机人才对话地最好机会.ACM国际大学生程序设计竞赛是旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力地竞赛.经过近 30 年地发展,ACM 国际大学生程序设计竞赛已经发展成为最具影响力地大学生计算机竞赛.竞赛规模地迅速扩大对阅卷工作地自动化、高效性、合理性和公正性提出了更高地要求,建立一套准确、高效地程序评测系统成为非常迫切地需求.通过对在线评测系统相关知识地学习,以及对目前已有软件系统地功能分析,本系统总结以往系统开发地设计经验,结合当今系统地发展趋势,确定了该工程地设计方案.1.2 ACM在线评测系统设计地开发工具与运行环境系统前台开发工具主要用到Dreamweaver 8、wamp5.(1)Dreamweaver 8简介Macromedia Dreamweaver 8是建立Web站点和应用程序地专业工具.它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,使得各个层次地开发人员和设计人员都能够快速做出界面吸引人地基于标准地网站和应用程序.语言版本:中文·版本:8中文版配置Win9x/Me/NT/2000/XP/2003/win7/.(2)wamp5简介wamp5是一款优秀地wamp集成软件,可以轻松地一下子同时安装PHP5、MYSQL和Apache环境,对初学PHP地学者来说非常方便.同时,wamp5内还集成了PhpMyadmin和SQLitemanager管理工具.语言版本:英文•版本Win9x/Me/NT/2000/XP/2003/win7/.系统网站部分是用PHP语言编写,使用地数据库是MYSQL,而服务器则是现今最流行地Apache服务器,在Windows XP系统上实现.因此系统地运行环境如下:(1) 数据库:MYSQL;(2) 服务器:Apache;(3) 操作系统:Windows XP.2 需求分析该系统设计地主要目地是希望给学计算机地学生提高编程能力和对ACM编程有兴趣地学生提供一个学习和操练地平台,真正实现一个高效管理和稳定地在线评判系统.结合学习及ACM点,系统具有以下几点功能需求:(1)用户管理:认真填写资料就可以注册了,未注册用户只能浏览不能进行提交或者参与比赛.(2)题目浏览:用户可以通过页面浏览题目,查询题目,找到自己感兴趣或者比较新地题目,然后进行提交.(3)提交:用户做题目时可以选择提交地语言,此系统可以用地语言有C++、C、Pascal、Java等.(4)查看提交状态:提交情况,越在前面地页面在时间上越靠近现在,反映用户做题目时地提交状态、做哪个题目、AC或者一些常见地错误,比如结果错误、运行时间和运行空间超过题目要求运行地时间和空间,以及用户提交时用地是什么语言、提交时间、提交地序号等等.(5)查看排名:显示用户做题数地一个排名,做地题目越多,排名越在前,若做出同样地题目,则以提交次数少者排名靠前.(6)比赛练习:添加比赛用于举行比赛或者考察学生地编程能力.(7)后台管理:包括用户信息地管理,题目地添加和修改,比赛地添加和修改以及数据库地备份等等.3 系统可行性分析此系统从结构地总体上进行划分,可以划分为三个大地模块,即前台网站设计,数据库设计,后台调用评判程序正误地结果.接下来将对上述三大模块地可行性以及服务器地承受力做具体地分析:前台网站设计地可行性:写前台网站代码地主要语言是PHP语言,这门语言已经发展到了相当成熟地地步,从理论上讲完全可以实现该系统地所有功能,其次,制作本系统所使用地PHP技术也已经是一些非常成熟地技术,并且在相关书籍以及网络论坛上有相关地理论和实例可供参考.数据库设计地可行性:首先,本系统所采用MYSQL数据库,这个数据库地管理软件已经经过严格地测试,可供本系统完成相关信息地存取工作.其次是对数据库进行读,写,更改地SQL语言已经发展到非常成熟地地步,此外,PHP与MYSQL地连接技术也已经相当成熟,并且在相关书籍以及网络论坛上有相关地理论和实例可供参考.后台调用评判程序正误地结果地可行性:后台程序代码实现地主要语言是C++,这门语言本身经过开发人员和用户地反复测试,已经变得相当成熟;另外程序实现者对该语言也非常地熟悉,能够运用该语言实现本系统地相关功能模块;此外程序一旦以进程运行起来后,则可以采用Windows所提供地API来对相关地进程进行控制和管理,这位本系统地技术实现提供了可能.并且在相关书籍以及网络论坛上有相关地理论和实例可供参考.服务器地承受力方面地可行性:从访问规模上讲,由于本系统主要是为校内用户提供程序测评服务,虽然今后也可能为部分互联网用户提供程序测评服务.但是就目前地情况而言,每天地用户地登录总量一般是保持在200个用户左右.而且用户提交程序所耗费地运行时间和运行内存都是在规定地时间和规定地内存地严格控制之下.综上所述,本系统前台网站设计,数据库设计,后台调用评判程序正误地结果这三个大地模块从语言到开发技术上讲,可行性地各个条件已经完全具备,不仅如此,在用户所提交地一些极端程序地条件下,本系统也可以对其进行处理,从而保证了程序地正常运行.因此可以开始对本进行设计开发了.4 系统地设计4.1 系统框架即实现流程根据需求分析,ACM在线系统主要包括以下几大模块:用户模块,在线评判模块,在线比赛模块,题库模块,后台管理模块.其中用户模块主要包括由用户自行操作地用户注册和登录、更新用户信息地功能及由管理员对用户进行管理地一些操作主要有添加用户、删除用户、更新用户等.在线评判模块是系统地一个核心,对与应用层地用户来说主要包括查看竞赛题目、提交竞赛代码、查看排名、查看竞赛状态等功能.在线比赛模块,用户能参与竞赛查看比赛信息及规则,看看往届比赛题目等.题库模块是主要是用户能打开相关问题集进行练习,也可以通过站内搜索功能通过输入问题ID直接找到问题.后台管理模块主要负责创建比赛、修改比赛、管理比赛题目、增加问题、修改问题、管理测试数据、修改用户权限、数据库备份等功能.框架流程如图4-1所示:图4-1框架实现流程4.2 系统地数据库设计该系统数据库采用MYSQL,其主要目地是为了与PHP网站更好地衔接,而且PHP地数据库连接技术也是相当成熟.数据库地名称是OJ,包含6张表,这6张表分别是:userinfo,solution,problem,loginlog,contest,standing.这6张表中userinfo表主要是用来储存用户地登录名和密码以及用户地做题地正确个数,提交次数,以及做题地正确率;solution表主要是在用户每次提交地时候记录下用户地提交信息,这些提交信息包括用户地登录名,题号,程序运行地时间,程序运行地内存,运行地结果,提交地时间,以及提交地语言等;problem表中主要是储存每个题目地相关信息,包括题目地题号,题目地内容,题目地类别,题目地难度,以及该题目属于第几次模拟测试等;loginlog表主要是在每一次用户登录地时候,储存用户地登录名,密码,以及用户地登录时间,这样可以知道登录本系统地总人数是多少;contest表主要是用来记录每一次比赛地题目、开始时间、结束时间.Standing表是用来记录每次比赛参见比赛用户地信息,比如做题个数,做题用地总时间,以及用户地排名等等.数据库中地各个表地内容分类及大致功能介绍见表4-1:表4-1 OJ数据库4.3 前台网站部分地设计该在线提交系统地前台网站地名称是onlinejudge_1.0,该网站包括注册,登录,修改用户信息,浏览问题等等.具体地网页介绍见表4-2:表4-2 网页功能5 结束语历经了几个月地奋战,紧张而又充实地毕业设计终于落下了帷幕.回想这段日子地经历和感受,我感慨万千,在这次毕业设计地过程中,我拥有了无数难忘地回忆和收获.脚踏实地,认真严谨,实事求是地学习态度,不怕困难、坚持不懈、吃苦耐劳地精神是我在这次设计中最大地收益.我想这是一次意志地磨练,是对我实际能力地一次提升,也会对我未来地学习和工作有很大地帮助.在此更要感谢我地导师和专业老师,是你们地细心指导和关怀,使我能够顺利地完成毕业论文.在我地学业和论文地研究工作中无不倾注着老师们辛勤地汗水和心血.在此我要向我地导师致以最衷心地感谢和深深地敬意.【参考文献】[1] 王珊,萨师煊. 数据库系统概论(第二版)[M].北京: 高等教育出版社, 2011,17-206.[2] 阳西述,梁小满,周端峰. 网页制作与网站设计[M].武汉:武汉大学出版社, 2010,50-186.[3] Roger S.Pressman, 郑人杰,马素霞. 软件工程—实践者地研究方法(原书第六版)[M].北京:机械工业出版社,2009,58-319.[4] 曹玉峰. 国家信息学奥林匹克竞赛在线评测系统[D].吉林:吉林大学出版社,2008,76-122.[5] 刘楠,孙国道. ACM在线评判系统设计与实现[J].计算机时代, 2006,189-242.[6] 蒋社想,戴书文. 基于J2EE地ACM竞赛在线评判系统地设计[J]. 安徽理工大学学报,2009, 120-187.[7] 车明洙,纪洪波. 一种基于ACM程序设计竞赛在线评测系统解决方案[J]. 微型机与应用, 2011,106-185.[8] 焦燕. 在线评测系统地设计与实现[D].呼和浩特:内蒙古大学出版社, 2010, 57-186.[9] 王成良. Web开发技术及其应用[M].北京:清华大学出版社,2008,75-124.[10] 王晓东.算法设计与分析[M].北京:清华大学出版社,2010, 30-149.[11] 王育坚. Visual C++面向对象编程教程[M].北京:清华大学出版社,2009, 38-150.[12] 孙钟秀. 操作系统教程[M].北京:清华大学出版社,2011, 31-149.Design and Implementation of Online Judge systemBased on the ACM Programming ContestComputer Science and Technology Specialty:Wu YuPei Tutor: Zhao Lei Abstract:With the wide application of Internet and the rapid development of computer technology, computer algorithm plays a very important role. In order to adapt to the social demand of selecting talented person's, students have shown more intense desire to improve programming ability. However, artificial judgement for program has litter efficieney. Therefore ,ACM online judge system appears. The online evaluation system mainly consists of three big parts, namely, the website part, database part and compiler calls part, three parts closely linked together. When users submit solutions to the server,, the source program be produced on the server, compiler part is responsible for calling the source program, then website will show the result on the web pagethrough the database queries sentences.Key words:online judge。
ACM在线评判系统设计与实现

Ke r s niejd e sse y wod :o l u g ytm;we e e p n;S H1fa w r ;AC 1P n b d vl me t S rme ok o M/ C;JE C 2E
பைடு நூலகம்
0 引言
AC I P ( M It n t n l ol it P o rmmig M/ C AC C ne a o a r i C l gae rga e n
它需要一个数据库来存储试题 、 用户信息 、 比赛信息等。 其次 , 比赛期 间需 要对所 有参 赛用 户提交 的结果进 行统 计 , 根据 A M/ P 并 C I C的标准规则 , C 按照 以下优先级顺序排 名 :
解题多少 , 使用时问多少。其中使 用时间包括用户提 交了错误
程序的处 罚时间 , 每次2 分钟 。 0
内信模块 , 闻公告模块 。 新 其 中裁 判模块是 系统 的核 心 , 它负责启动运行编译好的用 户程序 , 需要完成 的工 作流包括 : 启动程序 , 设置 安全 , 定向 重
1 系统功 能需求分 析
本文设计的评测系统的判题流程为 :
Ab t a t On i e u g s se sr c : ln J d e y t m i e e o d wh c i ma n y s d v lpe , ih s i l us d n e i ACMf CPC n e ai n l I I t r t a Col g a e r g a n o l i t P o r mmi g e n Co t s. ne t
De i a d m plm e t to ofACM On i J ge y tm sgn n I e n ain lne ud S s e
基于 LAMP 架构的 ACM-ICPC在线评测系统设计

基于 LAMP 架构的 ACM/ICPC在线评测系统设计摘要本课题在牡丹江师范学院已有的在线评测系统上进行全面重构,将 oj 系统各个组成部分进行解耦,使得 oj 系统各个模块之间独立性增强,容易修改现有功能及扩充新功能,以应对举办比赛时的访问压力。
包括本课题的系统架构设计,对其下各个模块核心内容的阐述,包括基于 linux 系统的沙箱模型、基于 java 的多线程服务器、基于amp 架构和 mvc 设计模式的 web 前端系统的设计与实现,以及影响系统安全的各种因素和对应的解决方案。
关键词在线评测系统acm/icpc lamp 架构0 绪论acm/icpc 目的旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。
在线评测系统(online judge system,以下简称 oj)起到了非常重要的作用。
集训队员可以在线评测系统上挑选各种题目挑战自我,提高自我,学习各种数据结构和算法;在统一组织的集中训练中可以通过指定题目的形式来强化训练效果;而在线评测系统对比赛功能的支持,进一步提高了集训队员的学习热情,同时还可以模拟比赛的环境,培养那些计划参与 acm/icpc 赛事的队伍的团结合作能力。
但是其中大部分oj 系统是闭源、封闭的,无法获取其源代码进行修改扩充以满足现有需求,牡丹江师范学院 acm/icpc 集训队才于2010 年推出自己的oj。
但是该系统存在几个问题:一,效率不足,无法承受每年牡丹江师范学院程序设计大赛预选赛的压力;二,由于该系统没有应用沙箱技术运行用户代码,存在安全隐患,可能直接导致服务器被劫持。
此后,google code 上陆续出现了几个开源oj 系统,但是在架构设计上仍不够完善,且无法与原系统的数据格式兼容,因此,有必要重新开发一个经过合理设计的新 oj 系统,从根本上解决上述的问题,为集训队提供一个稳定可用的学习环境。
1 系统架构设计为了方便用户的使用,本系统采用 b/s 架构,只要用户使用的是有网络接入的计算机,就可以通过浏览器进行访问。
ACM在线评判系统设计与实现

Struts1.2+Spring2.5+Hibernate3.2(SSH1)组合框架。分析了 ACM 在线评判系统的功能, 阐述了系统的设计与实现技术, 以 及 SSH 技术在实际开发中的应用, 最后说明了数据库和内核的设计实现思路。
关键词:在线评判系统;Web 开发;SSH1 框架;ACM/ICPC;J2EE
0 引言
ACM/ICPC(ACM International Collegiate Programming Contest, 国际大学生程序设计竞赛)是由历史悠久、 颇具权威性 的组织 ACM (Association for Computing Machinery 国际计算 机协会) 主办的, 是世界上公认的规模最大、 水平最高的国际大 学生程序设计竞赛项目, 其目的是促进大学生提高运用计算机 分析问题和解决问题的能力[1]。 ACM 在线评判系统是该项比赛的评判事务处理平台, 是 一个基于 B/S 结构的多用户在线系统, 允许用户在线提交自己 的解题代码, 系统自动编译运行给出裁判结果, 并根据用户解 题数和用时排出名次。
hInputRead=CreateFile(inFile.c_str(),GENERIC_READ, FILE_SHARE_READ,&psa, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
重定向输出句柄, 产生输出文件路径:
hOutputWrite=CreateFile(outFile.c_str(),ENERIC_WRITE| GENERIC_READ,FILE_SHARE_WRITE|FILE_SHARE_READ, &psa,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
基于ACM_ICPC在线测评系统的设计_赵磊

本栏目责任编辑:代影数据库与信息管理基于ACM/ICPC 在线测评系统的设计赵磊,吴玉培,廖彬(衡阳师范学院计算机科学系,湖南衡阳421001)摘要:针对ACM 国际大学生程序设计竞赛培训教学中程序评测的需求,开发程序在线测评系统。
系统基于Apache 服务器,采用PHP 和MYSQL 数据库技术运行于Windows Sever 2003平台。
采用软件工程黑盒测试的思想对用户提交的程序进行测评,系统主要分为三个部分:网站部分,数据库部分及测评部分。
数据库部分对系统提供数据存储支持;网站部分则是系统与用户的交互接口;测评部分则是对用户提交程序运行的主要控制部分,它将控制提交程序的运行时间以及内存,并对运行程序的结果进行判断。
关键词:在线测评;ACM ;Apache ;PHP中图分类号:TP311文献标识码:A 文章编号:1009-3044(2013)22-5004-03The Design of Online Judge System Based on the ACM/ICPCZHAO Lei,WU Yu-pei,LIAO Bin(Computer Department of Hengyang Normal University,Hengyang 421001,China)Abstract:We develop Online Judge system for the demand of ACM/ICPC Training teaching.The system based onApache Web server uses PHP and MYSQL database run in the platform of Windows Sever ing software engineeringblack-box test ideas on user submissions program judge,This system is divided into three parts:database,website and judgement.The database to provide database support for system data storage;The website is interactive with the user interface;The judge⁃ment is presented to the user running the main control section,It will control the running time of the submission process andmemory,judge the results of running the program.Key words:judge online;ACM/ICPC;Apache;PHPACM/ICPC 国际大学生程序设计竞赛始于1970年,是全球大学生计算机程序能力竞赛活动中最有影响的一项赛事。
ACM在线评测系统设计报告

课程设计(论文)软件工程实训课程设计课程名称在线测评系统题目信息与控制工程学院院(系)软件1202专业班级赵曼姓名120670211学号朱旭东、祁飞指导教师2015年09 月20 日摘要当今时代是一个信息时代,随着互联网技术和计算机技术的发展,计算机行业起着至关重要的作用。
为了更好适应地这个时代选拔人才的标准,提高人们的计算机水平,计算机在线评测系统应运而生。
在线评测系统是一个针对计算机人才选拔的网站,主要提供程序设计练习和考试平台。
用户可以在这个网站上查询并练习题目,然后当用户针对相应的题目编写了程序以后,可以在在线评测系统上将程序代码以相应题号为准提交到服务器端。
服务器接收到提交信息后,将该程序的题号、提交时间、相应题目的信息等传送到后台测试平台,后台将根据这些信息对同学们提交上来的程序代码进行编译执行,并做出相应判断,将测试结果返回相应的数据库。
程序代码提交后,提交结果将在网页上显示出来,同时会有相应的排名数据以及解题信息。
本系统是基于JSP技术建立的药品进销存管理系统,其目标是完成对药品的进、销、存进行管理。
整个项目采用MVC的架构。
使用Servlet充当控制器,Jsp用来做视图层的显示。
这种分层模式可以降低模块之间的耦合度。
有利于系统维护、代码重用和后期增加相应的功能。
关键词:JSP、SQL Server2005、Java Web、在线测评、ACM目录1系统概述 (1)1.1目的 (1)1.2开发工具和运行环境 (1)1.2.1开发工具 (1)1.2.2运行环境 (1)2软件总体结构 (2)2.1系统结构设计 (2)2.2系统权限划分 (3)2.2.1用户操作 (3)2.2.2管理员管理 (3)2.3系统功能划分 (3)2.3.1用户模块 (3)2.3.2管理员模块 (3)2.3.3在线评判模块 (3)2.3.4题库模块 (3)3详细设计 (4)3.1系统架构目标 (4)3.2构架设计 (5)3.3系统开发模式 (6)3.4数据流图 (7)3.5逻辑视图 (8)3.5.1系统类图 (8)3.5.2人员信息包内的类图 (9)3.5.3接口包内的类图 (9)3.6过程视图 (10)3.6.1 用户登录 (10)3.6.2 管理员题目管理 (11)3.6.3 用户管理 (12)3.6.4 试题评判管理 (13)4数据库设计 (14)4.1概念模型 (15)4.2逻辑模型 (15)4.3表的物理结构定义 (17)5 相关界面 (19)5.1主要功能界面 (19)6总结 (23)7参考文献 (25)1系统概述1.1目的ACM在线评测系统是一个基于B/S结构的多用户在线系统,允许用户在线提交自己的解题代码,系统会自动编译运行给出结果,并根据用户的解题数量和分数排出名次。
基于ACM竞赛平台模式的程序设计题自动判题系统设计

设计 了一种基于 B / S 模式 的适合 C 语言程序设计题 目的自动判题 系统 , 利用 网络 由学生 随时提交 随时判题 , 使学生在 日 常作业 、 上 机实验和 自测练 习时, 能够及 时准确 的发现错误 , 编写 出正确 、 合 理、 高效 的程序 。本 系统 的应用对于促进学生学 习的积极性和 主 动性 、 缩短学 习周期 、 降低教 师大量重复性 的工作量 、 提 高学 习效 率、 改进教学效果等方 面都有显著作用 。
N O. 2
T I 皿
塑 ! E 埘: 『 C 棚 0 N
Fe
基于A C M竞赛平台模式的程序设计题 自动判题系统设计
黄宏博
摘要: 针对信息化教 育中对在 程序设计题 自动判题 系统的需求 , 设计 了一种基 于B/ S 模式的在线评判 系统, 既可以厘用 于A C M/
I C P C国际大学生程序设计竞赛和训练 中, 也可以用于教 学。可以有效减轻教 师大量重复性 工作 , 同时培 养学生的积极性 和创造性 , 提
时效性差 , 无法对学生进行及 时反馈 , 导致学 习效果受 到影 响。 A C M国际大学生程 序设计竞赛 ( A C M I n t e r n a t i o n a l C o l l e g i a t e
数据 来进行 测试 , 如A C MO n l i n e J u d g e 系统。题 目要求输入指定 的数据 , 检测用户程序是否能够得 到相应 的输 出数据。这类 系统 只对输入和输 出数据格式做少量 限定 , 可以让用户 自由设计 自己 的算 法和代码 , 对于 鼓励 学生 的积极性和创 造性来说 , 相对于第
湖南工学院acm在线评测系统的设计

电子技术与软件工程Electronic Technology&Software Engineering软件开发与应用Software Development And Application湖南工学院ACM在线评测系统的设计文/任长安罗庆云曹水莲(湖南工学院计算机与信息科学学院湖南省衡阳市421002)摘要:Online Judge系统是ACM程序设计竞赛选手最常用的训练平台之一。
本文针对湖南工学院师生在程序设计类课程、程序设计类竞赛等方面的实际需要,设计了一个功能完备的湖南工学院ACM在线评测系统,该系统不仅能够满足ACM队员的日常训练和比赛的相关需求,而且还能够辅助教练、老师完成编程作业的下发、评测、统计等工作。
关键词:在线评测系统;ACM;程序设计竞赛1引言Online Judge(简称OJ)⑴系统是目前各高校程序设计类竞赛中ACM队员的主要训练平台,该系统的评测方式不仅仅在各类大学生程序设计大赛上被广泛使用,而且也在很多高校的程序设计类课程教学实践中被频繁采纳l21o本文针对湖南工学院师生在程序设计类课程、竞赛等方面的实际需求,按照软件工程规范,设计了一款ACM在线评测系统(简称HGOJ),该评测系统不仅能够满足湖南工学院ACM集训队队员的日常训练、比赛,而且教练或程序设计类课程教师也可以在该OJ上布置编程类作业、考试测验、答疑、数据统计等。
2需求分析2.1开发工具选择HGOJ的用户基本上都是本校的ACM队员、教练以及担任程序设计类课程的教师,对于一个专门用于程序设计类竞赛、训练的中小型web系统来说,首先要保证系统的稳定性,在大量数据请求时也要能达到及时稳定的响应⑶。
因此,考虑到这方面的需求,在HGOJ的实现上可采用Go语言,因为Go语言采用的协程比多进程或者多线程更加高效可靠⑷⑶。
2.2用户需求对于用户来说有以下几个模块的需求:(1)用户中心模块。
在该模块中,用户中心能够显示用户的头像、用户名、联系邮箱、学校等基本信息,需要显示用户做过的题目列表和评测状态列表。
一种基于ACM程序设计竞赛在线评测系统解决方案甄选

一种基于ACM程序设计竞赛在线评测系统解决方案(优选.)一种基于ACM程序设计竞赛在线评测系统解决方案发布:2012-11-07 | 作者:-- | 来源: -- | 查看:411次 | 用户关注:摘要: 分析了一种基于ACM程序设计竞赛在线评测系统的基本原理及系统的构成,重点阐述了程序性能评判原理及实现方法。
对通信安全、资源占用等关键问题给出了相应的解决方案,主要模块给出了相应代码。
关键词:评测系统;ACM;程序性能 ACM国际大学生程序设计竞赛 (ACM/ICPC或ICPC) 是由美国计算机协会 (ACM) 主办、旨在展示大学生创新能力、团摘要:</STRong> 分析了一种基于ACM程序设计竞赛在线评测系统的基本原理及系统的构成,重点阐述了程序性能评判原理及实现方法。
对通信安全、资源占用等关键问题给出了相应的解决方案,主要模块给出了相应代码。
关键词:评测系统;ACM;程序性能ACM国际大学生程序设计竞赛 (ACM/ICPC或ICPC) 是由美国计算机协会 (ACM) 主办、旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。
经过近 30 年的发展,ACM 国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。
竞赛规模的迅速扩大对阅卷工作的自动化、高效性、合理性和公正性提出了更高的要求,建立一套准确、高效的程序评测系统成为非常迫切的需求。
基于以上原因,本文给出了一种网络自动化的程序性能分析评价系统——ACM国际大学生程序设计竞赛在线评测系统的实现方案。
1 评测系统简介本系统提供了对C、C++、Java三种语言所编写的程序进行处理的功能。
用户按照竞赛题目的要求,通过对问题的分析并给出解决方案后,就可以向系统提交解决问题的源代码程序。
系统可以根据用户提供的源代码,采取相应的程序语言环境编译、运行。
在编译与运行正常以后,系统按照题目要求来判断该程序结果否正确,同时给出程序的运行时间、内存的开销等情况,根据程序性能信息表[1-2]来判断各个用户的得分情况。
基于Linux的ACM在线评测系统研究

Ree r h o s a c n ACM l eJ d eS se Ba e n Liu Oni u g y tm s d o n x n
YANG — i Zhiwe ,ZENG n—h n Ya s a
( eate t f o pt cec , hnk i nvri f giuueadE g er g u nzo 12 5 C ia D pr n o m ue Sine Z og a U ie t o r h r n ni e n ,G aghu5 02 , hn ) m C r sy A e n i
t tntecmpt o d om e te eurm n o i cn s, C nie ue s m poie t i n l o e s i h o ue w r .T eth q i et fhs ot t A M ol dg yt r ds a ig a r r l r e t e nj s e v a r n p t m.S r f o a f
if r t n o o ue o s mp in a d r tr ig t e tsi g r s l . Wh t S moe h y t m a d n i h a a d n no mai f mp trc n u t n eu n n h e t e u t o c o n s a ’ r ,t e s se c n ie t y t e h z r s a d f
A s atA M cn s irgre s h n i e a et cl adh hs l efrne ao acl g t pormmn o- bt c: C ot ts ea da eoe t t r s sa n i ete lo t nt n ol a rga i cn r e d t w hh lg e i v i r i l g e e i g
ACM在线评判系统WEB服务块

毕业论文(设计)题 目 NIT 在线评判系统WEB 服务模块姓 名 竺承敏学 号 3020816205分院(系) 信息工程与技术专业班级 计算机6班指导教师 蔡明伦完成时间 2006 年 5月 31日宁波理工学院摘 要在线评判系统是一种接受用户提交程序,进行编译,运行,比较运行结果,并且将结果反馈给提交者的一套网络服务系统,其主要功能包括了用户注册,用户提交代码,查看提交的的返回结果,已经组织在线竞赛等等。
在线提交系统的出现大大提高了程序的评判效率,并且完全由机器完成,做到了公平公正,因此被ACM/ICPC(国际大学生程序设计竞赛)所采用。
本文分为五个章节,讲述了在线评判系统中web服务模块的开发。
第一章:讲述了ACM竞赛的背景知识和国内外在线评判系统的使用情况。
第二章:介绍了开发工具和系统的配置环境。
第三章:介绍了系统所采用的数据库连接技术。
第四章:介绍了层叠样式表在页面显示中的应用。
第五章:系统整地构架和各模块的构成。
关键词: ACM/ICPC;Online Judge;JSP网页编程;MVC构架;MYSQL数据库; TomcatAbstractOnline Judge System is a web services system designed for accepted users submitted code, compile, execute, compare the result and feedback the result to user. Its main function include user registration, user submitted code, query submit statue, organize online contest and more. The emergence of online judge system has greatly enhanced the efficiency judge procedures, and fully completed by the machine, do the fair and just. Therefore, the system is widely used by International Collegiate Programming Contest.This thesis included five chapters, describe the development process of web services module in online judge system.Chapter one: introduce the background of ACM/ICPC and the use of online judge system on the domestic and international.Chapter two: describe Development tools and system environment.Chapter three: describe the technic of database connection in Online Judge System.Chapter four: describe the technic of CSS in Online Judge System.Chapter five: describe system`s main framework and composition of the module.Keywords:ACM/ICPC; Online Judge; JSP; MVC; MYSQL database; Tomcat目 录1. 绪论 (1)1.1ACM/ICPC简介 (1)1.2什么是在线提交系统 (2)1.3国内外知名在线评判系统介绍 (2)2. 开发工具与平台简介 (4)2.1 Linux (4)2.2 Apache (5)2.3 Tomcat (5)2.4 MySQL (6)2.5 GCC (6)2.6 Eclipse (7)3. 数据库连接技术 (9)3.1数据源 (9)3.2连接池 (9)3.3数据源配置 (10)3.4数据库连接 (13)3.5数据库操作――预备语句 (13)3.6本章小结 (14)4. CSS在页面显示中的应用 (15)4.1CSS简介 (15)4.2CSS的优点 (15)4.3CSS的应用 (17)4.4小结 (18)5. 系统分析设计及实现 (19)5.1需求分析 (19)5.2系统结构分析 (23)5.3模式的选择 (26)5.4系统的实现 (28)5.5本章小结 (45)1.绪论随着Internet的广泛引用,计算机技术的飞速发展,同学们提高程序设计能力的愿望越发强烈,但是计算机教学中又存在一定的真空期,大多数同学编程学到一定阶段就无事可做了,这时往往是基本语法已经掌握,数据结构和算法也略有所知,但是要想马上写出一个MS word或是极品飞车又未免太难了。
程序设计类课程在线评测教辅系统的设计与实现

᪅䒱ᢚ
图 1 基于 HUSTOJ 平台的在线评测教辅系统架构
据。各类数据单元既可以独立支撑上层应用的数 据需求,又可以相互联系在一起构成数据挖掘的 数据集。
应用层是系统逻辑功能的实现,根据不同的 需求分为在线评测模块、智能问答模块、成绩预 警模块、抄袭检测模块和日常教辅模块,其中在 线评测模块包含在线判题、题库管理和作业管理 3 个子功能;智能问答模块包含实时问答和异步 问答两个子功能;成绩预警模块包含成绩预测和 风险提示两个子功能;抄袭检测模块包含代码比 对和作业分类两个子功能;日常教辅模块包含随 堂测验和出勤管理两个子功能。各个模块从功能 性上相互独立,可单独使用,又从逻辑上相互联 系、相辅相成,贯穿整个教学活动。
第 11 期
教育与教学研究
105
㶔⣜ᅮ
Ꮐ⩔ᅮ
㏫䃰≷ ㏫䷄ݐ ䷄Ꮏネ⤲ ҈͆ネ⤲
㏫䃰≷᪅䒱㈧㐋
ᮦ㘩䬚む ᬢ䬚む ᐮₑ䬚む
㐕䶰䂒
㐕䶰≷
䷺䮕
ឰ㷙ᷬ≷ Џⴭ℀ᄥ ҈͆ܲㆧ
ᬑ፤᪅䒱 䮻മ≷侸 ࠐܦネ⤲
ᢚᅮ
҈͆ᢚ
䬚むᢚ
䶰≷ᢚ
҈͆Џⴭ
中国大学 MOOC 面向大众提供种类繁多的 优质教学资源,其中也包括为数众多的程序设计 类课程。笔者以该网站为例,说明现有的程序设 计类课程的在线教学系统存在的问题。 1.1 缺乏功能完善的在线评测教辅系统
大学程序设计类课程的授课内容不仅包含 面向过程编程的基本数据类型、程序流程控制等 知识点,还包含类和对象、继承和多态、异常处 理、用户图形界面、多线程编程等众多面向对象 编程的特性。目前中国大学 MOOC 网站的程序 评测系统采用的是使用测试用例进行程序正确性 判定的方法,该方法无法对包含这些面向对象特 性的程序进行有效的判定 [1],进而影响评测效果。 1.2 班级管理混乱
程序设计类课程考试改革与实践

2022年 4月 April 2022Digital Technology &Application 第40卷 第4期Vol.40 No.4数字技术与应用158中图分类号:G642 文献标识码:A 文章编号:1007-9416(2022)04-0158-03DOI:10.19695/12-1369.2022.04.53程序设计类课程考试改革与实践董卫1 王婷婷1 徐剑21.山东农业大学信息科学与工程学院;2.山东省泰安第二中学信息技术组随着计算机的普及和互联网的蓬勃发展,为满足社会对程序设计人才的需求,程序设计类课程成为大学各专业的必修或选修课程,通过课程学习,可以培养学生计算思维和编程技能,提高以计算机作为工具解决实际问题的能力。
特别在计算机、网络工程、物联网、数据科学与大数据技术、人工智能等专业该类课程占有较大比重,如:C、C++、Java、Python语言程序设计、Web程序开发、手机App、小程序开发、大数据开发、数据分析等,从考试角度看,这类课程主要考察学生的编程水平和系统设计和实现能力,传统的纸质闭卷形式不能很好地满足这种要求,因此通常采用上机考试、实验随堂考试、技能测试、大作业等相结合的方式[1-6]。
本文分析了程序设计类课程特点、常见考试形式,介绍了作者在该类考试中的探索与实践。
1 程序设计类课程特点程序设计课程通常以学习一门编程语言为主要内容,通过大量的上机练习,熟悉语言的语法、编程接口,并利用该语言工具,设计开发各种程序、系统解决实际问题,课程特点如下:(1)注重培养计算思维和系统设计能力。
学习程序设计语言,重点不在于记忆语法规则,而是熟悉语言特性,学以致用,用程序思维解决学习、生活中的问题,更深层次地用好计算机工具。
(2)理论与实践并重。
除了学习课程的理论脉络,上机实践更加重要,只有大量调试程序,才能避免纸上谈兵、眼高手低,不断提高编程技能,培养耐心、细心、坚韧不拔的优秀品质。
ACM—ICPC在线评判系统关键技术研究

ACM—ICPC在线评判系统关键技术研究
朱凯迪;陈萌
【期刊名称】《科技创新与应用》
【年(卷),期】2011(000)023
【摘要】本文针对目前我国地方高校普遍缺乏一种有效的ACM—ICPC在线评判系统,因而较大地限制了各高校对参赛选手进行有效日常韧l练的现况,对ACM—ICPC在线评判系统的工作流程、评判原理进行了较深入地研究,并研究、分析了实现在线评判系统的三个关键技术。
本系统不仅能够实现参赛选手的个人日常训练和动态试题库管理功能,还能够进行在线模拟比赛,这为提高地方高校ACM竞赛成绩提供了较大方便。
【总页数】1页(P8-8)
【作者】朱凯迪;陈萌
【作者单位】宁波工程学院电子与信息学院,浙江宁波315016;宁波工程学院电子与信息学院,浙江宁波315016
【正文语种】中文
【中图分类】TQ333.97
【相关文献】
1.基于LAMP架构的ACM/ICPC在线评测系统设计
2.基于ACM/ICPC在线测评系统的设计
3.基于B/S架构及Linux系统的ACM竞赛在线评判系统
4.ACM在线评判系统设计与实现
5.基于J2EE的ACM竞赛在线评判系统的设计
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1引言ACM 国际大学生程序设计竞赛(ACM/ICPC,ACM Internation-al Collegiate Programming Contest)是由国际计算机协会(ACM,As-sociation for Computing Machinery )主办的,是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛。
ACM/ICPC 从1970年开始,目前已举办到第39届,旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。
该竞赛日益受到全球大学生的重视,2014年的第38届比赛,全球有来自96个国家的2286所大学参加,共有10681支参赛队,最后122支队伍进入在俄罗斯举行的全球决赛。
全球著名企业对此赛事也极为关注,ACM 获奖者是各大公司争抢对象。
IBM 公司是ACM/ICPC 的长期赞助者,中国区比赛则由中国著名科技公司阿里巴巴、华为等领衔冠名。
腾讯、百度等各大计算机业界著名公司的招聘条件中将ACM 竞赛成绩作为重要参考。
对于各高校,参加ACM 竞赛并取得好的成绩,是展示计算机科学人才培养成果的机会,也能进一步提高计算机类专业的教学水平。
2ACM/ICPC 在中国中国内地于1996年在上海大学举办了国内首届ACM/ICPC 亚洲区域赛。
上海交通大学于第26届,第29届和第34届获得全球总冠军,浙江大学获得第35届全球总冠军。
目前每年中国举办的亚洲区域赛达6个赛站,参加的队伍超过2000支。
2014年中国大学生代表队在全球总决赛中的成绩如下:第3名北京大学第6名上海交通大学第11名清华大学第13名电子科技大学,浙江大学第19名复旦大学,福州大学,吉林大学,华南农业大学,中山大学第45名北京理工大学,北京师范大学,湖南大学,华南理工大学而同年度,麻省理工学院是第19名,斯坦福大学是第45名。
虽然我国高校目前在计算机科学方面的教学科研水平与这些世界名校还有差距,但在ACM/ICPC 上的成绩表明,中国学生在ACM 竞赛的训练上卓有成效。
3ACM/ICPC 竞赛在线评测系统为支持ACM/ICPC 竞赛,较多的大学在互联网上搭建了在线评测的网站,以支持平时的训练以及各种类型的比赛。
网站发布数量众多的竞赛题目,并自动对用户提交的解答代码进行测试,评判其正确性。
目前的情况表明,建设有较好的在线评测网站的大学,常常取得较好的竞赛成绩。
以下介绍一些比较著名的开放式在线评测系统。
*北京大学的OpenJudge 系统()网站的中文名为“百炼”,前身是,该网站2003年上线,目前还在网上与OpenJudge 并行运行。
该网站的题库目前已达4000多题,总注册用户达20万人,每天有3000多次代码提交。
至2014年1月该网站已经举行近500次各种竞赛,之后该网站主要支持注册用户进行训练,不再举办竞赛,竞赛活动转移到新网站OpenJudge 系统上。
OpenJudge 的主要特点是其强大的软硬件系统,该系统支持大量用户建立各自的虚拟竞赛区域而无需搭建自己的在线评测系统。
同时不仅支持独立用户注册,还支持用户群组,使得各个学校可以形成学校群组或班级群组,在其上独立开展活动。
目前已经有200多个群组在该系统上进行有关程序设计的教学考试及竞赛活动。
近年来,在poj 及Openjudge 的支持下,北京大学在ACM/ICPC 全球总决赛取得极好的成绩(年-名次):2014-3,2013-14,2012-13,2011-13,2010-14,2009:2008-13。
*浙江大学的在线评测系统()浙江大学的在线评测系统每个月举办一场针对所有编程爱好者的月赛,可查的第一场月赛于2002年12月举行。
题库中目前已经积累3000多题。
该系统支持的编程语言较多,包括C/C++,JAVA,Python,Perl 等。
除了月赛外,该系统承担了浙江省的ACM 程序设计联赛,也举办了多届ACM 亚洲区域赛,从而在编程爱好者中极为著名。
浙江大学的在线评测系统目前发展出一个非常有商业价值的分支,即,支持编程能力认证,所颁发的证书获得了包括微软、谷歌、百度、腾讯等著名中外IT 企业的认可,PAT 成绩可以作为这些企业招聘的笔试成绩。
近年PAT 考点逐渐增多,已经在全国多个城市分布了约21个考点。
2015年全国高等学校教学研究中心已参与联合运营。
*杭州电子科技大学在线评测系统()杭州电子科技大学的在线评测系统2005年上线并举办第一场程序设计竞赛。
系统注册用户已达13万,题库积累的题目数达4000多题。
支持在线教学是该网站的重要特色。
申请到教学管理账号后,可以建立自己的题库,管理班级,发布作业,实验及考试。
系统支持评测以及成绩统计与分析。
这部分功能免费,吸引了许多高校使用,现已发布作业及考试4000多次。
众多高校在该网站上举办自己的编程竞赛,并且每年暑假有基金项目:三峡大学2013教学研究项目:面向学科竞赛的一体化软件实践教学体系研究与实践,三峡大学2014教学研究项目:面向“卓越计划”的计算机人才培养模式研究。
ACM 在线评测系统与程序设计教学徐义春邓波摘要:本文介绍了ACM 国际大学生程序设计竞赛与ACM 竞赛在线评测系统,分析了ACM 竞赛成绩与在线评测系统的关系,指出拥有并维护较好质量的在线评测系统,能很大程度上促进提高竞赛成绩,同时也能对计算机程序设计课程的教学提供帮助。
最后,讨论了在线评测系统用于教学时需要注意的一些问题。
关键词:程序设计在线评测系统ACM/ICPC 中图分类号:G642.0文献标识码:C DOI:10.3969/j.issn.1672-8181.2015.09.026多校联合集训,以准备下一届的ACM竞赛。
从2010年开始,杭电的网站也承担了大多数的ACM亚洲区域赛,从而在ACM竞赛中的影响力颇高。
从2014年7月开始,该网站每周举办一次称为Bestcoder的比赛,每次比赛全国有1000多人参与。
参与排名的ID有3000多个,说明多数用户长期都参与其中。
值得一提的是,杭电原本是国内一所二本院校,但是该校在ACM竞赛中取得了辉煌的成绩,每年都获得亚洲区域赛各种奖牌,更在2010年进入全球总决赛获得优胜奖。
杭电优秀的评测系统在其竞赛成绩中也有一份贡献。
*华中科技大学在线评测系统()华中科技大学的在线评测系统网站于2008年上线,规模并不大,注册用户目前只有18000多人,题目也只有600多道,但是华中科技大学在在线评测系统开发上做出了卓越贡献:开放系统源代码,便于各机构搭建自己的在线评测系统。
虽然互联网上有较多著名的开放竞赛服务器可用,但是一个学校拥有自己的服务器,管理上显然更为方便,对教学和竞赛的支持也更强。
目前全球已有70台服务器在运行该系统,而已知的内网服务器也有20多台。
*萨拉托夫国立大学在线评测系统(acm.sgu.ru)俄罗斯萨拉托夫国立大学的在线评测网站是一个全球著名网站,虽然题库中只有5百多道题,但每一题都很精炼。
注册用户现有2万多人。
该网站于2010年诞生了一个现在极其著名的子网站:Code-forces,它的运行方式跟ACM竞赛的运行方式有不同,当一个用户提交的代码通过测试后,可以锁定自己的代码,去查看并测试别人的代码。
这种方式使得最后能集中用户的测试数据,从而对问题给出更严格的测试,使判题更加准确,给出题带来方便。
Codeforces上每周大约举行6次以上的比赛,全球注册用户已达5万多人,杭电的Bestcoder比赛应该也属于这个类型。
萨拉托夫国立大学也是ACM总决赛的常客,曾于2006年获得总冠军。
*spoj()2004年由波兰但斯克科技大学建立,它的特点是大:支持的编程语言达56种,注册用户总数30万,全球4000多个机构在使用该网站,拥有5000多道公开题,注册用户可以贡献题目,其中最多的用户贡献了500多道。
该网站基于两套集群计算机系统,其中有一套比较古老的集群系统,速度慢,但是正好用来测试算法复杂性。
用户出题时可以根据需要选择在哪套集群系统上运行。
*其他一些ACM在线评测网站由于ACM在中国高校的影响力日渐加强,以及为了本校编程教学的需要,中国许多大学建立了自己的在线评测网站,例如:上海交通大学在线评测系统北京师范大学在线评测系统同济大学在线评测系统武汉大学在线评测系统南阳理工大学在线评测系统等拥有这些系统的高校都取得了较好的ACM竞赛成绩,其中上海交通大学获得3次全球总冠军。
值得一提的是南阳理工学院,是省属二本院校,多次在ACM亚洲区域赛中获得铜奖,与其拥有较好质量的在线评测网站不无关系。
相反,国内也有一些著名高校,其计算机科学与技术专业在国内排名前茅,由于没有建立较好的在线评测网站,其ACM参赛队成绩与其专业声誉并不相称。
4在线评测网站与程序设计教学在计算机类专业中,C语言程序设计、数据结构、算法分析与设计等课程都安排有提高学生实践动手能力的编程实验部分。
如果采用教师人工审核,不仅耗时耗力难以进行,而且学生也难以及时获得程序正确性反馈。
因此,各高等学校特别是拥有ACM在线测试网站的学校,如前述北京大学、浙江大学、杭州电子科技大学,纷纷应用这类网站进行课程教学,为提高学生编程实践能力带来很大方便。
在浙江大学的PAT在线评测网站上,有多套编程语言和数据结构的实验题。
目前也已有相关文献对如何使用在线评测网站辅助教学的研究成果。
为了方便管理以及根据需要不断扩充功能,三峡大学开发了本校的在线评测网站系统。
该网站用java语言开发,使用mysql 数据库,支持普通注册用户和班级用户,其中普通注册用户用于学生参加各种类型的编程竞赛,班级用户则用于教学。
常见的在线评测系统在作弊检测方面存在弱点。
在平时实验或者考试中,如果学生共享账号密码,则很容易获得其他人的编程答案。
三峡大学的在线评测系统中,用户登录后,对当前正在进行的考试或竞赛,无法查询已提交的解答,只有在该项考试或竞赛结束后才给予查询接口。
另外,还加入了代码雷同检测模块,教师在事后能启用该功能对一场考试的所有解答进行扫描,向教师提供学生的答案雷同程度数据。
在线评测系统用于教学考试时还存在测评分数的公平性问题。
ACM答题只有正确和错误之分,作为竞赛结果没有问题,但作为学业成绩则需谨慎使用。
在学生代码只有少数错误但最后答案不正确时,会被评测系统判为零分,而如果由教师人工评测,则可能获大部分分数。
三峡大学的解决方案是在平时实验中延长关闭时间,使学生有充分时间答题,在课程考试时和其他评测(如理论考试)结合使用,限制在线编程评测的分数比例。
另外一种弥补方案是在课程考试后对答题为零分的部分同学进行人工评测。
5结语前述的介绍和分析可知,ACM在线测试系统对ACM竞赛及其训练提供了有力的支撑,竞赛数据表明,良好的在线测试系统对提高比赛成绩有重要作用。