国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Docker技術(shù)開(kāi)發(fā)的在線編程輔助教學(xué)平臺(tái)

2020-04-22 20:31:08金鵬
價(jià)值工程 2020年8期
關(guān)鍵詞:交互性競(jìng)賽

金鵬

摘要:近年來(lái),編程教育已經(jīng)被眾多國(guó)家重視。目前,國(guó)內(nèi)也出現(xiàn)了如OJ,POJ等在線編程測(cè)試平臺(tái),但是通過(guò)調(diào)研以及實(shí)際的應(yīng)用發(fā)現(xiàn)了一些不足的地方:交互界面簡(jiǎn)陋,部署方面困難以及客戶人群的范圍局限,因此,為了同時(shí)適應(yīng)各階段、各層次人群進(jìn)行編程學(xué)習(xí),集個(gè)人學(xué)習(xí)模塊、集體學(xué)習(xí)模塊、競(jìng)賽模塊、在線題庫(kù)同時(shí)滿足易于部署的集成閱卷系統(tǒng)等功能為一體的編程輔助教學(xué)平臺(tái)將具有廣闊的市場(chǎng)前景。本系統(tǒng)具有Eagle-OJ,中央題庫(kù),判卷集群,以及碼上網(wǎng)。在線編程輔助教學(xué)平臺(tái)具有研發(fā)成本低,技術(shù)先進(jìn),有好的交互體驗(yàn),快捷部署等優(yōu)勢(shì),本平臺(tái)將會(huì)彌補(bǔ)之前的一些國(guó)內(nèi)欠缺不足的地方,從而創(chuàng)造一個(gè)更新型更完善的在線編程教學(xué)平臺(tái)。

Abstract: In recent years, programming education has been attached importance by many countries. At present, there are online programming test platforms such as Oj and POJ in China, but through investigation and practical application, we found some deficiencies: the interface is simple, deployment is difficult and the scope of the customer is limited, in order to adapt to all stages, all levels of the population at the same time to learn programming, the programming assistant teaching platform, which integrates individual learning module, collective learning module, competition module and online test database and meets the needs of integrated marking system, will have a broad market prospect. This system has Eagle-OJ, central test bank, grading cluster, as well as code on the Internet. The online programming assistant teaching platform has the advantages of low research and development cost, advanced technology, good interactive experience, quick deployment, etc.. This platform will make up for some deficiencies in China before, thus creates a newer and more perfect on-line programming teaching platform.

關(guān)鍵詞:在線編程教學(xué)平臺(tái);競(jìng)賽;中央題庫(kù);交互性

Key words: online programming teaching platform;competition;central question bank;good interactivity

中圖分類號(hào):TP302 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文章編號(hào):1006-4311(2020)08-0209-02

0 ?引言

近年來(lái),編程教育已經(jīng)被眾多國(guó)家重視,“編程是通往未來(lái)世界的語(yǔ)言”,人工智能的發(fā)展是大勢(shì)所趨,未來(lái)所有行業(yè)都將隨著人工智能帶來(lái)升級(jí)與變革。ACM/ICPC是目前大學(xué)生競(jìng)賽中難度最高、影響力最大的頂級(jí)賽事。但是國(guó)內(nèi)相關(guān)訓(xùn)練系統(tǒng)界面設(shè)計(jì)并不友好,目標(biāo)用戶單一;系統(tǒng)的可移植性差,服務(wù)器環(huán)境配置復(fù)雜、程序安裝步驟繁瑣,這樣無(wú)疑提高了用戶使用的門檻。因此很有必要開(kāi)發(fā)以ACM競(jìng)賽培訓(xùn)為主的,集個(gè)人學(xué)習(xí)模塊、集體學(xué)習(xí)模塊、競(jìng)賽模塊、在線題庫(kù)、基于Docker的易于部署的集成閱卷系統(tǒng)等為一體的編程輔助教學(xué)平臺(tái)。

1 ?平臺(tái)概述

本系統(tǒng)所要求的軟硬件以及開(kāi)發(fā)環(huán)境大多都是我們已經(jīng)具備的,因此不需要大多的資金,除了個(gè)別必需品需要花費(fèi)。并且團(tuán)隊(duì)有較強(qiáng)的技術(shù)作為支持,能夠熟練運(yùn)用JAVA、C等編程語(yǔ)言作為技術(shù)支持,并且在多個(gè)平臺(tái)系統(tǒng)都具有相應(yīng)的開(kāi)發(fā)經(jīng)驗(yàn)。技術(shù)層面并不存在大的問(wèn)題。而且這方面的開(kāi)發(fā)的雖然不少,但是能夠全面的,在原先基礎(chǔ)上再一次升華的卻并不多。

