医学院校Python课程在线评判系统的研究和建设.pdf
《医学院校Python课程在线评判系统的研究和建设.pdf》由会员分享,可在线阅读,更多相关《医学院校Python课程在线评判系统的研究和建设.pdf(6页珍藏版)》请在咨信网上搜索。
1、现代计算机Modern Computer第 29 卷 第 12 期2023 年 6 月 25 日医学院校Python课程在线评判系统的研究和建设刘静乐,常小红,见伟平,李改霞,刘文磊,张国鹏*(空军军医大学基础医学院,西安 710032)摘要:基于目前Python程序设计课程教学模式的弊端和医学院校程序设计类课程自身的特点,结合医学院校学生的学习需求,开发了适合于医学院校学生的Python课程在线评判系统;基于Vue和Django前后端分离框架开发,采用Docker技术实现多判题节点的分布式部署,设计了Dramatiq分布式任务框架进行任务分发,有效提高了判题程序的并发数,解决了大规模并发评测
2、的需求。目前已应用于两门Python程序设计课程中,实践证明,开发的系统可以高效地应对程序设计类课程的在线练习,作业考核、大规模在线竞赛等,大大地激发了学生的编程兴趣,也高效地提升了教学效果。关键词:分布式评测系统;Django;Docker 容器;医学院校程序设计类课程文章编号:10071423(2023)12007806DOI:10.3969/j.issn.10071423.2023.12.014收稿日期:20230322修稿日期:20230427作者简介:刘静乐(1987),女,河南洛阳人,硕士,助教,研究方向为医学数据分析;常小红(1979),女,河北张家口人,硕士,讲师,研究方向为图
3、像检索与信息处理;见伟平(1983),男,陕西榆林人,硕士,实验师,研究方向为计算机应用;李改霞(1986),女,甘肃陇西人,硕士,讲师,研究方向为计算机应用;刘文磊(1986),男,山东青岛人,博士,助教,研究方向为计算机应用;*通信作者:张国鹏(1975),男,陕西咸阳人,博士,副教授,研究方向为计算机应用,Email:0引言Python 程序设计课程是空军军医大学所有专业的公共必修课程,通过编程可以培养学生的计算思维以及用计算机解决实际问题的能力。目前国内大部分程序设计类课程采用的是理论和上机实践相结合的方式,这种方式的优点是实施简单、有利于安排课程进度,但也存在一些弊端1。首先,该模式
4、容易出现理论和实践脱节的情况,学生课堂所学理论知识和机房上机实践时间往往存在一定距离,知识点不能及时得以巩固;其次,作业评测环节存在缺陷,由于学生人数多而教师人工批改效率低,评价结果不能及时反馈给学员,达不到“以评促学”的目的。基于这种情况,本文设计并开发了基于 Vue和 Django前后台分离框架的在线评判系统,学生只需要一台电脑,就可以随时随地在线编程练习、提交作业。系统会对学生提交的程序进行实时评判,提升了“教”与“学”的效果。目前许多高校也都建立了自己的在线评测系统,其中比较有影响力的包括:北京大学在线评测系统(POJ)2、杭州电子科技大学在线评测系统(HDOJ)3、浙 江 大 学 在
5、 线 评 测 系 统(ZOJ)4、中国科技大学在线评测系统(USTC)5 等。这些系统主要在高校内部供师生使用,很难推广到其它高校,此外,这些系统在设计时,每道题目设置多个测试用例,用户提交的程序需要通过测试用例的评判才能得分,这种评判模式应用较广,但要求苛刻,容易打击学生的积极性。而医学院校的程序设计类课程,旨在培养医学生的计算思维和计算机应用能力,以应对未来医疗和科研的实际需求,对学生的编程要求和工科院校学生相比,相对偏低,所以需要一种更加适合医学院校学生特点的评判模式。78刘静乐等:医学院校Python课程在线评判系统的研究和建设第12期基于空军军医大学自主开发的在线评判系统,教师可以根
6、据医学院校学生特点,有针对性地发布作业,举办在线考试、在线竞赛等,所发布的题目重点突出计算机在医学上的应用,包括医学数据分析、医学图像处理等。设计的题目评判机制摒弃了传统单靠测试用例一刀切的评分机制,而是结合学生所提交代码运行结果的格式、逻辑等综合打分,这种模式更加公正合理,不但激发了学生的编程兴趣,而且提升了用计算机解决医学实际问题的能力。此外,本系统采用了多判题节点分布式部署模式方案6以应对大规模并发评测需求。1系统架构设计本系统基于浏览器/服务器(Browser/Server,B/S)模式,采用了 Vue 和 Django 前后端分离的架构,系统整体架构如图1所示。Vue Axios异步
7、请求前端用户管理后端题目管理竞赛管理任务提交任务分配DjangoDramatiq结果统计分析公告管理数据库CentOS 7.0服务器MySQLRedisNginxDocker容器判题节点集群判题模块RESTful API图 1在线评判系统架构前端采用Vue搭建,Vue是一款轻量级前端框架,可以进行组件化开发,开发效率高7-8;使用的接口请求是Axios,Axios能够将异步请求同步化,简化请求机制,实现数据持久化,它是前后端数据交互的桥梁9。系统后端包括用户管理、题目管理、竞赛管理、任务管理等功能,当在线用户较多时,为了应对大规模并发提交的需求,采用了Dramatiq分布式任务框架,将任务调度
8、分发给多判题节点并发判题,其中 Dramatiq是一个快速可靠的分布式任务处理库。后端采用Django框架搭建,Django是由 Python 编写的开源Web 应用框架,遵循 MVC(model view controller)设计模式,具有功能强大的第三方库10-11。前后端之间通过DRF(django rest framework)进行数据交互,DRF是一款功能强大,用于提供RESTful规范的Web API接口,在前后端分离开发的情况下,前端与后端搭配实现在前端开发视图,在后端实现模型,前端视图和后端模型仅通过统一资源定位器URL(uniform resourcelocator)接口就
9、可以实现数据交互,进一步实现了“低耦合”的需求。服务器采用学校数据中心的五台云服务器,操作系统为 CentOS 7.0,Web 服务器为 Nginx,数据库采用开源数据库 MySQL,并结合使用Redis缓存数据库提高系统性能。本系统整体基于 Docker 实现快速部署,Docker 是一个开源的应用容器引擎,开发者可以打包它们的应用以及依赖包到一个可移植的镜像中,然后发布到 Linux或Windows操作系统的机器上1214,在本系统中,前后端应用程序、判题系统、MySQL、Redis不同功能模块运行在不同的Docker容器上,容器性能开销极低,采用沙箱机制,即将参与测评的代码在受限的安全环
10、境中运行,限制代码访问权限,避免了答题系统提交的代码对宿主机造成潜在的危险15。2系统功能模块实现本系统主要包括题目管理、判题管理、竞赛管理、系统管理四个功能模块,具体功能模块结构如图2所示。在线评判系统题目管理判题管理竞赛管理系统管理上传题目在线练习在线提交在线判题裁判结果创建竞赛在线竞赛用户管理公告管理日志管理权限管理图 2在线评判系统功能模块结构 79现代计算机2023年2 2.1 1题目管理模块题目管理模块题目管理模块包括上传题目和在线练习功能,上传题目时可以将题目分类管理,不同课程的教师在平台上发布自己课程的实践作业16,对于本校学生,高级程序语言设计是生物医学工程专业的核心课程,生
11、物医学工程专业属于工科,教学目标旨在培养学生掌握程序设计的基本思想和方法,提升计算思维;而Python课程是其它医学类专业的公共必修课,旨在培养学生用编程解决医学实际问题的能力。本系统目前已建立生物医学工程专业和其它医学类专业两大程序设计作业分类,任课教师可以根据学生特点和教学目标,有针对性地发布题目,在添加题目时,可以对题目设置难易等级、时间限制、内存限制等,同时,考虑到不同测试用例的难度不同17,根据难易程度为其设置不同的分值权重,从而使得评判模式更加公平科学。系统所发布题目主要和医学相关,比如医学体检数据分析、高尿酸血症诊断等,学生在做此类题目时,普遍兴趣较高,积极参与,在掌握编程知识的
12、同时,提升了用计算机解决专业问题的能力,其中添加题目界面如图3所示,题目列表界面如图4所示,学生可以结合自己的基础,选择适合自己的题目练习,系统会实时对所有学生的提交结果统计分析,并通过图形直观展示,从而教师可以第一时间了解学生对各个知识点的掌握程度,有针对性地提升教学效果。图 3新增题目界面 图 4题目列表界面2 2.2 2判题管理模块判题管理模块判题管理模块负责对用户提交的代码进行实时评判,并给出得分和具体错误说明,是本系统的核心模块。一方面,考虑到Python课程是所有医学类专业的公共必修课,学生人数较多,因此采用了多判题节点分布式部署方案以应对大规模评测需求;另一方面,考虑到目前各高校
13、的评判模式大多采用单靠测试用例一刀切的方式,即针对某一测试用例,将待测程序和标准程序的运行结果进行对比,如果完全一样则得分,否则不得分,这种评判模式比较苛刻,容易打击学生的积极性,而医学院校学生的编程水平相对工科院校偏低,教学目标旨在培养学生的计算机应用能力,因此,本系统采用了更适合医学院校学生特点的结果评判方式。2 2.2 2.1 1在线评测流程在线评测流程评判模块负责编译运行用户提交的程序,并给出评判结果,评判流程如图5所示。用户提交源程序后,Web服务器端将用户提交的信息存入数据库中,并通过 Dramatiq将其放在任务缓存队列中,基于队列对任务分发,首先从数据库查询所有状态正常的判题节
14、点,依次遍历,选择空闲服务器作为当前提交任务的判题节点,其中空闲服务器指正在判题的任务数目小于逻辑CPU数目的服务器,如果找到,则发送判题任务,判题节点采用Python进程池并发判题的方式,其中,进程池的大小为所在判题节点逻辑处理器的个数,在运行的过程中,会对系统资源情况进行实时监控,判断是否超 80刘静乐等:医学院校Python课程在线评判系统的研究和建设第12期出题目对资源使用情况的限制,包括时间限制、内存限制、输出限制等。如果超出设定限制,则判题结束,得分为 0,并给出错误说明;否则,采用空军军医大学自主研究的在线评测系统量化积分方法18对运行结果进行评测,最后界面显示总成绩和具体错误说
15、明。开始用户提交判题任务放入任务缓冲队列任务分发到空闲判题机运行可执行代码是否运行正常对运行结果进行评测是采用空军军医大学自主研究采用空军军医大学自主研究的在线评测系统量化积分方的在线评测系统量化积分方法对运行结果进行评测法对运行结果进行评测,界界面显示总分和具体错误说明面显示总分和具体错误说明语法错误返回具体的错误提示是否运行超时否内存使用超限否返回运行错误否返回超时错误是返回内存超限错误是图 5在线评测流程在线评测系统量化积分方法为:运行待测程序后,输入具体测试用例,获取运行结果,将输出结果的逻辑和格式分离,对输出结果的逻辑部分和标准输出逻辑部分进行相似性比对,按照比对结果计算逻辑分值;对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 医学院校 Python 课程 在线 评判 系统 研究 建设
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。