面向在線判題系統(tǒng)的程序設計教學方法的研究與實踐_第1頁
面向在線判題系統(tǒng)的程序設計教學方法的研究與實踐_第2頁
面向在線判題系統(tǒng)的程序設計教學方法的研究與實踐_第3頁
面向在線判題系統(tǒng)的程序設計教學方法的研究與實踐_第4頁
面向在線判題系統(tǒng)的程序設計教學方法的研究與實踐_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、    面向在線判題系統(tǒng)的程序設計教學方法的研究與實踐    林子慧摘 要:為了改變傳統(tǒng)的程序設計教學過程中訓練效果不易跟蹤,人工判題需要大量人工操作,學生學習積極性不易提高的狀況,文章研究并實踐了一種應用在線判題系統(tǒng)的程序設計教學方法。通過應用在線判題系統(tǒng)中的題目分類標簽、判題結果、小組和比賽以及學生解題情況匯總等功能,可以激發(fā)了學生學習的能動性,并為教師提供更直觀的教學效果可視化工具,從而有效地提高教學質量。關鍵詞:在線判題系統(tǒng);程序設計教學;教學研究1    在線判題系統(tǒng)與程序設計教學1.1  在線判題系統(tǒng)簡介在線判題

2、系統(tǒng)(online judge system)是一個基于web的交互式程序設計訓練系統(tǒng)。在線判題系統(tǒng)的大量使用始于acm程序競賽,為了備賽,國內(nèi)外許多大學都分別自行開發(fā)了類似的在線判題系統(tǒng),用于日常的訓練和內(nèi)部比賽。在線判題系統(tǒng)的后臺管理一個或多個題庫,提供訓練題目,每個題目有多個測試樣例,以驗證用戶提交的代碼的正確性。測試樣例一般包含多組輸入數(shù)據(jù)和正確輸出數(shù)據(jù),學生提交解決問題的程序后,系統(tǒng)通過驗證在相同輸入數(shù)據(jù)時,程序是否可以分別正確地輸出結果,來判斷程序的正確性。本文作者使用開源的江南在線判題系統(tǒng)(jiangnan online judge),通過二次開發(fā)不斷完善后,為在校學生提供了自建

3、題庫的在線判題系統(tǒng)“jp程序設計網(wǎng)站(jpoj)”,目前系統(tǒng)已正常運行超過兩百天,注冊用戶超過七百人,接收并驗證學生提交的代碼超過11萬次,取得了初步的教學效果1。1.2  在線判題系統(tǒng)的驗題方式在線判題系統(tǒng)通常在后臺運行一個判題模塊,使用特制的受限沙盒環(huán)境,自動編譯和測試用戶提交的解決代碼。根據(jù)測試原理,判題模塊采用多組測試樣例,窮舉可能存在的邏輯漏洞。根據(jù)用戶提交的程序的執(zhí)行結果,在線判題系統(tǒng)返回相應的驗證結果。1.3  傳統(tǒng)程序設計教學方法中的存在的問題為了考查學生程序設計的掌握程度,通常課堂的代碼演示之后需要布置堂上編程練習和課后編程作業(yè)。在傳統(tǒng)的程序設計教學中,學

4、生在線下編輯程序、編譯執(zhí)行、測試程序和記錄結果都需要大量人工操作,效率難以提高;教師人工判題也難免遺漏一些程序邏輯錯誤。另外,傳統(tǒng)的程序設計課程教學依賴課本和教學大綱,按提前準備ppt的教學,難以擺脫堂上案例不夠豐富,程序示例演示不便的問題,在學生學習狀況超過或低于預期時,不容易及時動態(tài)調(diào)整教學進度2。2    在線判題系統(tǒng)與程序設計課程教學的融合設計2.1  根據(jù)程序設計教學目標,合理安排編程訓練程序設計教學一般采用循序漸進的方式,從程序接收輸入和產(chǎn)生輸出開始,接著介紹各類數(shù)據(jù)類型的特點和運算表達式,然后介紹3大基本的流程控制、容器數(shù)據(jù)類型和基礎算法等,其中的知

5、識模塊和知識點眾多,為其整理例題和練習題是教學中必需的環(huán)節(jié)。使用在線判題系統(tǒng),整理相似題目,合理安排題目的標簽,可以在教學中根據(jù)學生的掌握情況,合理安排練習和作業(yè)。這些標簽,比如“分支”“循環(huán)”“一維數(shù)組”等,都直接關聯(lián)課程教學大綱中的理論知識和實踐技能。通過訪問標簽,教師可以更方便地在課堂教學中指導與堂上講授知識相關的題目;能幫助學生理解課程大綱,并引導學生根據(jù)標簽提供的題目分類,自主深入學習有關知識3。對于每個知識點的分類標簽,在線判題系統(tǒng)提供多個由淺入深的題目。比如對于整數(shù)的數(shù)據(jù)類型和計算,本文中的系統(tǒng)整理了21個相關的題目,包括僅為入門難度的“a+b”“a×b”,以及一定挑戰(zhàn)