項(xiàng)目定位:集在線測(cè)評(píng)、綜合題庫(kù)、集成閱卷于一體的優(yōu)質(zhì)在線編程輔助教學(xué)平臺(tái)。

項(xiàng)目?jī)?nèi)容:本項(xiàng)目是以ACM競(jìng)賽訓(xùn)練為切入點(diǎn)進(jìn)行設(shè)計(jì)開(kāi)發(fā),旨在提供快速便捷的編程訓(xùn)練平臺(tái)。本項(xiàng)目是服務(wù)與應(yīng)用相結(jié)合的綜合性在線編程輔助教學(xué)平臺(tái),由Eagle-OJ系統(tǒng)和碼上網(wǎng)兩個(gè)平臺(tái)構(gòu)成。

Eagle-OJ是一個(gè)基于Docker技術(shù)開(kāi)發(fā)的在線編程訓(xùn)練系統(tǒng),系統(tǒng)實(shí)現(xiàn)了做題、比賽、分組管理等功能。使用者可以基于本系統(tǒng)自行開(kāi)設(shè)比賽,組建小隊(duì),編輯題庫(kù),進(jìn)行編程訓(xùn)練。其中比賽又細(xì)分為ACM比賽和OJ比賽,這樣可以讓用戶在日常訓(xùn)練中模擬正規(guī)比賽。管理員可以查看用戶提交的源碼,查看用戶近期數(shù)據(jù),統(tǒng)計(jì)做題情況等,這樣無(wú)疑方便了對(duì)用戶的管理,施行針對(duì)性的訓(xùn)練。另外,本系統(tǒng)提供了基于Docker技術(shù)的在線閱卷系統(tǒng),可以方便快捷的對(duì)用戶的答案進(jìn)行判斷,減輕了人工閱卷的壓力。碼上網(wǎng)是一個(gè)主要面向大眾的編程學(xué)習(xí)平臺(tái),不同階段的用戶都可以在網(wǎng)站中學(xué)習(xí)編程類相關(guān)知識(shí);網(wǎng)站提供各類編程類教學(xué)視頻;提供練習(xí)和測(cè)試功能,使用戶在學(xué)習(xí)之余可以通過(guò)測(cè)試來(lái)驗(yàn)證學(xué)習(xí)成果;本網(wǎng)站還為高階學(xué)習(xí)人員提供算法學(xué)習(xí)的功能,開(kāi)放論壇和交流功能,提供用戶通過(guò)討論學(xué)習(xí)提升編程能力等等。網(wǎng)站還會(huì)不定期的舉辦編程類比賽,并把比賽成績(jī)優(yōu)秀的人推薦給相關(guān)軟件企業(yè)。另外,相關(guān)企業(yè)也可以在本網(wǎng)站上開(kāi)設(shè)比賽,以程序設(shè)計(jì)競(jìng)賽的形式來(lái)選拔適合企業(yè)的編程人才。

2 ?平臺(tái)總體設(shè)計(jì)

整個(gè)平臺(tái)主要分為五大功能模塊,分別為開(kāi)源編程教學(xué)系統(tǒng)Eagle-OJ,中央題庫(kù),判卷集群,碼上網(wǎng),系統(tǒng)部署、運(yùn)維。

2.1 Eagle-OJ

Eagle-OJ系統(tǒng)有小組功能、比賽功能、排行榜、個(gè)人界面、題庫(kù)等功能。小組功能主要用于課程學(xué)習(xí)等一些方面。每位用戶可以創(chuàng)建自己的小組并且開(kāi)展只有小組成員可以加入的比賽,這個(gè)就和日常班級(jí)相類似,比賽也可以設(shè)置小組是否開(kāi)放。比賽創(chuàng)建還可以設(shè)置這個(gè)比賽的模式。比如ACM模式,普通比賽模式等一些模式。排行榜功能真是根據(jù)本網(wǎng)站所有用戶解決題目數(shù)目的來(lái)作為排行指標(biāo)的,排行榜的前三名又會(huì)給他們一個(gè)單獨(dú)的展示區(qū)域,就如同體育競(jìng)技當(dāng)中的排行類似。題庫(kù)功能的話是作為整個(gè)網(wǎng)站的題庫(kù)中心,普通用戶在都可做題,并且結(jié)果加入到排行榜當(dāng)中。題庫(kù)又可以作為創(chuàng)建比賽的時(shí)候加入到比賽當(dāng)中,如果沒(méi)有合適的題目,用戶還可以創(chuàng)建自己的題目。在用戶個(gè)人界面,可以收到和自己相關(guān)的最近通知以及查看公告欄信息。個(gè)人設(shè)置頁(yè)面可以設(shè)置自己的資料信息,創(chuàng)建題目加入小組等功能。

