基于Django的程序设计实践教学与竞赛平台

来源 :科学与技术 | 被引量 : 0次 | 上传用户:anysome_921
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:随着互联网技术的发展,集处理数据分析数据为一体的互联网平台大行其道。Online Judge作为在线判题系统,为师生课后学习交流、竞赛练习,提供系统规范化的服务,成为学生学习的工具、教师教学的帮手。
  1 引言
  随着各种智能终端用户的增长和互联网技术的发展,各类大学online judge应运而生。最初使用于ACM-ICPC国际大学生程序设计竞赛和OI信息学奥林匹克竞赛中的自动判题和排名。现广泛应用于世界各地高校学生程序设计的训练、参赛队员的训练和选拔、各种程序设计竞赛以及数据结构和算法的学习和作业的自动提交判断中。其使学生和老师之间的教学互动更简单便捷,线上发布题目测试,成为学习方式新潮流,也增添了较多的学习乐趣,与未知的问题,奇怪的逻辑,繁杂的分支条件作斗争。
  Online Judge系统是一个在线判题系统。通过接收用户提供的源代码,对其进行编译、运行,并与预先存放的测试数据或者测试用代码来验证其正确性。用户提交的代码一般会在限制条件下运行,包括时间限制、内存限制、安全权限限制等,用户可以选择在竞赛模式以及普通模式以达到在不同要求下完成程序的编写,程序判断结果由后端返回至用户界面。
  本文介绍使用python的Django框架搭建OJ平台的方法。
  2 Django框架搭建的Web平台
  开发Web服务器所需要的MTV模式是由模型、控制器和视图这三层以松耦合方式连接在一起,其中模块负责对象与数据库的映射,视图负责用户与前端的交互,控制器则负责接收用户请求并调用相应的模型和视图来完成用户的请求。本文所述的系统中以OJ测评系统为其核心,包括用户管理模块、题库模块、测评数据模块、数据统计分析模块。
  (1)用户管理模块:包括学生、教师、管理员不同等级的用户,各有不同的权限以及操作。学生可以做题并进行讨论,教师可以发布题目并得到学生作答的详细信息,管理员可以发布题目以及修改普通用户的信息。
  (2)题库模块:完成题目的描述、测试数据、测试代码的添加、修改、删除等功能,以及对做题数据的数量、正确率等的统计。
  (3)测评数据模块:OJ的核心内容,对用户提交的代码进行评测。
  (4)数据分析模块:对正确率、错误原因进行统计和分析,并包括数据查重等功能。
  3 OJ系统的搭建
  Online Judge的实现,能很快地运用到现实的学习生活中去,有效的考核学生的真实水平,促使学生更好的学习计算机知识,强化学生的实践能力,给学生和老师带来立杆见影的效果;极大地提高了学生和老师双方面的效率,减轻了老师在实验教学管理上的负担。因此,并发这样一个面向程序设计语言初学者的Online Judge在线实些系统,是很有实际意义的。
  3.1 OJ运行原理
  用户提交的代码通过前端传给后端Docker所部署的GCC编译器中,并接收测试数据传人编译器中,将得到的数据与后端的正确数据进行比对并返回结果;或者接收测试代码,将随机的测试数据分别传人用户提交的代码以及测试代码中,比对两者是否一致并返回结果。如图一所示,其流程大致如下:
  (1)从前端接收代码,创建一个Docker镜像,并将代码放入进行编译,如果代码有错误返回错误信息CompileError,编译通过则进行下一步。
  (2)运行代码,传入测试数据,得到结果,如果有使用系统限制的函数则返回RestrictedFunction;如果有运行时错误,则返回运行错误RuntimeEorror,运行成功则进入下一步。
  (3)提取运行时系统的数据,包括运行时间、使用内存大小、输出内容大小,如果不符合要求则分别返回TimeLimitError、MemoryLimitError、OutputLimitError,没有问题则进行下一步。
  (4)将获得的数据与正确结果相比对,不相同则返回WrongAnswer,正确则返回AnswerCorrect。
  OJ主要负责对用户代码的结果的检验,并返回正确或错误的信息,然而对于用户提交代码的安全性,是否提交了会使系统超时、内存溢出等问题的代码时,需要利用Docker的沙盒机制来保证这些代码不会给系统的正常运行造成影响。
  3.2 OJ的沙盒机制
  对于运行在服务器上的系统,系统的安全性是最重要的,不安全的系统对于系统的健全来说是致命的。如果从前端传入的代码通过获取非法的权限占用系统资源,破坏系统中存储的数据,结果将是毁灭性的,所以代码必须在安全可控的环境下面运行。
  Docker利用Namespace实现了6项隔离,Docker在安全性上也做了很多工作,大致包括下面几个方面:
  (1)Linux内核 Capability 能力限制
  Docker支持为容器设置Capabilities,指定开放给容器的权限。这样在容器中的root用户比实际的root少很多权限。
  (2)镜像签名机制
  (3)Apparmor的MAC访问控制
  Apparmor可以将进程的权限与进程Capabilities能力联系在一起,实现对进程的强制性访问控制(MAC)。在Docker中,我们可以使用Apparmor来限制用户只能执行某些特定命令、限制容器网络、文件读写权限等功能。
  (4)Seccomp系統调用过滤
  使用Seccomp可以限制进程能够调用的系统调用(system call)的范围,Docker提供的默认Seccomp配置文件已经禁用了大约44个超过300+的系统调用,满足大多数容器的系统调用诉求。
  (5)User Namespace隔离
  (6)SELinux
  4 总结
  本文所研发的教学与竞赛平台,体现了便携化、智能化的生活方式是社会发展的必然趋势,迎合了当前国家“互联网+教育”的号召。面向庞大的教育机构市场,多种校园化平台软件竞争激烈,高校迫切需要一个学生信息分析综合性、一站式平台我们力求做到人机交互友好,数据处理高效,功能全面便捷。本平台的核心竞争力在于身为大学生的我们能从学生的视角发掘问题,紧跟潮流。平台基于 Django 技术,实现跨平台,多终端的新型教务系统。切实方便学生生活,增强学习氛围,提高师生互动,丰富课余生活,促进大学生可持续全面发展;同时有利于学校教务管理、学工管理,加强学生评定和数据分析信息化建设,改善学风教风,增强软实力和竞争力。
  参考文献
  [1] 浅谈Docker安全性支持
