?

基于新工科背景下的編程課程考核網站的設計與實現

2019-03-18 11:52黃建昌孫娜劉振超
課程教育研究 2019年1期
關鍵詞:操作系統課程改革數據庫

黃建昌 孫娜 劉振超

【摘要】針對當前傳統計算機專業的教學現狀,提出了新工科背景下傳統計算機編程課程面臨的一些問題。同時,在大數據、人工智能等不斷出現的大環境下,為了提高編程課程考核的合理性、公平性,本文基于vue.js和Django框架,構建了一個在線評測系統。

【關鍵詞】 課程改革 在線評測 操作系統 數據庫

【課題】課題名稱1:河北農業大學第十批教研項目:基于《C語言程序設計》課程的在線考試系統設計(課題編號:2018YB04);課題名稱2:河北農業大學2018年大學生創新創業訓練計劃項目:針對編程課程的在線考試系統設計(項目編號:2018026)。

【中圖分類號】G64 【文獻標識碼】A 【文章編號】2095-3089(2019)01-0253-01

引言

隨著新工科概念的提出,越來越多的行業與計算機專業密不可分。針對新工科人才能力培養需求,大學生計算機編程能力是新工科人才能力組成的重要部分。其中,《C語言程序設計》作為大多數高效的計算機專業基礎課則顯得尤為重要。在傳統教學中,編程課程考核多以紙質試卷進行,不能非??茖W合理的評判出一個學生的編程能力高低。 針對這些問題,本文設計了一個在線評測系統(Online Judge,簡稱“OJ”)。OJ系統能夠編譯和執行代碼,并使用預設數據測試這些程序,從而分析出用戶提交代碼的正確性。只要有一臺計算機或一部手機,用戶隨時隨地都可以登陸賬號去進行編程練習并由系統進行評測,簡化了程序的評測過程,提高了學生的學習效率,減輕了教師的教學負擔。

1.系統概述

OJ是一個在線測評系統。用戶注冊時可以選擇身份(學生、老師或管理員),使用手機號(或郵箱)、學號及身份證號完成注冊。用戶登錄后,可以在線進行編程練習,系統會對用戶提交的代碼進行編譯,生成可執行文件并執行。代碼通常在受限制的環境中運行,包括時間限制,內存限制等。代碼的輸出會被OJ系統捕獲,然后通過與預先設計的測試數據比較,對程序源代碼的正確性進行驗證。這樣就達到了在線測評的目的,實現了教育的信息化。該系統整體可以分為web部分和judge部分,web部分又分為前端和后臺,前端網頁以JS作為開發語言,使用的是流行的JS框架vue.js,輕量化后端以python作為實現語言,使用的框架是Django。

2.系統設計

2.1操作系統的選擇

從原理上來看,操作系統選擇Windows或Linux均可。但兩者相較之下,Linux系統更加安全穩定,服務器不容易崩潰,而且Linux非常適合阻止或防止可疑惡意軟件進入并影響整個系統的性能。此外,往長遠打算,如果將來把該OJ系統用于正規的比賽,使用Windows系統需要商業授權,使用Linux系統更加經濟。綜合以上因素,本文選擇了Linux操作系統。

2.2docker部署

docker是一個開源的應用程序容器引擎,允許開發人員將其應用程序和依賴項打包到便攜式容器中。系統的web部分和judge部分,都是以一個docker容器運行。在web部分,系統會將網站封裝成 docker鏡像,然后將其下載到服務器,使其可以獨立運行。此外,系統利用Postgresql和Redis構建了后臺數據庫,這兩個數據庫也分別以一個docker容器運行,也就是說,整個系統一共有4個docker容器在運行。這四部分獨立運行,互不影響。

3.運行方式

系統將用戶提交的源代碼進行編譯,生成“.exe”文件并執行。其輸出結果會被OJ系統捕獲并保存,然后將輸出結果與正確結果比較。如果編譯正確,輸出和正確答案一致,且程序運行沒有超出限定的時間和限定的內存,則認為用戶提交的源代碼正確,即Accepted(AC)。否則報出相應錯誤:如答案錯誤、運行超時、內存超限等,并向用戶反饋程序的使用內存、運行時間和其他信息。具體的運行方式如圖2所示。

4.系統需求

系統用戶角色有三種:學生、教師和管理員。

(1)學生用戶注冊時選擇學生身份,使用手機號(或郵箱)、學號和身份證號進行注冊,每個學號只能注冊一個賬號。注冊后可以登錄,登錄系統后可以進行練習,在線提交代碼,提交后經過系統測評會給出結果。學生進入測評狀態頁面,即可查看做題情況。

(2)在教師用戶注冊并登錄后,他可以對問題庫進行更改,創建新問題或修改和刪除問題,并檢查每個問題的正確率。

(3)管理員可以對后臺數據庫進行管理。

5.結語

在新工科的背景下,學習各種計算機編程語言已經受到了更多人的重視。為了加強學生之間的學習交流,簡化程序的評估過程,OJ系統順應時代潮流而生。這對開展計算機相關教育,增強學生的計算機專業素養起著至關重要的作用,大大提高學生應用程序設計解決實際問題的能力。

參考文獻:

[1]李偉光,陳希.GOJ系統的研究與實現. 科技創新導報, 2015(28): 第46-47+50頁.

[2]梁嵩,王建新.在線程序語言評測系統的設計與實現. 計算技術與自動化,2010(02): 第128-132頁.

[3]楊婧.基于容器技術的廣播電視PaaS平臺建設. 廣播與電視技術, 2017(07):第46-48頁.

[4]蔡云龍, 基于Docker的私有云系統的設計.電子產品世界, 2016(04): 第46-49+56頁.

[5]梁嵩.基于Web的程序評測系統的設計與實現,中南大學,2010.

[6]熊茜.基于在線判題系統的C語言實驗教學改革. 重慶科技學院學報(社會科學版), 2015(10)

[7]何嘉,杜斌.探討JAVA對SQL數據庫訪問的一種新嘗試. 成都信息工程學院學報, 2002(01)

猜你喜歡
操作系統課程改革數據庫
“雙創”形勢下高職財務管理課程改革探索
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合