亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Django的程序設(shè)計(jì)實(shí)踐教學(xué)與競(jìng)賽平臺(tái)

        2019-05-07 03:29:42馬嘉成朱雨許少鈞唐川子
        科學(xué)與技術(shù) 2019年20期
        關(guān)鍵詞:測(cè)試數(shù)據(jù)代碼競(jìng)賽

        馬嘉成 朱雨 許少鈞 唐川子

        摘要:隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,集處理數(shù)據(jù)分析數(shù)據(jù)為一體的互聯(lián)網(wǎng)平臺(tái)大行其道。Online Judge作為在線判題系統(tǒng),為師生課后學(xué)習(xí)交流、競(jìng)賽練習(xí),提供系統(tǒng)規(guī)范化的服務(wù),成為學(xué)生學(xué)習(xí)的工具、教師教學(xué)的幫手。

        1 引言

        隨著各種智能終端用戶的增長(zhǎng)和互聯(lián)網(wǎng)技術(shù)的發(fā)展,各類大學(xué)online judge應(yīng)運(yùn)而生。最初使用于ACM-ICPC國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽和OI信息學(xué)奧林匹克競(jìng)賽中的自動(dòng)判題和排名?,F(xiàn)廣泛應(yīng)用于世界各地高校學(xué)生程序設(shè)計(jì)的訓(xùn)練、參賽隊(duì)員的訓(xùn)練和選拔、各種程序設(shè)計(jì)競(jìng)賽以及數(shù)據(jù)結(jié)構(gòu)和算法的學(xué)習(xí)和作業(yè)的自動(dòng)提交判斷中。其使學(xué)生和老師之間的教學(xué)互動(dòng)更簡(jiǎn)單便捷,線上發(fā)布題目測(cè)試,成為學(xué)習(xí)方式新潮流,也增添了較多的學(xué)習(xí)樂(lè)趣,與未知的問(wèn)題,奇怪的邏輯,繁雜的分支條件作斗爭(zhēng)。

        Online Judge系統(tǒng)是一個(gè)在線判題系統(tǒng)。通過(guò)接收用戶提供的源代碼,對(duì)其進(jìn)行編譯、運(yùn)行,并與預(yù)先存放的測(cè)試數(shù)據(jù)或者測(cè)試用代碼來(lái)驗(yàn)證其正確性。用戶提交的代碼一般會(huì)在限制條件下運(yùn)行,包括時(shí)間限制、內(nèi)存限制、安全權(quán)限限制等,用戶可以選擇在競(jìng)賽模式以及普通模式以達(dá)到在不同要求下完成程序的編寫,程序判斷結(jié)果由后端返回至用戶界面。

        本文介紹使用python的Django框架搭建OJ平臺(tái)的方法。

        2 Django框架搭建的Web平臺(tái)

        開(kāi)發(fā)Web服務(wù)器所需要的MTV模式是由模型、控制器和視圖這三層以松耦合方式連接在一起,其中模塊負(fù)責(zé)對(duì)象與數(shù)據(jù)庫(kù)的映射,視圖負(fù)責(zé)用戶與前端的交互,控制器則負(fù)責(zé)接收用戶請(qǐng)求并調(diào)用相應(yīng)的模型和視圖來(lái)完成用戶的請(qǐng)求。本文所述的系統(tǒng)中以O(shè)J測(cè)評(píng)系統(tǒng)為其核心,包括用戶管理模塊、題庫(kù)模塊、測(cè)評(píng)數(shù)據(jù)模塊、數(shù)據(jù)統(tǒng)計(jì)分析模塊。

        (1)用戶管理模塊:包括學(xué)生、教師、管理員不同等級(jí)的用戶,各有不同的權(quán)限以及操作。學(xué)生可以做題并進(jìn)行討論,教師可以發(fā)布題目并得到學(xué)生作答的詳細(xì)信息,管理員可以發(fā)布題目以及修改普通用戶的信息。

        (2)題庫(kù)模塊:完成題目的描述、測(cè)試數(shù)據(jù)、測(cè)試代碼的添加、修改、刪除等功能,以及對(duì)做題數(shù)據(jù)的數(shù)量、正確率等的統(tǒng)計(jì)。

        (3)測(cè)評(píng)數(shù)據(jù)模塊:OJ的核心內(nèi)容,對(duì)用戶提交的代碼進(jìn)行評(píng)測(cè)。

        (4)數(shù)據(jù)分析模塊:對(duì)正確率、錯(cuò)誤原因進(jìn)行統(tǒng)計(jì)和分析,并包括數(shù)據(jù)查重等功能。

        3 OJ系統(tǒng)的搭建

        Online Judge的實(shí)現(xiàn),能很快地運(yùn)用到現(xiàn)實(shí)的學(xué)習(xí)生活中去,有效的考核學(xué)生的真實(shí)水平,促使學(xué)生更好的學(xué)習(xí)計(jì)算機(jī)知識(shí),強(qiáng)化學(xué)生的實(shí)踐能力,給學(xué)生和老師帶來(lái)立桿見(jiàn)影的效果;極大地提高了學(xué)生和老師雙方面的效率,減輕了老師在實(shí)驗(yàn)教學(xué)管理上的負(fù)擔(dān)。因此,并發(fā)這樣一個(gè)面向程序設(shè)計(jì)語(yǔ)言初學(xué)者的Online Judge在線實(shí)些系統(tǒng),是很有實(shí)際意義的。

        3.1 OJ運(yùn)行原理

        用戶提交的代碼通過(guò)前端傳給后端Docker所部署的GCC編譯器中,并接收測(cè)試數(shù)據(jù)傳人編譯器中,將得到的數(shù)據(jù)與后端的正確數(shù)據(jù)進(jìn)行比對(duì)并返回結(jié)果;或者接收測(cè)試代碼,將隨機(jī)的測(cè)試數(shù)據(jù)分別傳人用戶提交的代碼以及測(cè)試代碼中,比對(duì)兩者是否一致并返回結(jié)果。如圖一所示,其流程大致如下:

        (1)從前端接收代碼,創(chuàng)建一個(gè)Docker鏡像,并將代碼放入進(jìn)行編譯,如果代碼有錯(cuò)誤返回錯(cuò)誤信息CompileError,編譯通過(guò)則進(jìn)行下一步。

        (2)運(yùn)行代碼,傳入測(cè)試數(shù)據(jù),得到結(jié)果,如果有使用系統(tǒng)限制的函數(shù)則返回RestrictedFunction;如果有運(yùn)行時(shí)錯(cuò)誤,則返回運(yùn)行錯(cuò)誤RuntimeEorror,運(yùn)行成功則進(jìn)入下一步。

        (3)提取運(yùn)行時(shí)系統(tǒng)的數(shù)據(jù),包括運(yùn)行時(shí)間、使用內(nèi)存大小、輸出內(nèi)容大小,如果不符合要求則分別返回TimeLimitError、MemoryLimitError、OutputLimitError,沒(méi)有問(wèn)題則進(jìn)行下一步。

        (4)將獲得的數(shù)據(jù)與正確結(jié)果相比對(duì),不相同則返回WrongAnswer,正確則返回AnswerCorrect。

        OJ主要負(fù)責(zé)對(duì)用戶代碼的結(jié)果的檢驗(yàn),并返回正確或錯(cuò)誤的信息,然而對(duì)于用戶提交代碼的安全性,是否提交了會(huì)使系統(tǒng)超時(shí)、內(nèi)存溢出等問(wèn)題的代碼時(shí),需要利用Docker的沙盒機(jī)制來(lái)保證這些代碼不會(huì)給系統(tǒng)的正常運(yùn)行造成影響。

        3.2 OJ的沙盒機(jī)制

        對(duì)于運(yùn)行在服務(wù)器上的系統(tǒng),系統(tǒng)的安全性是最重要的,不安全的系統(tǒng)對(duì)于系統(tǒng)的健全來(lái)說(shuō)是致命的。如果從前端傳入的代碼通過(guò)獲取非法的權(quán)限占用系統(tǒng)資源,破壞系統(tǒng)中存儲(chǔ)的數(shù)據(jù),結(jié)果將是毀滅性的,所以代碼必須在安全可控的環(huán)境下面運(yùn)行。

        Docker利用Namespace實(shí)現(xiàn)了6項(xiàng)隔離,Docker在安全性上也做了很多工作,大致包括下面幾個(gè)方面:

        (1)Linux內(nèi)核 Capability 能力限制

        Docker支持為容器設(shè)置Capabilities,指定開(kāi)放給容器的權(quán)限。這樣在容器中的root用戶比實(shí)際的root少很多權(quán)限。

        (2)鏡像簽名機(jī)制

        (3)Apparmor的MAC訪問(wèn)控制

        Apparmor可以將進(jìn)程的權(quán)限與進(jìn)程Capabilities能力聯(lián)系在一起,實(shí)現(xiàn)對(duì)進(jìn)程的強(qiáng)制性訪問(wèn)控制(MAC)。在Docker中,我們可以使用Apparmor來(lái)限制用戶只能執(zhí)行某些特定命令、限制容器網(wǎng)絡(luò)、文件讀寫權(quán)限等功能。

        (4)Seccomp系統(tǒng)調(diào)用過(guò)濾

        使用Seccomp可以限制進(jìn)程能夠調(diào)用的系統(tǒng)調(diào)用(system call)的范圍,Docker提供的默認(rèn)Seccomp配置文件已經(jīng)禁用了大約44個(gè)超過(guò)300+的系統(tǒng)調(diào)用,滿足大多數(shù)容器的系統(tǒng)調(diào)用訴求。

        (5)User Namespace隔離

        (6)SELinux

        4 總結(jié)

        本文所研發(fā)的教學(xué)與競(jìng)賽平臺(tái),體現(xiàn)了便攜化、智能化的生活方式是社會(huì)發(fā)展的必然趨勢(shì),迎合了當(dāng)前國(guó)家“互聯(lián)網(wǎng)+教育”的號(hào)召。面向龐大的教育機(jī)構(gòu)市場(chǎng),多種校園化平臺(tái)軟件競(jìng)爭(zhēng)激烈,高校迫切需要一個(gè)學(xué)生信息分析綜合性、一站式平臺(tái)我們力求做到人機(jī)交互友好,數(shù)據(jù)處理高效,功能全面便捷。本平臺(tái)的核心競(jìng)爭(zhēng)力在于身為大學(xué)生的我們能從學(xué)生的視角發(fā)掘問(wèn)題,緊跟潮流。平臺(tái)基于 Django 技術(shù),實(shí)現(xiàn)跨平臺(tái),多終端的新型教務(wù)系統(tǒng)。切實(shí)方便學(xué)生生活,增強(qiáng)學(xué)習(xí)氛圍,提高師生互動(dòng),豐富課余生活,促進(jìn)大學(xué)生可持續(xù)全面發(fā)展;同時(shí)有利于學(xué)校教務(wù)管理、學(xué)工管理,加強(qiáng)學(xué)生評(píng)定和數(shù)據(jù)分析信息化建設(shè),改善學(xué)風(fēng)教風(fēng),增強(qiáng)軟實(shí)力和競(jìng)爭(zhēng)力。

        參考文獻(xiàn)

        [1] 淺談Docker安全性支持

        猜你喜歡
        測(cè)試數(shù)據(jù)代碼競(jìng)賽
        2020絲綢之路數(shù)學(xué)競(jìng)賽
        測(cè)試數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        我看競(jìng)賽
        創(chuàng)新思維競(jìng)賽(3)
        基于自適應(yīng)粒子群優(yōu)化算法的測(cè)試數(shù)據(jù)擴(kuò)增方法
        空間co-location挖掘模式在學(xué)生體能測(cè)試數(shù)據(jù)中的應(yīng)用
        體育科技(2016年2期)2016-02-28 17:06:21
        狂野欧美性猛xxxx乱大交| 中文字幕亚洲乱码熟女在线| 精品国产一区二区三区av新片| 日本一区二区三区啪啪| 男女啪啪在线视频网站| 久久人妻少妇嫩草av| 韩国三级中文字幕hd| 99久久久无码国产精品试看| 色诱久久av| 国产精品涩涩涩一区二区三区免费| 亚洲一区二区精品在线看| 日本熟女精品一区二区三区| 国产黄大片在线观看画质优化| 亚洲日本va中文字幕| 亚洲丁香五月激情综合| 久99久精品免费视频热77| 日本一区二区日韩在线| 麻婆视频在线免费观看| 亚洲第一狼人天堂网亚洲av| 黑人玩弄人妻中文在线| 亚洲电影久久久久久久9999| 国产中文字幕亚洲国产| 含紧一点h边做边走动免费视频 | 国产综合在线观看| 一本久久a久久精品亚洲| 韩国女主播一区二区在线观看| 黄色三级一区二区三区| 偷拍综合在线视频二区日韩| av永久天堂一区二区三区| japanese无码中文字幕| 一亚洲一区二区中文字幕| 99久久国产免费观看精品| 男女猛烈xx00免费视频试看| 国产精品jizz观看| 亚洲视频一区二区蜜桃| 国产精品国产三级国产a| 越南女子杂交内射bbwxz| 尤物yw午夜国产精品视频| 宅男天堂亚洲一区二区三区 | 国产精品女同av在线观看| 午夜精品久久久久久久久|