其他文献
摘要:在制药工程项目中,要积极落实更加系统化的管控机制,确保能完善行业标准,建立数据分析模型提升技术管理水平,满足个性化需求的基础上,践行精细化技术研发流程,确保能促进制药工程项目技术发展的可持续进步,实现战略目标。  关键词:制药工程;制药工艺;创新  1 制药工程中制药工艺概述  制药工程中只有保证制药工程技术的工艺流程符合要求,才能完善具体管理流程,确保能助力化学实验项目按照相应的要求予以落
期刊
摘要:核桃作为人们生活中一种重要的食品,其不仅食用价值极高,而且还有非常大的药用价值。经常食用核桃不仅能够延缓衰老,而且对很多疾病也有重要的预防作用。核桃作为家庭生活中的一种必备食材,受到了人们的广泛青睐,需求量也不断加大。再此背景下,如何提高核桃产量,增加经济效益,成为广大种植户共同关心的重要问题。随着当前农业种植技术的不断发展,在核桃种植中也应当积极引入先进的栽培管理技术。采用高接换优改造措施
期刊
摘要:本文就給定温度下高温作业服各层温度分布及高温作业服某层最优厚度进行了研究分析,利用一维热传导分析、傅里叶变换、MATLAB遗传算法工具箱、灵敏度分析等方法对题目进行分析,最终得出最终的结论。针对温度分布问题,通过一维热传导分析及傅里叶变换,简化传热为一维方向上进行,利用题目中假人体皮肤外侧温度来反求各层温度变化。  关键词:一维热传导模型;傅里叶变化;MATLAB遗传算法工具箱;灵敏度分析 
期刊
摘要:随着时代的进步,社会经济发展中,煤矿资源使用量日益增加。采煤技术水平不断提高,经历了人工挖掘到爆破,再到目前实施的机械化采煤,现代化采煤体系逐步完善。当前,井下、露天及急倾斜层等采煤方法是比较常用的,而炮采放顶煤、全自动刨煤机及小段爆破落煤等是主要采煤技术,还有其它采煤技术,有效提高了煤矿开采效益。基于此,本文主要论述了煤矿采煤方法与技术相关知识。  关键词:采煤方法;采煤技术;选择  引言
期刊
摘要:丁集矿作为高瓦斯突出矿井,回采11-2煤层关键保护层工作面瓦斯一直是个难题,通过1242(1)工作面的瓦斯抽采研究,总结出一套适应本矿井的瓦斯治理模式,并起到恨到的瓦斯治理效果。  关键词:顺层孔抽采;高抽巷抽采;抽采效果  一、概况  1242(1)工作面为丁集矿西一11-2采区的第三个回采工作面,是保护层开采工作面。工作面的布置方式是上、下顺槽,高抽巷,底抽巷的一面四巷布置,上顺槽和下顺
期刊
摘要:在计量测试中,由于受到一些因素的影响,从而使得常常会出现异常数据,为确保计量测试结果的准确性,必须对异常数据进行剔除。基于此点,本文从计量测试中异常数据的成因分析入手,提出计量测试异常数据的处理方式。期望通過本文的研究能够对计量测试数据精度的提升有所帮助。  关键词:计量测试异常数据处理  引言  计量测量,其本身便是一项对数据精准性有着极高要求的工作。而要确保数据获取的精准性,除了需科学处
期刊
摘要:本文简要介绍了几种地铁车辆常用的隔热材料基本特性及其性能参数,安裝及其在车辆中的使用情况,并分析性能,以便于地铁车辆设计中对隔热材料的选择。  关键词:地铁;隔热材料;性能;应用  1.引言  随着城市轨道交通的快速发展,对车辆的轻量化、隔热隔声、环保方面的要求也越来越高,现城市轨道交通列车主要采用超细玻璃棉、碳纤维棉、闭口橡胶泡棉、气凝胶及聚酯纤维棉等作为隔热材料。本文从隔热材料的性能参数
期刊
摘要:本文通过对方坯连铸智能加渣布料系统的需求设计了其控制系统,并在工程实践中验证了该系统,满足了工程现场的实际需要,同时大大减轻了现场操作工人的劳动强度,经济效益显著。  关键词:方坯连铸;智能加渣;S7-1200  1工艺需求  在连铸生产中,需要不断向结晶器内的液态钢表面添加保护渣,它可以绝热保温防止散热;隔开空气,防止空气中的氧进入钢水发生二次氧化,影响钢的质量;吸收溶解从钢水中上浮到钢渣
期刊
摘要:绿色发展是我国当今时下的发展趋势,绿色经济是近年来随着人们环保意识增强提出来的一个概念。发展绿色经济有利于缓解当下环境与经济发展的矛盾。化学是工业生产的重要组成部分,也是生产过程中,产生废气废水废渣最多的地方。工业绿色化是未来工业发展的趋势。绿色化学是绿色工业的重要分支,已经愈来愈受到社会的广泛关注。本文主要简单探讨了高分子材料合成以及在绿色工业中的应用,为我国绿色经济提供参考。  关键词:
期刊
摘要:近年来,对非完整移动机器人的理论和应用研究日益受到国内外控制界的重视。此类动力学系统由于具有多变量、非线性、强耦合、时变、参数不确定性等特性,使传统控制理论遇到极大困难。因此研究非完整轮式移动机器人具有十分重要的意义。本项目将传统自平衡车与超声波、遥控器相结合,利用距离传感器感知躲避环境障碍和采用PID控制算法来维持车体平衡。  关键词:移动机器人;自平衡;闭环控制;PID算法  基本内容:
期刊