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

?

基于學習通和在線判題系統的程序設計課程考核系統研究

2024-12-31 00:00:00邱義郭一晶陳南南陳俊仁趙東鋒
現代信息科技 2024年8期
關鍵詞:學習通數據分析程序設計

摘 要:程序設計課程是大部分工科專業(yè)的基礎課程,對后續(xù)專業(yè)課程學習非常重要。為了提高課程的教學效果,結合學習通和在線判題系統對課程內容、實踐環(huán)節(jié)等進行研究與探索,根據學校教學特點設計了一款在線判題系統。該系統基于ThinkPHP框架搭建,使用目前流行的B/S架構,最終以網頁形式提供給教師與學生實踐操作。學生通過該系統能獲得測評實時反饋,增強了學習自主性,提高了編程能力,并減少了教師的工作量。

關鍵詞:學習通;在線判題系統;程序設計;ThinkPHP;數據分析

中圖分類號:TP31.1;TP393 文獻標識碼:A 文章編號:2096-4706(2024)08-0032-05

0 引 言

計算機程序設計類課程是高校計算機、軟件工程、大數據、智能科學等專業(yè)的基礎課程,對后續(xù)的專業(yè)課程學習非常重要,主要目標是培養(yǎng)學生解決實際問題的編程能力。程序設計不同于傳統理論教學,需要在上機實踐操作過程理解、運用和掌握知識點。傳統教學實踐中主要存在以下問題:

1)學生的設計風格和編程實現各不相同,教師評閱過程需要耗費大量的時間和精力。

2)練習作業(yè)提交到返回時間周期過長,導致學生編程思路的中斷,無法及時分析結果從而降低學習興趣和學習積極性。

3)傳統教學形式以教師為中心,無法積極調動學生學習主動性,容易養(yǎng)成期末突擊現象,不注重平時學習積累[1-3]。

為解決上述問題,論文基于ThinkPHP網頁開發(fā)框架搭建了在線判題系統并引入學習通平臺,組成“混合式”教學模式的重要一環(huán),提升人才培養(yǎng)效果和質量。學習通是北京超星公司開發(fā)的一款在線教學平臺,貫通了課前備課預習、課中課堂教學與管理、課后復習考核與教學評估等整個教學過程,實現了混合式教學全過程的數據采集、云端分析和教學反饋,促進教學模式和組織形式的改革,構建了信息化時代的教學生態(tài)體系[4,5]。在線判題系統為學生提供了良好的實踐環(huán)境,可以在線提交程序源代碼,系統即時進行編譯和執(zhí)行,并通過預先設計的數據檢驗程序的正確性?;趯W習通和在線判題系統的教學模式如圖1所示。

1 在線判題系統總體設計

在線判題系統基于普通用戶、教師用戶和管理員3種不同用戶角色設計了7個不同的功能模塊:登錄注冊、個人中心、測評隊列、問題管理、競賽管理、班級管理、用戶管理,如圖2所示。用戶權限由低至高分別為:普通用戶、教師用戶和管理員。角色之間的權限屬于包含關系,即高權限角色可使用的功能包含了比它權限低的角色可使用的功能。除此之外,未登錄狀態(tài)下默認是游客身份,游客可以看到問題列表公開的題目、競賽和作業(yè)的標題以及測評隊列的實時狀態(tài)。

系統采用ThinkPHP輕量級的國產PHP開發(fā)框架,該框架采用了MVC模式,方便開發(fā)人員快速實現網頁系統。判題系統采用前后端分離技術,后端主要實現數據存儲、實時判題、業(yè)務處理等功能,并且使用MySQL數據庫對數據進行永久保存,前端實現基本用戶交互和數據展示,系統架構如圖3所示。

