?

基于程序能力提升的程序設計基礎課程在線評測平臺搭建與應用研究

2024-03-20 02:10
無線互聯科技 2024年2期
關鍵詞:題庫評測程序設計

朱 鵬

(貴州交通職業技術學院,貴州 貴陽 550025)

0 引言

程序設計基礎類課程(“C語言程序設計”“Java程序設計”“Python程序設計”)是職業院校電子信息大類(物聯網應用技術、計算機網絡技術、大數據技術與應用等)的專業基礎課,教學目標是讓學生能針對具體問題進行分析,熟練掌握程序設計語言進行程序實現。在教學實踐過程中,由于課程課時的限制和學生接受能力的差異,教師很難兼顧所有學生的掌握情況。一些學生可能在課程結束后仍然無法完全掌握程序設計的基本概念和方法,而另一些學生則可能會覺得課程內容過于簡單,缺乏挑戰性。加上程序設計類課程是實踐課,需要進行大量的編程練習,而在授課過程中,基本上是大班教學,故教師很難及時了解每個學生的完成情況,也無法第一時間對學生完成的程序進行驗證。初學者常出現各種錯誤,學習積極性很容易受到影響。為夯實學生的編程基礎,本文使用Hydro搭建了一個程序設計基礎課程的在線評測平臺,通過在線評測平臺進行教學實踐,教學效果良好。

1 在線評測平臺搭建

1.1 在線評測平臺介紹

在線評測(Online Judge,OJ)系統起源于美國計算機協會(Association for Computing Machinery,ACM)國際大學生程序設計競賽(ACM International Collegiate Programming Contest,ACMICPC)。隨著ACM競賽近30年的發展,各大高校紛紛開發了屬于自己的在線評測系統。其中,國外知名高校的在線評測系統有美國弗吉尼亞大學的UVA OJ系統,國內最早開發在線評測系統的高校是浙江大學[1]。它是一個基于Web的在線評測系統,該系統提供了大量的編程題目和在線編輯器,用戶可以在線編寫、測試和提交代碼,系統會根據用戶提交的代碼實時反饋,方便學生自我檢測和提高編程能力。隨著近些年社會對信息學奧賽的重視,互聯網也出現了“洛谷”“信息學奧賽一本通C++評測系統”“計蒜客”等編程網站,便于編程愛好者刷題、學習。

1.2 在線評測平臺選擇

通過對互聯網上各評測系統進行調研發現,各高校、商業網站開發的在線評測系統大多是對基于開源的在線評測平臺進行二次開發,這些開源平臺為開發者提供了豐富的功能和工具,使得開發者能夠快速地搭建自己的在線評測系統。各高校的評測平臺主要用來校內課程教學、競賽訓練和選拔,對外只開發個人用戶注冊功能;各商業網站開發個人用戶注冊,提供個人刷題功能。兩者均難以實現教師課程教學的過程化管理和比賽定制。為此,本文利用開源的在線評測平臺搭建了一個學校自主的評測平臺,供本校程序設計類課程教學使用。通過使用這個平臺,教師可以更加方便地進行課程教學的過程化管理,有助于提高教學質量和學生的學習效果。通過比較Vijos、Hdyro、HustOJ、QDUOJ等開源在線平臺發現,Hydro采用B/S架構,支持 C/JAVA/Python 等程序的自動評測,支持一鍵安裝,使用MongoDB數據庫,有完備的權限管理系統、域功能,并提供了題庫、作業、討論、排名等功能,還可通過安裝附加組件進行擴展,功能強大,能滿足學院程序設計類課程教學使用[2]。

1.3 Hydro在線評測平臺搭建

Hydro支持使用腳本一鍵搭建,這種搭建方式不僅降低了安裝難度,還提高了搭建效率,使得用戶可以在短時間內快速搭建起在線評測平臺。在安裝之前,用戶需要在GitHub倉庫下載安裝腳本,在裝有Ubuntu 20.04的服務器上運行相關指令就可直接安裝。安裝完成后,通過服務器訪問網頁端,設置超級管理員賬號,修改配置,即可以構建一個集教學、作業、考核為一體的自動評測平臺。在線評測平臺搭建好后,可以創建管理員、教師和學生3類用戶。管理員可以導入用戶、設置域、導入題庫,對平臺進行維護;教師可以導入題庫、布置作業、查看學生的提交情況;學生可以通過平臺參與練題,完成作業及形成性考核。

2 在線評測平臺的應用

2.1 在線評測平臺功能

在線評測平臺具有用戶管理、題庫、作業、比賽、討論、評測記錄、排名功能,具體功能如下[3]。

用戶管理:包括教師管理和學生管理。教師管理主要有權限管理、域管理;學生管理包括用戶導入、密碼修改。導入成功的用戶可以訪問所有域。

題庫管理:題庫管理的學生權限為查看、搜索題目;教師權限為題目導入及創建題目。教師導入或創建題目后,教師和學生就可以在題庫中查找題目并進行代碼提交。

訓練管理:訓練計劃可以按章節進行設置,教師從題庫中選擇題目創建訓練計劃,學生點擊參加訓練計劃,教師可以查看已參加訓練計劃的同學的訓練完成情況。教師可以創建多組訓練計劃,學生可以根據自身情況選擇參加哪組訓練計劃。

