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

        ?

        在線評測教學(xué)輔助系統(tǒng)設(shè)計

        2017-11-20 11:07:19肖紅玉陳紅順
        計算機技術(shù)與發(fā)展 2017年11期
        關(guān)鍵詞:源代碼評測程序設(shè)計

        肖紅玉,賀 輝,陳紅順

        (北京師范大學(xué)珠海分校 信息技術(shù)學(xué)院,廣東 珠海 519087)

        在線評測教學(xué)輔助系統(tǒng)設(shè)計

        肖紅玉,賀 輝,陳紅順

        (北京師范大學(xué)珠海分校 信息技術(shù)學(xué)院,廣東 珠海 519087)

        為滿足程序設(shè)計類課程實驗教學(xué)及程序設(shè)計競賽的需要,對國內(nèi)外現(xiàn)有的在線評測系統(tǒng)進行研究。以ACM/ICPC競賽模式為藍本,采用Python、Mysql、Django 1.8、HTML5、jQuery 1.11、Bootstrap 3.5、Nginx 1.8等技術(shù),設(shè)計并實現(xiàn)了基于RabbitMQ高級消息隊列和多級安全沙盒的在線評測輔助教學(xué)系統(tǒng)。基于Celery并行分布式框架,解決了系統(tǒng)大規(guī)模評測的并發(fā)性需求,可根據(jù)評測負載動態(tài)調(diào)整評測節(jié)點個數(shù)。系統(tǒng)具有高容錯性,個別評測節(jié)點的意外故障不影響系統(tǒng)整體運行。通過Linux用戶權(quán)限機制、全虛擬化技術(shù)、Linux Container (LTX)和setUID實現(xiàn)的多級安全沙盒,保證了評測環(huán)境的公平性和安全性。系統(tǒng)主要為日常實驗教學(xué)代碼評測而設(shè)計,共有4個角色,與面向競賽的評測系統(tǒng)相比,增加了教學(xué)管理模塊、作業(yè)管理模塊、統(tǒng)計分析管理模塊。系統(tǒng)已經(jīng)成功應(yīng)用在C/C++/Java/數(shù)據(jù)結(jié)構(gòu)等課程的日常實驗教學(xué)中。運行結(jié)果表明,該輔助教學(xué)系統(tǒng)對促進教學(xué)質(zhì)量、提升學(xué)生學(xué)習(xí)興趣非常有幫助。

        在線評測;實驗教學(xué);教學(xué)輔助系統(tǒng);沙盒

        0 引 言

        C/C++/Java/數(shù)據(jù)結(jié)構(gòu)等程序設(shè)計課程是高校理工類專業(yè)的核心課程。課程的培養(yǎng)目標是培養(yǎng)學(xué)生掌握程序設(shè)計的思想和方法,掌握基本的程序設(shè)計過程和技巧,初步具備分析問題和利用計算機求解問題的能力[1]。這類課程對實踐開發(fā)能力、邏輯性思維要求比較高[2]。提高學(xué)生實踐開發(fā)能力最有效的方法就是重視實驗教學(xué),督促學(xué)生在課堂內(nèi)外編寫大量代碼。在線判題系統(tǒng)可以實時評判學(xué)生提交的源代碼,不僅大大減輕了教師的負擔,對提高學(xué)生學(xué)習(xí)熱情也很有幫助[3]。ACM國際大學(xué)生程序設(shè)計競賽(ACM/ICPC)是目前全球公認水平最高影響最大的編程賽事,許多高校開發(fā)了基于ACM/ICPC的程序設(shè)計在線評測系統(tǒng)[4-9]。例如,孟學(xué)多等[3]基于多核平臺實現(xiàn)了在線判題系統(tǒng);蔣輝等[10]從滿足學(xué)生實踐的角度設(shè)計了在線評測系統(tǒng);莊奇東等[11]從頁面和數(shù)據(jù)庫緩存、服務(wù)器架構(gòu)等方面討論了在線判題系統(tǒng)的優(yōu)化;黃洪波等[12]討論了大規(guī)模程序評判系統(tǒng)的設(shè)計與實現(xiàn)。但這些系統(tǒng)主要為ACM比賽服務(wù),不適合直接用于課程實驗教學(xué)。也有些高校以ACM/ICPC Online Judge (OJ)系統(tǒng)為藍本設(shè)計了在線評測教學(xué)輔助系統(tǒng)[13]。

        文中對現(xiàn)有的在線判題系統(tǒng)進行了研究分析,綜合各系統(tǒng)的優(yōu)缺點,結(jié)合我校程序設(shè)計類課程實際教學(xué)需要,設(shè)計了一個面向?qū)嶒灲虒W(xué)兼顧競賽的在線評測教學(xué)輔助系統(tǒng)。與面向比賽的OJ系統(tǒng)相比,教學(xué)輔助系統(tǒng)增加了課程管理、作業(yè)管理子系統(tǒng)和教學(xué)中心。此外,設(shè)計了4級沙箱安全機制保證系統(tǒng)的安全,基于RabbitMQ和Celery設(shè)計了生產(chǎn)者-消費者模型的高效并發(fā)機制。

        1 系統(tǒng)總體設(shè)計目標

        基于Linux/Windows、Python、MySQL、Django 1.8、Nginx 1.8、HTML5+jQuery 1.11+Bootstrap 3.5技術(shù),以ACM/ICPC競賽模式為藍本,設(shè)計并實現(xiàn)了在線評測教學(xué)輔助系統(tǒng)。系統(tǒng)可對用戶提交的C/C++/Java源代碼進行編譯、運行、實時評測打分并給出明確的評判結(jié)果,為老師提供了課程管理、排課管理、題庫管理、作業(yè)管理、助教管理、教學(xué)資源管理等功能,是日常教學(xué)、考試、競賽的一體化平臺。學(xué)生借助該平臺可以完成日常課程作業(yè)、查看用戶排名、站內(nèi)檢索、下載教學(xué)資源等。

        2 系統(tǒng)總體架構(gòu)

        系統(tǒng)采用多層分層架構(gòu),分為表現(xiàn)層、業(yè)務(wù)邏輯層、評測模塊、數(shù)據(jù)訪問層。層間關(guān)系如圖1所示。

        圖1 系統(tǒng)體系結(jié)構(gòu)

        表現(xiàn)層:接收用戶提交的數(shù)據(jù),并以圖表的形式向用戶展示請求的數(shù)據(jù),主要用于實現(xiàn)與用戶的交互。

        業(yè)務(wù)邏輯層:包含應(yīng)用于業(yè)務(wù)對象的規(guī)則,系統(tǒng)的業(yè)務(wù)規(guī)則在這部分編寫,主要完成以下功能:完成系統(tǒng)業(yè)務(wù)規(guī)則和邏輯的實現(xiàn),從表現(xiàn)層接受用戶請求,根據(jù)業(yè)務(wù)規(guī)則處理請求,通過數(shù)據(jù)訪問層完成與數(shù)據(jù)庫的交互任務(wù),將處理結(jié)果返回給表現(xiàn)層。

        數(shù)據(jù)訪問層:主要完成與數(shù)據(jù)庫的交互即CRUD(Create、Retrieve、Update、Delete)操作。數(shù)據(jù)訪問層為業(yè)務(wù)邏輯層提供服務(wù),根據(jù)業(yè)務(wù)邏輯層的要求從數(shù)據(jù)庫中提取數(shù)據(jù)或者修改數(shù)據(jù)。

        評測模塊:對學(xué)生提交的程序代碼進行編譯、運行。如果源代碼在編譯過程出現(xiàn)錯誤,直接返回CE(Compile Error),結(jié)束判題。編譯成功,則讀取預(yù)定的輸入數(shù)據(jù)并運行程序,獲取程序運行時間、內(nèi)存和CPU使用情況,如果發(fā)現(xiàn)這些數(shù)據(jù)超出題目的設(shè)定值,則結(jié)束判題,并給出對應(yīng)的提示。如果程序順利執(zhí)行,則把輸出重定向到臨時的輸出文件中,并和預(yù)先給定的標準輸出進行對比。兩個文件的內(nèi)容一模一樣則判定學(xué)生提交的代碼是正確的,并返回Accept;否則返回WA(Wrong Answer)。評測過程如圖2所示。

        圖2 代碼評測流程

        3 功能設(shè)計

        系統(tǒng)共有管理員、老師、學(xué)生、助教4種角色,不同角色擁有不同的操作權(quán)限,系統(tǒng)功能結(jié)構(gòu)框圖如圖3所示。

        圖3 系統(tǒng)功能框圖

        管理員:系統(tǒng)管理和權(quán)限管理子模塊是管理員獨享的子模塊,系統(tǒng)管理子模塊的功能包括:設(shè)置系統(tǒng)判題機是否啟用、網(wǎng)站名稱等初始參數(shù)設(shè)置;用戶管理;網(wǎng)站公告管理。權(quán)限管理子模塊對各用戶的使用權(quán)限進行設(shè)置和管理。

        教師:教師是使用系統(tǒng)的主體,是系統(tǒng)使用的引導(dǎo)者和督促者,擁有除系統(tǒng)管理子模塊之外的其他所有功能子模塊。

        (1)題目管理子模塊:該子模塊的功能主要有:題目分類管理,目前系統(tǒng)設(shè)置了4級分類;題目的CRUD管理,增加題目時需要輸入題目標題、題目描述、輸入輸出描述、樣例輸入輸出、時間和內(nèi)存限制、題目提示和參考程序,其中時間限制、內(nèi)存限制可以采用默認值;可以設(shè)置是否隱藏題目,被隱藏的題目只對老師可見;本人發(fā)布的題目只有自己可以修改、刪除,其他老師只能查看、布置作業(yè)時選用;每道題都可以查看評測歷史。

        (2)測試數(shù)據(jù)管理子模塊:該模塊主要完成測試輸入輸出數(shù)據(jù)的CRUD操作。為了提高系統(tǒng)的易用性,還設(shè)計了自動生成測試輸出數(shù)據(jù)的功能。每組測試數(shù)據(jù)可以靈活地設(shè)置分值以及是否啟用。

        (3)教學(xué)管理子模塊:教學(xué)中心包括課程管理(創(chuàng)建、編輯、刪除課程)、課程通知(發(fā)布、修改、刪除課程通知)、教學(xué)資料(上傳、刪除教學(xué)資料)、排課管理(設(shè)定上課的起止教學(xué)周、上課的具體時間、生成選課碼)、學(xué)生管理(批量導(dǎo)入上課學(xué)生名單、添加單個或多個、批量設(shè)定學(xué)生上課時間、學(xué)生調(diào)課管理)、助教管理(添加、修改、刪除助教)。

        (4)作業(yè)管理子模塊:發(fā)布作業(yè)、修改作業(yè)、批改作業(yè)、刪除作業(yè)。發(fā)布作業(yè)時首先輸入作業(yè)基本信息(作業(yè)名稱、最高成績、備注、設(shè)置評測語言),接下來從題庫中選擇題目添加到作業(yè)中,設(shè)置每道題的分值以及是否必做,設(shè)置作業(yè)的訪問權(quán)限,人工批改作業(yè)(可批量修改),作業(yè)代碼打包下載。

        (5)統(tǒng)計分析子模塊:作業(yè)統(tǒng)計分析、個人刷題情況統(tǒng)計分析、全站排行榜等。

        學(xué)生:學(xué)生是使用系統(tǒng)的另一大主體,學(xué)生的主要功能是提交代碼以及各種查看功能,包括查看評測結(jié)果、題目詳情、課程公告、網(wǎng)站公告、教學(xué)資料、作業(yè)、排行榜、統(tǒng)計分析結(jié)果等。

        4 數(shù)據(jù)庫設(shè)計

        采用MySQL數(shù)據(jù)庫,系統(tǒng)運行過程中產(chǎn)生的所有數(shù)據(jù)都需要持久化保存到數(shù)據(jù)庫中。根據(jù)系統(tǒng)功能需要,共設(shè)計了39張表。考慮到文章篇幅,只列出了作業(yè)管理和教學(xué)管理2個子模塊的相關(guān)表,各表含義如表1所示。

        表1 數(shù)據(jù)庫設(shè)計

        5 安全設(shè)計

        提交的程序是用戶編寫的,可能有危害系統(tǒng)安全的行為,常見的惡意行為有[12]:

        (1)使用非法指令停止系統(tǒng),如在提交的代碼中嵌入shutdown等指令;

        (2)試圖刪除系統(tǒng)關(guān)鍵文件;

        (3)大量占用硬盤資源,在代碼中反復(fù)執(zhí)行寫文件操作,試圖消耗掉服務(wù)器的硬盤空間;

        (4)可能耗盡服務(wù)器CPU資源的死循環(huán);

        (5)申請大量內(nèi)存或線程;

        (6)故意出錯,嘗試暴露檢測代碼。

        以上惡意行為不一定是故意的人為攻擊,可能是用戶不成熟的編程水平造成的。作為輔助教學(xué)系統(tǒng),用戶大部分是大一剛接觸編程的學(xué)生,死循環(huán)是很常見的錯誤之一,對此在判題機內(nèi)部對運行時間和內(nèi)存占用會進行判斷,如果超過了題目的預(yù)設(shè)值,則啟動進程將此評測任務(wù)kill并釋放其占用的資源。

        對于資源濫用之外的不安全行為,提出一種多級安全Sandbox(沙盒)的權(quán)限控制機制。Sandbox在計算機領(lǐng)域主要指一個嚴格受控的環(huán)境,程序在該環(huán)境運行時的狀態(tài)、所使用或訪問的資源都受到嚴格的記錄和控制。Sandbox根據(jù)指令對全系統(tǒng)進行模擬,對程序的訪問資源、執(zhí)行環(huán)境按照規(guī)則賦予一定的訪問權(quán)限。程序只能在Sandbox里面進行相關(guān)操作,限制了惡意程序的危害,每個程序在自己受保護的Sandbox之中運行,不會影響到其他程序。同樣,這些程序的運行也不會影響操作系統(tǒng)的正常運行[12,14]。

        文中提出的多級安全Sandbox機制共分4層,分別是setUID Sandbox、Linux Container容器(LTX)、全虛擬化虛擬機和操作系統(tǒng)。為了保證服務(wù)器的安全,評測機不是直接運行在操作系統(tǒng)之上,而是運行架設(shè)在操作系統(tǒng)之上的全虛擬化層。一方面用戶提交的shutdown、刪除文件等非法操作不會影響底層真實系統(tǒng)的正常運行;另一方面,全虛擬化與物理硬件和服務(wù)器操作系統(tǒng)隔離,為評測機提供了完整的運行環(huán)境,也便于虛擬機的無縫遷移和部署。全虛擬化帶來安全保障的同時帶來了對服務(wù)器硬件結(jié)構(gòu)和運行性能的高要求,鑒于評測機需要的系統(tǒng)資源不多,在生產(chǎn)環(huán)境中將服務(wù)器的計算資源劃分給多個評測機實例。出于防止相互干擾、易于部署等因素的考慮,各評測機之間需要互相隔離,在考察了相關(guān)文獻后,使用LXC技術(shù)實現(xiàn)各評測機之間的隔離。LXC是操作系統(tǒng)級別的輕量級虛擬化手段[15],提供了在單一可控主機節(jié)點上支持多個相互隔離的服務(wù)器容器同時執(zhí)行機制。LXC提供了一個擁有自己進程的和網(wǎng)絡(luò)空間的虛擬環(huán)境,與傳統(tǒng)的硬件抽象層次的虛擬化技術(shù)相比,具有更小的虛擬化開銷、快速部署、不用單獨為內(nèi)核打補丁等優(yōu)勢。評測機運行在各自的LXC環(huán)境中,相互獨立、互不干擾。

        用戶提交的源代碼可能對服務(wù)器造成攻擊,所以編譯代碼不能跟評測機放在同一個運行環(huán)境,以免源代碼的缺陷影響評測機的工作。為了保證評判結(jié)果的公正和客觀,所有源代碼要保證運行環(huán)境和策略完全一致,所以在每個源代碼被評測前,評測機需要為它準備Sandbox運行環(huán)境,并且該環(huán)境是可重入的。全虛擬化和操作系統(tǒng)級虛擬化的初始成本較高,考慮到能耗比和實際運行的需求,設(shè)計了基于Linux的setUID Sandbox。在Linux中每個進程都會有uid,不同uid的進程之間相互隔離,各自都有自己獨立的權(quán)限,互不干擾。對于不可信的程序,在啟動該程序時可以為其分配一個隨機uid?;谏鲜鲈?,文中將被源代碼降權(quán)為隨機用戶,從而實現(xiàn)了源代碼與其他進程的相互隔離。

        6 并發(fā)性設(shè)計

        評測機編譯和運行用戶提交的源代碼需要創(chuàng)建和銷毀子進程,這個過程需要花費一定的時間。為了評判結(jié)果的公平,1個評測機1次只執(zhí)行1個評測任務(wù),并使用單個邏輯處理器,為了加速系統(tǒng)的響應(yīng)時間、提高系統(tǒng)的并發(fā)性,采用RabbitMQ-Celery設(shè)計了基于生產(chǎn)者-消費者模型的并發(fā)機制,以滿足大規(guī)模教學(xué)評測的吞吐量需求。

        RabbitMQ是基于AMQP(Advanced Message Queuing Protocol,高級消息隊列協(xié)議)的開源消息隊列系統(tǒng)。RabbitMQ可以根據(jù)消費者對消息的處理情況靈活調(diào)整消費者權(quán)重,將消息優(yōu)先分配給處理時間短的消費者,從而實現(xiàn)系統(tǒng)的負載均衡。Celery是基于Python開發(fā)的分布式任務(wù)隊列,支持使用任務(wù)隊列的方式在分布的機器/進程/線程上執(zhí)行任務(wù)調(diào)度,總體架構(gòu)包括4部分:任務(wù)生產(chǎn)者、任務(wù)代理、任務(wù)消費者(評測機)和任務(wù)執(zhí)行結(jié)果存儲。在文中,生產(chǎn)者是與用戶交互的網(wǎng)頁前端,消費者是評測機,任務(wù)代理由RabbitMQ負責。用戶提交的源程序封裝成RabbitMQ消息,在封裝時附上相關(guān)的消息頭,如使用的編程語言、評測任務(wù)類型等。RabbitMQ在分配消息時根據(jù)已聲明的任務(wù)調(diào)度器投遞給對應(yīng)的評測機,所以,不同的評測機可支持不同的編程語言或者評測任務(wù)。從而,在實際評測時可根據(jù)系統(tǒng)具體的負載情況,動態(tài)地增減對應(yīng)編程語言或評測任務(wù)的評測機,適應(yīng)系統(tǒng)用戶規(guī)模的變化。另外,Celery支持分布式部署和橫向擴展,可以在多個節(jié)點增加評測機的數(shù)量來增加系統(tǒng)的高可用性和并發(fā)性。

        7 在日常教學(xué)中的應(yīng)用

        平臺目前已是我院程序設(shè)計類課程(C/C++/Java/數(shù)據(jù)結(jié)構(gòu))日常實驗教學(xué)的輔助平臺,平臺訪問地址為https://oj.bnuz.edu.cn/,已建設(shè)實驗題庫5個:C程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、Java程序設(shè)計、C++程序設(shè)計、ACM日常訓(xùn)練。圖4是某題(題號是1275)的評測統(tǒng)計情況截圖。目前,系統(tǒng)平均在線活躍用戶數(shù)約2 000,已成功完成評測任務(wù)幾十萬次,這些數(shù)字還將隨著系統(tǒng)的持續(xù)運行不斷增長。

        圖4 實際應(yīng)用部分截圖

        8 結(jié)束語

        以ACM/ICPC在線評測系統(tǒng)為藍本,設(shè)計了程序設(shè)計實驗教學(xué)在線評測輔助系統(tǒng)。系統(tǒng)對學(xué)生提交的程序源代碼進行實時評測,具有人工評判所無法比擬的優(yōu)點。

        系統(tǒng)有別于傳統(tǒng)意義上面向比賽的OJ系統(tǒng),擁有更適合課程教學(xué)的教學(xué)中心和作業(yè)管理子系統(tǒng),對程序設(shè)計類課程如C/C++/Java/數(shù)據(jù)結(jié)構(gòu)等的實驗教學(xué)起到了很好的輔助作用,有效地提升了教學(xué)質(zhì)量。文中設(shè)計的基于setUID、LXC、全虛擬化、Linux操作系統(tǒng)權(quán)限機制的多級沙箱模型,不但可以隔離非受信的源代碼,而且降低了維護成本,兼顧了系統(tǒng)運行效率。為了適應(yīng)大規(guī)模并發(fā)評測的需求,設(shè)計了基于RabbitMQ-Celery的生產(chǎn)者-消費者并發(fā)機制,在實際評測時系統(tǒng)可自動調(diào)整評測機的數(shù)量以適應(yīng)不同規(guī)模的教學(xué)需求。系統(tǒng)已成為我院程序設(shè)計課程輔助教學(xué)的有利工具,對提高教學(xué)質(zhì)量、提升學(xué)生學(xué)習(xí)興趣很有幫助。

        [1] 何欽銘,顏 暉,蘇小紅,等.“程序設(shè)計基礎(chǔ)”課程教學(xué)實施方案[J].中國大學(xué)教學(xué),2010(5):62-65.

        [2] 葛文庚,藺 莉.程序設(shè)計基礎(chǔ)課程教學(xué)模式研究與設(shè)計[J].電子設(shè)計工程,2012,20(4):44-46.

        [3] 孟學(xué)多,俞雪永,顏 暉.基于多核的在線判題系統(tǒng)的設(shè)計與研究[J].計算機時代,2011(7):7-9.

        [4] 韓建平,劉春英,胡維華.“課內(nèi)外貫穿,競賽教學(xué)融合”的程序設(shè)計教學(xué)模式[J].實驗室研究與探索,2014,33(6):169-171.

        [5] 劉 楠,孫國道,田賢忠.ACM在線評判系統(tǒng)設(shè)計與實現(xiàn)[J].計算機時代,2012(2):34-35.

        [6] 謝 迪,李文新,郭 煒.“百練”:一個程序設(shè)計技能訓(xùn)練與水平測試平臺[J].合肥工業(yè)大學(xué)學(xué)報:社會科學(xué)版,2008,22(4):172-176.

        [7] 張浩斌.基于開放式云平臺的開源在線評測系統(tǒng)設(shè)計與實現(xiàn)[J].計算機科學(xué),2012,39(11A):339-343.

        [8] 曾棕根.源程序在線評測系統(tǒng)技術(shù)改進[J].計算機工程與應(yīng)用,2011,47(4):68-71.

        [9] 車明洙,紀洪波.一種基于ACM程序設(shè)計競賽在線評測系統(tǒng)解決方案[J].微型機與應(yīng)用,2010(4):11-13.

        [10] 蔣 輝,汪大菊.在線評測系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2012(2):111-115.

        [11] 莊奇東,王鍵聞,張 楠,等.Online Judge系統(tǒng)的優(yōu)化[J].計算機系統(tǒng)應(yīng)用,2011,20(8):115-121.

        [12] 黃洪波,宋鴻陟,彭紅星,等.大規(guī)模程序評判系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2016,37(3):825-831.

        [13] 韓君澤,鐘 美,劉東升.程序設(shè)計在線評測輔助教學(xué)系統(tǒng)的設(shè)計與實現(xiàn)[J].內(nèi)蒙古師范大學(xué)學(xué)報:自然科學(xué)漢文版,2010,39(5):473-476.

        [14] 陳丹偉,唐 平,周書桃.基于沙盒技術(shù)的惡意程序檢測模型[J].計算機科學(xué),2012,39(6A):12-14.

        [15] 吳佳杰.基于LXC的Android系統(tǒng)虛擬化關(guān)鍵技術(shù)設(shè)計與實現(xiàn)[D].杭州:浙江大學(xué),2014.

        DesignofOnlineJudgeTeachingAssistantSystem

        XIAO Hong-yu,HE Hui,CHEN Hong-shun

        (School of Information Technology,Beijing Normal Univerity,Zhuhai,Zhuhai 519087,China)

        To meet the requirements of experimental teaching of programming courses as well as programming contest,the existing online judge teaching system at home and abroad are researched.On the basis of ACM/ICPC competition,an online judge assistant system is designed and implemented in accordance with the RabbitMQ advanced message queue and multi-level safe sandbox by use of Python,Mysql,Django 1.8,HTML5,jQuery 1.11,Bootstrap 3.5 and Nginx 1.8.The needs of concurrency in large-scale judge for system are satisfied based on Celery and the number of judging nodes is adjusted dynamically according to system load.The accidental failures of some nodes have no impact on system operation due to its high fault tolerance.The fairness and security in judging environment is guaranteed by multi-level safe sandbox realized by user permission mechanism of Linux,full virtualization,Linux Container and setUID.The system is mainly designed for judging code in experiment teaching,with four roles,and in comparison with judging system to competition,adds the three modules of teaching management,schoolwork management and statistic analysis.It has been successfully applied in daily experiment teaching like C,C++,Java and data structure.The operation shows that it is very helpful to promoting teaching quality and enhancing students’ learning interest.

        online judge;experiment teaching;teaching assistant system;sandbox

        2016-12-07

        2017-04-13 < class="emphasis_bold">網(wǎng)絡(luò)出版時間

        時間:2017-08-01

        廣東省自然科學(xué)基金-博士啟動(2014A030310415);廣東省教育研究課題(GDJY-2015-C-b048)

        肖紅玉(1976-),女,博士,副教授,研究方向為分布式水文系統(tǒng)、軟件工程。

        http://kns.cnki.net/kcms/detail/61.1450.TP.20170801.1557.074.html

        TP302

        A

        1673-629X(2017)11-0141-05

        10.3969/j.issn.1673-629X.2017.11.031

        猜你喜歡
        源代碼評測程序設(shè)計
        人工智能下復(fù)雜軟件源代碼缺陷精準校正
        計算機仿真(2023年8期)2023-09-20 11:23:42
        基于TXL的源代碼插樁技術(shù)研究
        次時代主機微軟XSX全方位評測(下)
        次時代主機微軟XSX全方位評測(上)
        基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
        計算機教育(2020年5期)2020-07-24 08:52:56
        從細節(jié)入手,談PLC程序設(shè)計技巧
        電子制作(2019年9期)2019-05-30 09:42:04
        攻坡新利器,TOKEN VENTOUS評測
        軟件源代碼非公知性司法鑒定方法探析
        Canyon Ultimate CF SLX 8.0 DI2評測
        中國自行車(2017年1期)2017-04-16 02:54:06
        高職高專院校C語言程序設(shè)計教學(xué)改革探索
        男女做羞羞事的视频网站| 国产黄色av一区二区三区| 日韩av在线不卡一区二区三区| 日韩精品人妻久久久一二三| 一本大道综合久久丝袜精品| 欧美日韩国产一区二区三区地区| 少妇私密会所按摩到高潮呻吟| 美腿丝袜在线一区二区| 日本一区二区午夜视频| 日日爽日日操| 婷婷成人基地| 亚洲人成77777在线播放网站 | 亚洲一区二区三区ay| 国产精品久久久久久麻豆一区| 青青草国产精品一区二区| 蜜桃传媒网站在线观看| 国产欧美激情一区二区三区| 亚洲AV成人无码久久精品老人| 国产一区二区三区四区五区加勒比| 末成年人av一区二区| 日韩av一区二区蜜桃| 亚洲精品日本久久久中文字幕| 91天堂素人精品系列全集亚洲| 亚洲av无码第一区二区三区| 青春草在线视频免费观看| 极品少妇xxxx精品少妇偷拍| 日本视频在线观看一区二区| 亚洲女同av一区二区在线观看| 国产亚洲欧美成人久久片| 18分钟处破好疼哭视频在线观看| 日本人妻免费在线播放| 亚洲av男人的天堂在线| 人妻熟女中文字幕在线视频| 26uuu欧美日本在线播放| 女女女女bbbbbb毛片在线| 国产美女精品一区二区三区| 无码人妻丰满熟妇啪啪网不卡 | 朝鲜女子内射杂交bbw| 中文字幕乱偷无码av先锋蜜桃 | 国产一区二区三区视频大全| 欧美黑人又粗又大久久久|