在線判題(Online Judge-OJ)是一種使用計算機程序進行自動判題技術,一般采用B/S架構實現。用戶在瀏覽器端編輯和提交源代碼,服務器編譯用戶源代碼生成可執(zhí)行文件,并調用測試數據評測程序運行的正確性、運行耗時與內存占用等其他信息。如果輸出的結果與正確答案一致,則判定用戶提交的源代碼是正確的,即Accepted;否則系統反饋錯誤信息給用戶[6-9]。例如:當一位用戶提交了一份C++的源代碼后,本次的提交記錄和代碼會被存放至數據庫中,判題機將訪問數據庫,取出待測試的源代碼并對其進行編譯。C++對應的編譯選項為g++ test.cc -o Main -O -Wall -lm --static -DONLINE_JUDGE,如果編譯失敗,則會將編譯信息與結果錄入數據庫并反饋給用戶,否則取出管理員預先準備好的數據對已編譯的可執(zhí)行文件進行一次黑盒測試。測試結束后,將本次運行的結果保存到數據庫中返回給用戶,只有正確通過黑盒測試的源代碼對應的提交記錄才是正確的,否則會返回失敗的錯誤信息。

系統前端采用Bootstrrap、Layui和sb-admin框架,根據不同框架的特性應用到用戶交互和展示界面:

1)Bootstrap是一款基于HTML、JavaScript、CSS的網站前端框架和應用程序,用于快速開發(fā)Web [10]。其優(yōu)點包括:輕松上手,只需具有CSS和HTML的相關知識即可學習并且使用;支持所有的主流瀏覽器;其響應式的設計可以讓它的CSS自適應于市面上的臺式電腦、平板電腦以及手機;界面和UI簡約而美觀。系統的使用Bootstrap組件的前端樣式主要有導航條、按鈕風格及顏色、分頁欄、數據表格、問題詳情排版等。

2)Layui是一套開源的Web UI解決方案,其風格簡約,組件精細,兼容除IE6/7的全部瀏覽器。本系統更多使用的是其中的layer彈出層模塊,該模塊作為網頁彈出層的首選交互方案,幾乎隨處可見。在本系統中,使用Layui框架的主要場景有提交代碼表單樣式、按鈕、表格、Layui圖標、用戶任何提交相關操作后的彈出層等。

3)sb-admin是基于Bootstrap的簡約后臺管理系統模板,擁有儀表盤和WebAPP的啟動UI,可自定義原圖標按鈕、登錄頁面、菜單等,支持jQuery和Bootstrap。sb-admin主要應用于本系統的管理頁面。

1.1 登錄注冊模塊

登錄注冊模塊主要負責處理用戶的注冊、登錄和重置密碼。未擁有賬號的用戶可以通過注冊功能獲取一個普通賬號,成功登錄后體驗更多內容。對于已經擁有賬號但是忘記密碼的用戶,系統提供了發(fā)送郵箱驗證碼進行密碼重置的操作,用戶需要輸入與賬號綁定的郵箱來獲取驗證碼,通過輸入驗證碼和新密碼來覆蓋該賬號已經被遺忘的舊密碼。登錄業(yè)務流程如圖4所示,用戶登錄時使用MVC中控制器login方法,發(fā)送POST請求,將輸入的賬號、密碼及驗證碼發(fā)送給控制器進行驗證,驗證正確情況才能正常登錄至首頁。

系統登錄界面如圖5所示。

1.2 個人中心模塊

個人中心模塊負責展示與用戶信息相關的內容,包含用戶收藏的題目、競賽、作業(yè)、代碼、用戶的個人信息、用戶參與過的競賽、用戶加入的班級。用戶可以修改個人信息頁面中除用戶名以外的其他內容;可以在加入的班級中查看當前老師布置的作業(yè)及各作業(yè)完成的情況。本模塊主要分為以下4個部分:

1)身份信息:用戶可以看到并修改自己的身份信息,包括昵稱、郵箱、學校和密碼。該功能通過User控制器下的info方法實現,訪問時模型直接從數據庫中取出對應用戶信息并展示,修改信息是同控制器下的update方法,用戶輸入需要修改的信息提交以后發(fā)送Ajax的post請求,其中昵稱的長度限制為24,學校的長度限制為36,郵箱必須符合格式,密碼長度在6到16位,同時滿足以上情況則修改成功,否則提示錯誤信息。

