- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在线评判在C语言课程设计教学中的应用
C语言课程设计是计算机相关专业学生的重要实践教学内容 之一。它主要用于解决一个中等规模的实际问题 , 可以同时运用 一门或多门课程所涉及的知识域或知识点 [1] 。目前市面上有不 少C语言课程设计的教材[2-4],这些教材为任课教师选题和组 织教学提供了很好的参考。尽管如此 , 要使课程设计教学取得最 佳教学效果 , 我们仍要面对一些问题。
课程设计中的代码量较大 , 教师检查代码的工作繁重。 以设计一个小型仓库管理软件为例 , 代码一般为几百到上千行 , 一名教师指导两个班 (约 60 名学生 ), 全部检查需要阅读几万行 代码, 如果在教学过程中增加检查的次数 , 则工作量更大。因而 , 教师一般不直接检查代码 , 而采用抽检的方式 , 但效果不理想。
由于过程监控力度不够 , 抄袭现象严重。
用考勤、设计报告等有限的评分依据难以对学生学习情 况作出客观评价 , 相反, 它在一定程度上还挫伤学生的学习积极 性。
针对上述问题 , 有人提出将目前软件工程中的代码自动测试 的方法引入到C语言课程设计教学中来,让系统对学生提交的代 码进行自动评判 , 从而减轻教师的工作负担 , 提高过程的监控力 度, 并使评分更为客观 , 进而提高整个课程设计教学的质量。 然而 , 设计一套这样的系统对一所高校来说并非易事。 本文提出通过对 目前越来越多高校普遍采用的 Online udge(OJ) 系统进行功能改 造, 从而实现对课程设计中的代码进行在线自动评判的方法。实 践表明 , 该方法实现较为简单 ,且效果良好。
1OJ系统
OJ系统是一个在线的判题系统。用户可以在线提交多种语 言( 如 C、C++、Java) 的源代码 , 系统对源代码进行编译和执行 , 并通过预先设计的测试数据来检验程序源代码的正确性。 0J系
统最初使用于ACM/ICPC国际大学生程序设计竞赛)和01(信息 学奥林匹克竞赛 )当中, 现广泛应用于世界各地高校学生程序设 计的训练、 参赛队员的训练和选拔、 各种程序设计竞赛以及数据 结构和算法的学习和作业的自动提交评判中。常用的 0J系统涉
及的主要数据类型与功能如图 1 所示。
图1常用0J的主要数据类型与功能示意图
基金项目 : 华南农业大学教育教学改革与研究重点课题 (JG07012); 华南农业大学教育教学改革与研究课题 (JG07096) 。
在0J系统中,题目详细地描述了待解决的问题,用户可以选 定题目并提交相应的解答 ,评判机起到自动评判的作用 ,具体评 判过程如下。
编译并执行解答程序 , 如果出现编译错误或运行时错误 则报错并退出。
将题目中设定的测试数据作为解答程序的输入 ,解答程 序处理后 , 输出处理结果。
(3) 将解答程序的输出与结果数据进行对比 , 相符则输出
“接受(accepted),否则判错。
解答提交后一般经过数秒 , 便可看到评判结果 , 学生可以不 断修改代码并提交 , 直到 OJ 系统判定为“接受”为止。
20J系统的改进与课程设计的在线评判
在0J系统中,一个题目针对一个具体问题,比如排序或求最 短路径等。而一个课程设计题目远比 0J系统中的单个题目所涉
及的内容要多 , 但是课程设计题目可以分解成多个小的功能模块 比如设计一个小型仓库管理系统可以分成多个小功能模块 , 如读 入库存物品信息、 按物品名查询物品信息、 物品入库、 物品出库、 数据存盘 , 等等。这些分解出的小功能模块所要解决的往往是一 个具体问题,这就与0J系统中的题目对应上了。
为此,在现有0J系统上增加新的数据类型(如图2所示),以 达到对课程设计题目进行分解 ,并完成自动评判的目的。
图2增加新数据项后的0J系统
course solution( 课程设计解答 ) 是由学生提交的针对某一
个课程设计题目的解答(以源码方式)。由于0J系统只能评判对 应 problem 的 solution( 题目解答 ), 所以一个 course solution 将根据设定的 course problem 与 problem 的对应关系 , 分解为多 个对应的 solution, 之后由评判机评判。
对 course solution 的评判过程描述如下。
(1) 学生提交设计代码 , 创建 course solution, 并根据
course problem 与 problem 的关系创建对应的多个 solution
solution 进入评判队列 , 按 OJ 的评判规则完成评判。
对 course solution 的评判由上面多个 solution 的评 判结果汇总得到。
course solution 的评判结果通过计算带权累加和得到。用
P表示课程设计题目,pi(
文档评论(0)