作業管理:包括創建、編輯和刪除作業。創建作業時,可以設置作業標題、開始/結束時間、分配給指定用戶、題目。教師創建好作業后,學生可以認領作業。

比賽管理:包括創建、編輯比賽。創建比賽后,學生用戶可以參加比賽,教師可以查看學生的成績。

討論管理:用戶選擇題目后,可以創建討論。討論創建好后,用戶可以進行跟帖回復。

評測記錄管理:教師用戶可以通過用戶名/UID、題目、比賽、語言、狀態查看用戶的提交評測情況。

2.2 題庫管理

題庫是整個在線評測平臺的核心[4],為學生和教師提供了豐富的題目資源。題庫中的題目可以從Hydro中導入,通過導入功能,可以將其他 OJ題目導入本站。與此同時,題目的標題、題面、標簽和分類都將會被自動導入,導入后可以使用PreferredPrefix選項來進行題號重排。此外,教師也可以使用創建題目的功能創建題目。題目創建好后,教師可以在作業管理、訓練管理和比賽管理模塊中引入題庫中的題目。

2.3 創建題目

創建題目時,可以設置題目ID、題目標題、是否隱藏、標簽和題目難度。在題目編輯中,可以使用Markdown語言進行編寫,增加題目的可讀性。與此同時,還可以導入公式和圖片,使題目變得豐富,創建題目操作界面如圖1所示。題目創建好后,在題庫中,可以使用題目編號、題目標題、標簽進行搜索。在線評測平臺支持創建簡單的OJ題目、函數交互型題目、全自動對拍題和客觀題。

圖1 創建題目操作頁面

2.4 測試數據生成

題目創建好后,需要為該題目創建測試數據。測試數據用于檢查所編寫程序是否能夠按照預期工作,也用于測試應用程序的極限或通過邊界值測試確定其突破點[5]。在線評測平臺中,一個題目可以設置多組測試樣例來驗證程序是否正確。在測試數據的設計中,本文采用了語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋、路徑覆蓋等方式進行測試數據的設計。

在線評測平臺的測試數據格式分為自動模式和使用配置文件2種。自動模式直接選擇文件上傳或將文件拖拽至相應位置上傳,或者上傳.zip格式文件,系統會自動進行解壓,測試數據上傳頁面如圖2所示。使用配置文件模式則需要上傳config.yaml文件。

圖2 測試數據上傳頁面

在實際測試數據樣例生成過程中,采用Cyaron 進行數據生成。Cyaron是基于 Python 的開源軟件,用于快速且方便地生成 OJ 題目的測試數據。在形成一個完整的數據生成器之前,需要編寫程序對應題目的標準程序,編譯之后得到一個可執行文件,再通過Python程序調用Cyaron 提供的函數進行數據生成,生成的輸入、輸出數據會分別存放到指定文件中。

2.5 創建作業

題目創建成功后,教師就可以進行作業創建。創建作業時可以設置作業的標題、開始時間、結束時間、分配給哪個班級、布置題目和內容,作業創建完成界面如圖3所示。創建作業的內容處支持Markdown語言。創建作業時,可以將本節課的授課內容寫到內容設置處,作業創建好后該內容會在作業介紹處顯示,這個內容可以作為課件,教師可以用來授課,學生可以用來參考、學習。

圖3 作業創建完成界面

3 在線評測平臺在課程教學過程中的應用實踐

該平臺已進行了2年的實踐。共有2021/2022級5個班級約300余名學生通過平臺完成了程序設計基礎課程的學習。通過排名功能查看可知,共有20%的同學在題庫中完成了70道以上的練習題,有98%以上的同學完成了50道以上的練習題。充分表明學生對在線評測平臺的接受度和使用情況良好。

3.1 教師方面

教師通過管理題庫、布置作業、查看成績表,實現教學任務的過程化管理[6]。首先,借助平臺功能,教師可以設計各種形式的教學活動,如在線作業、考試等,從而更好地滿足學生的學習需求。其次,通過成績表功能,教師更容易掌握學生的學習情況、學生的弱項,便于更針對性地教學或調整教學進度。

3.2 學生方面

學生通過評測系統的題庫功能,提前知曉課程的目標任務,并可以直接在平臺上進行練習,利用實時反饋來檢驗自己的學習成果。題庫還提供了多樣化的題目類型和難度等級,滿足了不同層次學生的學習需求,同時還可以與其他同學進行比較和競爭,激發了學生的學習熱情和積極性,實際編程能力有了大幅提高。

4 結語

本文分析了如何利用Hydro搭建一個教學在線評測平臺,并就平臺的主要功能進行了介紹。在電子信息類專業程序設計類課程教學實踐中,引入在線評測平臺進行教學,規范統一教學內容,利用實時評測系統的反饋提高課堂教學效率,激發了學生的學習動力,提高了學生的編程能力,取得了良好的教學效果。

猜你喜歡
題庫評測程序設計
“勾股定理”優題庫
次時代主機微軟XSX全方位評測(下)
次時代主機微軟XSX全方位評測(上)
“軸對稱”優題庫
基于Visual Studio Code的C語言程序設計實踐教學探索
“軸對稱”優題庫
“整式的乘法與因式分解”優題庫
從細節入手,談PLC程序設計技巧
攻坡新利器,TOKEN VENTOUS評測
Canyon Ultimate CF SLX 8.0 DI2評測
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合