2)提交記錄:在個人信息頁面中,用戶可以查看個人所有的提交記錄,該模塊通過User控制器下的mystatus方法實現,此方法通過調用模型XujcRun中的getLimitData方法查詢當前用戶的所有提交,由于用戶的提交可能存在于競賽、作業(yè)或問題列表,所以在查到數據后根據題目所在位置和ID去查詢該題目的具體信息,最后呈現給用戶。

3)最近登錄:用戶可以查看最近10次的登錄記錄,訪問該頁面時客戶端向服務器發(fā)送GET請求,User控制器下的loginfo方法調用模型XujcLoginfo,該模型的getLogInfo方法根據當前用戶ID查詢近十次的登錄記錄并返回。

4)我的收藏:用戶可以對問題、競賽、作業(yè)和代碼進行收藏和查看。收藏時通過點擊收藏圖標發(fā)送Ajax的post請求,攜帶的數據為收藏類型、收藏ID和一個二者生成的固定哈希值,Collect控制器的collect方法接收到這三個參數后先進行一次對比,若比較成功則將該數據保存入庫,否則返回失敗信息,此舉用來防止用戶通過修改頁面元素來保存其權限之外的內容。

1.3 測評隊列模塊

測評隊列模塊包含兩大部分,第一是狀態(tài)的展示,系統會根據當前所在頁面和URL攜帶的參數來顯示有關的測評狀態(tài);第二是管理員和教師可以通過不同的競賽作業(yè)號、題號、編譯編號來重判問題。具體功能為3個部分實現:

1)提交代碼:用戶可以在問題列表或競賽作業(yè)中提交程序源代碼,其分別位于Problem和Contest控制器的submit方法中,該方法接收到用戶提交的代碼后,將當前攜帶的信息一同加入數據中傳給XujcRun模型的InsertData方法。模型方法接收到數據后,先對代碼進行長度和內容的驗證,若長度為0或超過定義常量max_code_length時返回代碼長度錯誤的信息,若代碼中不包含英文字符或包含JavaScript語句的均提示代碼內容有誤,最后判斷該源代碼的語言是否為當前可選語言,如果是則提交源代碼成功,否則返回不支持該語言的信息。

2)狀態(tài)展示:用戶可以在主頁的狀態(tài)欄或競賽作業(yè)中的狀態(tài)欄查看相關提交記錄和代碼。在主頁的狀態(tài)欄中,用戶可以對編譯編號、題號和用戶名進行篩選,其中固定的篩選條件為contestid=0表示該記錄不屬于任何一次競賽,即在問題列表中的提交,再把用戶輸入的條件添加至where條件中,把符合條件的記錄分頁返回給用戶。在競賽和作業(yè)中的提交記錄中,固定的篩選條件為contestid=競賽作業(yè)ID,用戶可以根據競賽中的題號、用戶名、提交狀態(tài)和語言進行篩選,最后將滿足條件的記錄分頁返回給用戶。圖6為提交記錄以及測評狀態(tài)結果,用戶可以實時獲取結果反饋。

3)查看代碼:在狀態(tài)展示頁面中,若用戶對某條運行記錄有查看的權限,則該記錄的語言會顯示為鏈接文本,用戶可以通過點擊鏈接查看該記錄的源代碼,除了可以查看自己的代碼。

1.4 問題管理模塊

教師和管理員可以添加題目,默認狀態(tài)下,題目只對創(chuàng)建者可見,教師可以修改自己的題目狀態(tài)為共享,以供其他教師使用。只有題目創(chuàng)建者擁有對題目的編輯權限,包括修改題面、文件的上傳、下載和刪除。管理員可以把自己的題目移至問題列表中供其他教師和管理員使用,管理員擁有對問題列表的編輯權限,同時可以修改其中題目的狀態(tài)為公開供普通用戶查看和提交。

1.5 競賽管理模塊