2.2 中央題庫(kù)

中央題庫(kù)能夠解決用戶初次搭建完系統(tǒng)內(nèi)容相對(duì)匱乏,并提供大量高質(zhì)量的題目供用戶進(jìn)行選擇。中央題庫(kù)里面包含歷年NOIP全國(guó)聯(lián)賽普及組、藍(lán)橋杯、ACM等大型比賽題目。道題目有相應(yīng)的難度系數(shù)和知識(shí)點(diǎn)說(shuō)明,選題可以根據(jù)信息選擇自己需要的題目,然后生成題目列表文件,最后可以一鍵導(dǎo)入到Eagle-OJ系統(tǒng)中。一些高質(zhì)量題目需要支付一定的費(fèi)用購(gòu)買,用戶可以免費(fèi)查看題目?jī)?nèi)容,自己編寫代碼進(jìn)行測(cè)試,但只有付費(fèi)購(gòu)買才可以獲得此題的測(cè)試用例和標(biāo)準(zhǔn)答案。如果用戶有好的題目,可以選擇上傳并且自行定價(jià),當(dāng)有其他用戶購(gòu)買,上傳題目的人可以獲得相應(yīng)的分成。為保證題庫(kù)的質(zhì)量,項(xiàng)目組會(huì)對(duì)用戶上傳的每道題進(jìn)行審核,如發(fā)現(xiàn)題目無(wú)解,測(cè)試用例不完整、雷同等問(wèn)題,會(huì)拒絕題目的上架,由用戶重新編輯后方可進(jìn)行再次審核。

2.3 判卷集群

判卷模塊用于判斷用戶的代碼是否正確,用戶編寫完相應(yīng)的程序代碼,將代碼按照Restful標(biāo)準(zhǔn)發(fā)送到判卷模塊,我們的判卷模塊會(huì)把用戶的代碼進(jìn)行編譯運(yùn)行,然后判卷用戶的程序是否編寫正確,最后也會(huì)按照Restful標(biāo)準(zhǔn)返回判卷結(jié)果。判卷模塊基于Ubuntu進(jìn)行開(kāi)發(fā),使用Linux嚴(yán)格的權(quán)限控制,有效防止惡意代碼對(duì)系統(tǒng)的正常運(yùn)行產(chǎn)生影響。與判卷模塊的通訊統(tǒng)一參照Restful標(biāo)準(zhǔn),第三方開(kāi)發(fā)者可以輕易的將自己的系統(tǒng)與我們的判卷模塊集成。后臺(tái)接收的請(qǐng)求會(huì)通過(guò)基于Flask+Gevent+GUnicorn開(kāi)發(fā)的控制器。判卷模塊支持運(yùn)行在Docker中,這樣能大大簡(jiǎn)化環(huán)境配置并增強(qiáng)系統(tǒng)的兼容性。判卷模塊可以運(yùn)行在所有支持Docker的操作系統(tǒng)上,并會(huì)在GitHub上面進(jìn)行開(kāi)源,允許并鼓勵(lì)第三方開(kāi)發(fā)者進(jìn)行集成或改進(jìn)。程序判定結(jié)果有如下7種:

①Accepted.——通過(guò)!(AC);

②Wrong Answer.——答案錯(cuò)。(WA);

③RunTime Error.——程序運(yùn)行出錯(cuò),意外終止等。(RTE);

④Time Limit Exceeded.——超時(shí)。程序沒(méi)在規(guī)定時(shí)間內(nèi)出答案。(TLE);

⑤Presentation Error.——格式錯(cuò)。程序沒(méi)按規(guī)定的格式輸出答案。(PE);

⑥Memory Limit Exceeded.——超內(nèi)存。程序沒(méi)在規(guī)定空間內(nèi)出答案。(MLE);

⑦Compile Error.——編譯錯(cuò)。程序編譯不過(guò)。(CE)。

2.4 系統(tǒng)部署、運(yùn)維

系統(tǒng)部署一直都是最復(fù)雜最核心的一部分,因?yàn)橛布⒉僮飨到y(tǒng)的不同,會(huì)導(dǎo)致安裝的時(shí)候會(huì)出現(xiàn)各種難以預(yù)測(cè)的錯(cuò)誤。為此,我們的系統(tǒng)基于Docker開(kāi)發(fā),讓代碼編寫一次,就可以在不同環(huán)境下運(yùn)行。假如當(dāng)客戶在部署、運(yùn)維方面遇到問(wèn)題,我們會(huì)給予用戶相關(guān)的指導(dǎo),并提供相關(guān)的優(yōu)化建議,免去用戶的煩惱而專注于網(wǎng)站的本身。

