一、目的及意义
1.1 研究目的
程序语言课程是计算机相关专业的核心教学内容之一,要提高程序语言设计能力必须通过大量的实践练习,在传统的教学过程中,往往通过人工方式对程序的源代码进行评测,这种人工评测方式存在效率不高,容易误判的弊端。本毕业设计课题提出一个基于B / S模式的可扩展在线程序语言评测系统,对系统的设计和主要的实现技术进行分析和探讨。
程序设计类课程,具有实践性强的特点。它不但要求学生掌握基础的理论知识,更重要的是要求学生不断提高自身的编程实践能力。因此,在这类课程中,老师务必会布置大量的程序设计作业,传统通过电子邮件或手写提交作业的方式让老师感到批改作业的任务繁重,让学生感到费时费力,难以提高编程的实践能力。为方便教学,提高学生动手编程的实践能力,开发一个自动化,智能化的评测系统成为需要。随着现代信息化的发展,软硬件的不断升级,使得开发这样一个评测系统成为可能。
Online Judge System(以后简称OJS),则是指一个在线的裁判系统,它可对程序源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。
ACM/ICPC(ACM International Collegiate Programming Contest, 国际大学生程序设计竞赛)是由国际计算机界历史悠久、颇具权威性的组织ACM(Association for Computing Machinery,国际计算机协会)主办的,世界上公认的规模最大、水平最高的国际大学生程序设计竞赛。现在各高校也越来越重视ACM程序设计比赛,都纷纷建立起自己的测评平台供老师和学生使用,但其实我们可以将这个思路继续延续下去,让这个系统功能更加强大,将系统作为辅助引入到实际教学当中,提高学生学习程序设计语言的兴趣,提高学习效率和质量,提供一个完备的反馈系统等等。
毫无疑问,现阶段已经拥有许多优秀的程序语言在线测评系统,许多是随着ACM而生的。 例如北京大学在线测评系统是为训练国际大学生程序设计竞赛北大代表队而设计开发的,在训练的过程中发现,该系统在大学生程序设计类课程的教学中也能发挥重要作用于是将其逐步引入相关课程的教学中,革新了程序设计类课程的教学手段和考试办法,提高了学生的学习积极性,同时也在一定程度上抑制了学生在编写程序时常见的抄袭现象。
仲恺农业工程学院是我的母校,在线测评系统仍在探索当中,为了开发一个可适应强,扩展性好的在线测评系统,我将毕业设计课题方向定在可扩展程序在线测评的研究和设计上面。意在开发一个易用的,实用的在线测评系统,用以提高学生的学习兴趣和学习效率,增进学生、教师之间的知识交流,提高教学质量等。
1.2 研究意义
EPOJS(Extensible Program Online Judge System)是一个学习的好帮手,开发这样一个系统是非常有意义的,下面分点阐述。
(1)学者在线学习程序设计语言
无论是什么样的用户,只要想学习C程序设计语言,就可以在本系统上面实现在线编辑程序,执行程序并查看执行结果,通过测试的情况反馈使用者的学习情况。
(2)辅助教学
教师可以利用本系统给学生进行在线测试,并获得测试反馈结果,从而对结果进行分析,以便有针对性的对学生进行授课,提高教学质量。另一方面教师还可以在上面布置作业,审批作业完成情况,评定成绩等。
(3)学员之间交流平台
现有的OJ系统,没有论坛系统功能,学员之间不利于沟通。本系统提供论坛系统和邮件熊,作为网上的交流平台,学员门可以在上面畅所欲言,发表看法,讨论问题。对于要使用文件,就可以通过邮件的方式。
(4)提供工作流支持
使用单位可以根据单位的具体需求,动态定义不同的流程,使之能够适应大多数的工作流程管理,简化了系统的设计。
(5)基于角色的权限控制模型
使用RBAC来进行权限的管理与控制,使得权限分配更加集中和灵活,再结合Struts2的标签和拦截器,可以实现一个良好的权限控制系统。
二、论文(设计)任务及指标
(1)EPOJS一套,基于C语言的评测
(2)开发文档
(3)JBPM工作流支持
(4)RBAC权限控制模块(必做)及其模块化(可选)
(5)论坛子系统模块(必做)及其模块化(可选)
(6)邮件系统模块(必做)及其模块化(可选)
三、论文(设计)进度
工作进度时间安排表
时间
|
任务
|
20XX-9-17~20XX-12-1
|
进一步了解需求,分析系统功能,编写概要设计文档,建立系统的原型。
|
20XX-12-1~20XX-2-1
|
领域模型分析,系统架构设计,系统规范定义,编写开发文档,一切为了扩展性而设计。
|
20XX-2-1~20XX-3-1
|
EPOJS核心(Core)设计,采用JNI方式实现C语言的编译与执行。
|
20XX-3-1~20XX-3-15
|
基于角色的权限控制(RBAC)系统设计和实现,并将其模块化。
|
20XX-3-15~20XX-4-1
|
基于JBPM的动态工作流设计与应用。
|
20XX-4-1~20XX-4-15
|
EPOJS之论坛子系统的设计和实现,并模块化,实现可插拔。
|
20XX-4-15~20XX-5-1
|
EPOJS之邮件子系统的设计和实现。
|
20XX-5-1~20XX-5-30
|
系统测试,毕业论文编写。
|
四、主要参考文献
[1] http://tech.ccidnet.com/zt/aop/
[2] ITeye http://www.iteye.com/search?type=all&query=aop
[3] Spring 官方网站 http://www.springsource.org/
[4] 面向方面的软件开发=Aspect-oriented software development/(美)Robert E. Filman[等]主编;莫倩[等]译.—北京:机械工业出版社,2006.
[5] 领域驱动设计:软件核心复杂性应对之道/(美)Eric Evans著;陈大峰等译.—北京:清华大学出版社,2006.
[6] Java中间件开发技术=Java Middleware Development/李华飚, 郭英奎等编著.—北京:中国水利水电出版社,2005.
[7] POJ. 北京大学在线评测系统[EB/OL].: http://acm.pku.edu.cn/JudgeOnline
[8] POUCHER B W. ACM/ICPC 国际大学生程序设计竞赛主网站 [EB/OL]. http://icpc.baylor.edu/icpc
[9] UVA. UVA Online Judge[EB/OL].:htp://online-judge.uva.es/context/
五、其它要求
规定时间内,较好的完成理论学习、系统架构设计、各个模块设计与实现的任务。如果有充裕的时间,考虑对系统进行扩展,诸如,提供对Java、JavaScript、HTML、C++、C#等多种语言的支持。
指导教师签名:
年 月 日
|