競賽管理模塊負責對競賽和作業(yè)進行添加、編輯等操作。管理者可以修改其標題、問題、開始時間、結束時間、可用語言、是否公開或共享、是否自動解除封榜等信息。其中,向競賽或作業(yè)中添加問題時只能使用當前管理者可用的題目集。競賽和作業(yè)支持作弊分析和導出排名,前者通過對正確代碼的兩兩比較,篩選出存在抄襲嫌疑的用戶和代碼,在將所有信息輸出到Word文檔后統一壓縮并導出。后者則是將排行榜的內容以Excel文檔的形式導出。為增加競賽的神秘性與觀賞性,在競賽最后20%的時間中,提交狀態(tài)不予在排行榜中顯示,正常情況下,比賽結束的那一刻排行榜將自動刷新,恢復正常顯示狀態(tài),為保留懸念,管理員可以選擇其是否在賽后自動解除該狀態(tài)。

1.6 班級管理模塊

班級管理模塊分為兩個子模塊,一個是班級管理,另一個是作業(yè)管理。教師可以直接上傳從教務系統下載的修課名單來創(chuàng)建一個班級,也可以手動輸入學號和姓名添加學生,支持從某個班級中將某個學生移除的操作。教師可以把自己或其他教師分享的作業(yè)布置到某個班級,也可以從班級中移除作業(yè)。班級作業(yè)能夠以Excel文檔的形式導出,使教師可以更加方便地統計該班學生作業(yè)的完成情況。

1.7 問題管理模塊

用戶管理模塊為管理員提供對用戶進行權限調整、修改密碼、修改狀態(tài)和刪除的功能。用戶列表默認按權限從高到低的順序顯示,管理員可以通過輸入關鍵詞對用戶進行篩選查找,如:當管理員輸入CST時,將查詢ID=CST或用戶名包含CST或昵稱包含CST的所有用戶。

權限調整是通過url攜帶參數的形式發(fā)送POST請求,User控制器下的changetype方法接收到被修改的用戶ID和權限,由于該控制器只有管理員權限可以訪問,故省略對操作者的權限判斷,直接將userid=被修改的用戶ID的type設為選擇的角色即可。

管理員修改密碼時會觸發(fā)Layui輸入彈窗,管理員可以對用戶密碼隨意設置,默認值為123456,填寫完成后發(fā)送Ajax的post請求,User控制器下的resetpwd方法通過調用XujcUsers模型的changepwd方法對該用戶的密碼進行重置。

管理員點擊刪除用戶按鈕后彈出Layui提示框,確認刪除后發(fā)送Ajax的post請求,User控制器下的deleteuser方法根據接收到的userid進行對用戶的刪除操作,并返回刪除成功信息。

2 驗證與分析

通過數據分析方式來驗證在線教學與練習平臺的教育教學效果。圖7為某專業(yè)學生線上練習與考試成績的數據,其中橫坐標為學生在線判題系統練習通過數,縱坐標是期末考試分數,可以看出學生的練習數與考試成績基本線性關系,在線練習數越多其相應考試成績越高。

3 結 論

本文針對計算機程序設計課程設計了一個基于ThinkPHP框架的在線判題系統,系統提供了題庫構建、在線學習與練習、作業(yè)代碼查重、同時結合學習通等教學平臺,極大地減少了教師的工作量。學生也通過實時反饋的測評結果快速有效地提升個人程序設計能力,徹底改變了學生對編程畏難情緒,調動了學生學習的積極性,為后續(xù)的專業(yè)學習建立了堅實的基礎。

參考文獻:

[1] 吳舜歆,梁寶蘭.Online Judge在C++程序設計課程實踐教學中的應用 [J].高教學刊,2016(9):164+167.

[2] 鄭亮,趙厚寶,周志釗.基于雨課堂和OJ系統的C++課程計算思維教學方法 [J].科教文匯:中旬刊,2020(8):79-82.

[3] 杜祥軍,李建波,李敏,等.基于Online Judge的計算機類課程教學評價方法研究 [J].計算機教育,2019(3):55-57.

[4] 曹天彥.基于超星學習通的混合式教學模式探究——以人機工程學課程為例 [J].美術教育研究,2023(15):150-152.