6、的“整數(shù)的各個數(shù)字”“打包蘋果”等題目。其他分類標簽中的題目也是根據(jù)學習曲線,優(yōu)化選擇了c程序設計及其他教材中的課后習題,這樣有利于學生從基礎開始,舉一反三,加強對程序設計的感性認識。在線判題系統(tǒng)可以自動判斷學生提交的代碼是否可以正確解答問題。根據(jù)系統(tǒng)提供的判題結果,可以及時掌握學生編程時遇到的具體問題,提供及時的輔導。如圖1(a)中的編譯錯誤,系統(tǒng)提供了編譯器的日志,能直接定位到出錯的代碼段;圖1(b)中出現(xiàn)了運行超時的錯誤,通過分析可以判斷循環(huán)結構沒有正確結束,進入了死循環(huán);圖1(c)中由于計算邏輯錯誤,產(chǎn)生了錯誤的計算結果;圖1(d)的正確運行結果返回了各測試樣例的運行時長和內(nèi)存使用情況

7、,為優(yōu)化程序邏輯,提高程序執(zhí)行效率提供了參考。在線判題系統(tǒng)中的“小組”功能將教學班的學習組織起來,通過系統(tǒng)布置作業(yè),查看教學班的學習進展。小組中的“榜單”功能記錄了每位學生歷次提交的代碼及其運行結果,并以完成作業(yè)的總用時作為依據(jù)進行排序。在程序設計教學中,可以靈活使用小組功能,在堂上布置練習和在課后布置作業(yè),隨時跟蹤學生的完成情況。在實踐中,教師通過榜單功能可以更好地激勵學生及時完成作業(yè),學生亦可由此發(fā)現(xiàn)班里學習進展較快的同學,促進了線下的學習交流。使用在線判題系統(tǒng)中的比賽功能,教師可以通過組織線上編程比賽,借此達到訓練學生的目的。在線判題系統(tǒng)的比賽可分為個人排位賽、oi賽、線下比賽等多種形式

8、,依據(jù)歷次個人排位賽的比賽結果,生成“段位排行”(見圖2),激勵學生勇于爭先,達到以賽促練的效果。2.2 依據(jù)在線判題系統(tǒng)中的數(shù)據(jù),優(yōu)化程序設計課程教學通過在線判題系統(tǒng),生成學生在時間上完成題目的數(shù)量,可以跟蹤學生完成題目的進展情況,如圖3所示。對于進展較快的學生,鼓勵他(她)繼續(xù)完成難度更高,更有挑戰(zhàn)性的題目;對于進展不理想的學生,在堂上堂下給予更多的關注,督促學生跟上學習進度。分析判題結果的匯總情況,可以掌握學生的學習狀態(tài),如圖4所示。較高的通過率和較少的編譯錯誤和解答錯誤通常是編程水平較強的表現(xiàn),但也有可能是抄襲的結果。通過上線判題系統(tǒng),匯總每位學生的判題結果,可以在一定程序上反映學生的

9、學習狀態(tài)。2.3 完善在線判題系統(tǒng)的思路引入查重功能,杜絕代碼抄襲。在教學中發(fā)現(xiàn)學習提交的代碼偶爾還存在抄襲的情況。未來將研究如何實現(xiàn)自動查重和人工查重的功能,使用低閾值的方式對代碼進行初步處理和分析,去除注釋、預處理、標準庫等通用的代碼段,并對自動查重時觸發(fā)限值的代碼進行人工復核,減少自動查重的誤判。另外為了適應新的教學需要,還可以在系統(tǒng)中繼續(xù)增加go,scala,kotlin和perl等編程語言,適應更多的編程課程。3    結語為了提高程序設計課程的教學質量,更好地跟蹤學生在程序設計課程的學習狀態(tài)和進展,本文介紹了一種結合在線判題系統(tǒng)的程序設計教學方法。通過分析在線判

10、題系統(tǒng)在程序設計教學中的實際應用,本文發(fā)現(xiàn)題目分類標簽、判題結果、小組和比賽以及學生解題情況的匯總數(shù)據(jù),可以為教師和學生提供便利的教學工具,激發(fā)學習的積極性,其直觀的教學效果可視化工具也為教師及時調(diào)整課程教學進度,提高教學質量提供了有效的保障。參考文獻1韓志科,王貴,韓俊杰.基于api自動測試的程序設計在線判題系統(tǒng)的研究與實現(xiàn)j.計算機系統(tǒng)應用,2008(7):9-13.2武建華.基于acm模式的數(shù)據(jù)結構實踐教學改革與探索j.計算機教育,2007(24):114-116.3蔡崇超.基于web的在線判題系統(tǒng)設計與實現(xiàn)j.軟件導刊,2016(3):107-109.(編輯 何 琳)research

11、and practice of program design teaching method for online problem determination systemlin zihui(jiangmen vocational and technical college, jiangmen 529020, china)abstract:in order to change the traditional programming teaching process, the training effect is not easy to track, manual problem determi

12、nation needs a lot of manual operation, students' learning enthusiasm is not easy to improve, this paper studies and practices a programming teaching method using online problem determination system. by applying the functions of problem classification label, result, group and competition, and summary of students' problem solving in online problem determination system, the students' initiative in learning can be stimulated, and more intuitive visual tools

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論