999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Django的程序設計實踐教學與競賽平臺

2019-05-07 03:29:42馬嘉成朱雨許少鈞唐川子
科學與技術 2019年20期
關鍵詞:用戶系統學生

馬嘉成 朱雨 許少鈞 唐川子

摘要:隨著互聯網技術的發展,集處理數據分析數據為一體的互聯網平臺大行其道。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安全性支持

猜你喜歡
用戶系統學生
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
趕不走的學生
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
學生寫話
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
學生寫的話
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
主站蜘蛛池模板: 国产欧美在线观看视频| 国产成人精品一区二区秒拍1o| 国产亚洲欧美日韩在线观看一区二区| 婷婷综合色| 国产肉感大码AV无码| 欧美一级特黄aaaaaa在线看片| 色悠久久综合| 国产精彩视频在线观看| 99精品伊人久久久大香线蕉| 日韩精品亚洲精品第一页| 国产91小视频在线观看| 亚洲中文精品久久久久久不卡| 欧美一区国产| 国产乱人伦偷精品视频AAA| 欧美一区国产| 国产在线精品美女观看| 国产亚洲精品精品精品| 亚洲成在人线av品善网好看| 久久美女精品国产精品亚洲| 亚洲成在人线av品善网好看| 日韩在线网址| 国产精品私拍在线爆乳| 欧美一区日韩一区中文字幕页| 亚洲高清无码久久久| 天天综合色天天综合网| 狼友视频国产精品首页| av一区二区三区在线观看| 欧美一级片在线| 在线国产综合一区二区三区| 亚洲国产看片基地久久1024| 国产精品无码AV中文| AV老司机AV天堂| 日韩少妇激情一区二区| 国产精品入口麻豆| 伊人激情综合网| 香蕉eeww99国产在线观看| 色婷婷综合在线| 久综合日韩| 精品无码国产自产野外拍在线| 伊人久久久久久久久久| 国产91线观看| 国产精品爽爽va在线无码观看| 久久不卡国产精品无码| 欧美国产视频| 久久这里只有精品23| 国产欧美专区在线观看| 日本成人在线不卡视频| 国产最新无码专区在线| 亚洲天堂网2014| 国产精欧美一区二区三区| 国产一在线| 国产区在线看| 91亚瑟视频| 国产在线日本| 天天做天天爱夜夜爽毛片毛片| 国产福利免费观看| 欧美色99| 日韩在线永久免费播放| 九色最新网址| 黄片在线永久| 亚洲最黄视频| 国产精品成人一区二区| 国产在线精品网址你懂的| 丁香五月激情图片| 青青草综合网| 伊人久久大线影院首页| 精品国产91爱| 国产欧美亚洲精品第3页在线| 色悠久久综合| 国产精品自在在线午夜区app| 噜噜噜综合亚洲| 欧美激情视频一区| 爽爽影院十八禁在线观看| 99热这里只有精品免费| 亚洲欧美成人综合| 国产美女无遮挡免费视频网站 | 18禁影院亚洲专区| 亚洲综合一区国产精品| 都市激情亚洲综合久久| 成人福利在线观看| 成人福利在线免费观看| 青青青国产在线播放|