[5] 李博,張國慶,于楚泓.基于學習通的傳感器及工程測試技術在線開放課程建設 [J].中國教育技術裝備,2023(1):33-35.

[6] 王榮芝.基于在線評測系統的程序設計類課程混合學習模式設計 [J].計算機教育,2018(8):126-129.

[7] 呂英華.在線評測系統中判題機的設計與實現 [J].無線互聯科技,2022,19(6):78-79.

[8]林子慧.面向在線判題系統的程序設計教學方法的研究與實踐 [J].無線互聯科技,2021,18(15):156-158.

[9] 劉展.基于學生認知的自適應習題推薦研究與系統實現 [D].揚州:揚州大學,2023.

[10] 鄔宇達.基于Bootstrap的變可信度序貫建模與優(yōu)化方法研究[D].武漢:華中科技大學,2022.

作者簡介:邱義(1984—),男,漢族,湖南瀏陽人,副教授,碩士,主要研究方向:物聯網技術、機器視覺等;通訊作者:趙東鋒(1979—),男,漢族,江西上饒人,教育技術服務中心主任,本科,主要研究方向:教育信息化、教育技術應用。

收稿日期:2023-09-26

基金項目:2022年度福建省中青年教師教育科研項目(高校教育信息化專項)(JAT220835);福建省高校教育技術研究會項目(FJET202205)

DOI:10.19850/j.cnki.2096-4706.2024.08.008

Research on the Programming Course Assessment System Based on Chaoxing Learning Platform and Online Question Judging System

QIU Yi1, GUO Yijing1, CHEN Nannan1, CHEN Junren1, ZHAO Dongfeng2

(1.School of Information Science amp; Technology, Xiamen University Tan Kah Kee College, Zhangzhou 363105, China;

2.Center for Educational Technology Support, Xiamen University Tan Kah Kee College, Zhangzhou 363105, China)

Abstract: Programming courses are the fundamental courses in the most engineering majors, and are very important for follow-up courses' learning. In order to improve the teaching effectiveness of the course, we use the Chaoxing learning platform and online question judging system to research the course content and practice in this paper, and design an online question judging system based on the college's teaching features. This system is based on the ThinkPHP framework and B/S architecture, it finally will be provided to teachers and students in the form of a webpage for practical operation. Through this system, students can receive real-time feedback on evaluations, enhance their learning autonomy, improve their programming skills, and reduce the workload of teachers.

Keywords: Chaoxing learning platform; online question judging system; programming; ThinkPHP; data analysis

猜你喜歡
學習通數據分析程序設計
基于Visual Studio Code的C語言程序設計實踐教學探索
計算機教育(2020年5期)2020-07-24 08:52:56
從細節(jié)入手,談PLC程序設計技巧
電子制作(2019年9期)2019-05-30 09:42:04
超星學習通在高校計算機教學中的應用探究
信息化模式在設計初步課程教學方面的應用與研究
科技視界(2018年9期)2018-07-27 11:28:30
基于移動學習APP的政治理論教學改革研究現狀
高職高專院校C語言程序設計教學改革探索
Excel電子表格在財務日常工作中的應用
淺析大數據時代背景下的市場營銷策略
新常態(tài)下集團公司內部審計工作研究
中國市場(2016年36期)2016-10-19 04:31:23
淺析大數據時代對企業(yè)營銷模式的影響
孙吴县| 武川县| 交城县| 福泉市| 昌都县| 华安县| 赤壁市| 涟源市| 万源市| 虞城县| 西藏| 泾川县| 双峰县| 鹤庆县| 新和县| 天镇县| 开封县| 合阳县| 化德县| 河北省| 盘山县| 太谷县| 兴安盟| 华池县| 宾川县| 阳新县| 景德镇市| 神木县| 沅江市| 舟山市| 朝阳区| 昭觉县| 梨树县| 若尔盖县| 辽中县| 黔东| 铅山县| 婺源县| 拜泉县| 南投市| 伊吾县|