該系統(tǒng)運(yùn)用到了很多的技術(shù),例如java、Vue、SpringBoot、Mysql、Docker、Python、Tomcat以及Nginx。所有系統(tǒng)最終都將部署在Docker容器里面,并且使用Docker的Swarm功能實(shí)現(xiàn)分布式。因?yàn)镈ocker是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口因此它部署速度很快,而且Docker相比KVM之類最明顯的特點(diǎn)就是啟動(dòng)快,資源占用小。

3 ?平臺(tái)的實(shí)現(xiàn)

①前期:先完善產(chǎn)品功能,推廣產(chǎn)品,逐步占領(lǐng)市場(chǎng)為主。首先本項(xiàng)目組將已研發(fā)出的產(chǎn)品——Eagle-OJ系統(tǒng)在本校與相關(guān)專業(yè)達(dá)成業(yè)務(wù)協(xié)議,進(jìn)行免費(fèi)試用在教學(xué)和比賽訓(xùn)練方面,在試用階段不斷進(jìn)行功能測(cè)試并改進(jìn)。

②中期則是如果Eagle-OJ項(xiàng)目發(fā)展良好,項(xiàng)目組會(huì)開(kāi)始著手碼上網(wǎng)和中央題庫(kù)的開(kāi)發(fā)。

③后期本項(xiàng)目若能發(fā)展良好,并且有一定的資金積累。本系統(tǒng)將涉足編程教育行業(yè),緊密結(jié)合本項(xiàng)目現(xiàn)有的平臺(tái)資源,為中小學(xué)、各類高校、培訓(xùn)機(jī)構(gòu)實(shí)現(xiàn)教學(xué)的實(shí)時(shí)互動(dòng)。將會(huì)推出移動(dòng)端,方便用戶使用碎片化的時(shí)間學(xué)習(xí)編程。

4 ?結(jié)論

本文借鑒并結(jié)合現(xiàn)有編程平臺(tái)的實(shí)際需求,設(shè)計(jì)并實(shí)現(xiàn)了基于Docker技術(shù)開(kāi)發(fā)的在線編程輔助教學(xué)平臺(tái)。系統(tǒng)具有Eagle-OJ、中央題庫(kù)、判卷集群等功能,具有研發(fā)成本低、技術(shù)先進(jìn)、有好的交互體驗(yàn)、快捷部署等優(yōu)勢(shì),本平臺(tái)將會(huì)彌補(bǔ)之前的一些國(guó)內(nèi)欠缺不足的地方,從而創(chuàng)造一個(gè)更新型更完善的在線編程教學(xué)平臺(tái)。

參考文獻(xiàn):

[1]李順.基于Docker的輕量化容器云平臺(tái)設(shè)計(jì)與實(shí)踐[J].金融科技時(shí)代,2019,10:38-40.

[2]伍陽(yáng).基于Docker的虛擬化技術(shù)研究[J].信息技術(shù),2016,01:121-123.

[3]曹郁.基于Docker容器的微服務(wù)研究與實(shí)現(xiàn)[J].科學(xué)技術(shù)創(chuàng)新,2019,28:97-98.

猜你喜歡
交互性競(jìng)賽
競(jìng)賽書目推薦
競(jìng)賽書目推薦
2020絲綢之路數(shù)學(xué)競(jìng)賽
我看競(jìng)賽
創(chuàng)新思維競(jìng)賽(3)
信息化技術(shù)與城市公園的融合形態(tài)研究
科普網(wǎng)站交互性對(duì)科普傳播影響研究
“互動(dòng)舞蹈”:中國(guó)傳統(tǒng)舞蹈與新媒體技術(shù)的跨界融合
演藝科技(2016年4期)2016-11-16 08:20:21
新媒體語(yǔ)境下藝術(shù)傳播的發(fā)展及城市運(yùn)用探究
數(shù)字化城市公共藝術(shù)交互性內(nèi)涵研究
北辰区| 于田县| 阳新县| 景谷| 万盛区| 铜梁县| 抚宁县| 聂荣县| 博客| 醴陵市| 扎赉特旗| 东兰县| 隆子县| 正安县| 湟中县| 万安县| 武鸣县| 茂名市| 彭山县| 镇原县| 忻州市| 托克逊县| 剑川县| 光山县| 抚顺县| 房产| 儋州市| 宜城市| 敦煌市| 新邵县| 榆林市| 通州市| 庆城县| 公安县| 新龙县| 吉林省| 从江县| 定边县| 房产| 礼泉县| 镇平县|