田豐 佳木斯市第一中學(xué)
高中信息技術(shù)課在新修訂的《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017 年版)》中,課程結(jié)構(gòu)和課程教學(xué)內(nèi)容都進(jìn)行了較大的調(diào)整修改,在新課程中的《數(shù)據(jù)與計算》、《數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)》、《算法初步》等模塊都涉及到程序設(shè)計,尤其是《算法初步》模塊,將對程序語言、算法設(shè)計進(jìn)行較為深入的學(xué)習(xí)與研究。
程序設(shè)計類課程與基礎(chǔ)理論類課程不同,其實踐性很強,注重學(xué)生實際編程能力的培養(yǎng)。
但從目前高中程序設(shè)計課程的開設(shè)情況來看,程序設(shè)計教學(xué)還存在著一些問題:
(1)評價方式欠科學(xué),缺乏嚴(yán)謹(jǐn)?shù)臋z查機制。學(xué)生編寫完程序后,難以及時、準(zhǔn)確的驗證程序的正確性,從而不能及時發(fā)現(xiàn)程序中存在的問題,長此以往不利于學(xué)生程序設(shè)計能力的培養(yǎng)。
(2)教師課堂監(jiān)督能力有限。教師無法及時了解每名學(xué)生課堂上任務(wù)的完成情況,沒有時間和精力對學(xué)生提交的作業(yè)一一進(jìn)行上機驗證,只能通過抽檢的方式檢查,無法全面和客觀評價學(xué)生的學(xué)習(xí)情況,不利于學(xué)生動手操作能力和創(chuàng)新能力的培養(yǎng)。
(3)教師工作量大。每位高中信息技術(shù)教師大概要教300 名左右的學(xué)生,程序代碼作業(yè)批改費時又費力,這極大地耗費了教師的精力,教師投入到教學(xué)研究的時間就相對較少。
程序在線評測系統(tǒng)(Online Judge,簡稱OJ),是一種基于 B/S 架構(gòu)的在線程序檢測平臺。此評測系統(tǒng)能對學(xué)生用網(wǎng)頁瀏覽器提交到服務(wù)器的程序源代碼進(jìn)行在線編譯,生成可執(zhí)行文件,并從數(shù)據(jù)庫中調(diào)用測試數(shù)據(jù),從程序運行的正確性、耗時、耗費內(nèi)存及返回結(jié)果等各方面評測代碼,并精確返回各方面的評測結(jié)果,學(xué)生可根據(jù)反饋結(jié)果判斷程序是否正確或根據(jù)錯誤的原因進(jìn)行修改。
將程序在線評測系統(tǒng)引入到高中信息技術(shù)的編程教學(xué)中,以輔助信息教師進(jìn)行教學(xué),目的就是要改進(jìn)傳統(tǒng)的人工驗證程序的方法,建立科學(xué)、高效的評價環(huán)境,能實時的、準(zhǔn)確的驗證程序的正確性,從而提高課堂教學(xué)效率,促進(jìn)學(xué)生程序設(shè)計能力的提升。
經(jīng)搜集、學(xué)習(xí)大量資料,筆者學(xué)在校內(nèi)服務(wù)器上安裝了unbtun 操作系統(tǒng),在unbtun 操作系統(tǒng)上安裝了UOJ 在線評測系統(tǒng),經(jīng)反復(fù)調(diào)試、更改,uoj 在線評測系統(tǒng)已能在校內(nèi)使用,在實踐過程中應(yīng)用了以下功能。
學(xué)生打開提交頁面,然后選擇“語言”,便可提交評測。這里我們添加了包括pyton3 在內(nèi)的7 種程序語言,評測結(jié)果可顯示程序運行答案是否正確、程序運行的時間、程序運行的空間、編譯錯誤、運行時錯誤等信息。學(xué)生可根據(jù)評測結(jié)果來改正程序。在此功能的測試中,我發(fā)現(xiàn)測評功能不忽略行末空格,明明答案正確,但由于行末多了一個空格顯示答案錯誤,這給初學(xué)編程的學(xué)生帶來很大的麻煩(有些問題去掉行末空格是很不好處理的),經(jīng)過深入研究修改測評代碼,最終實現(xiàn)了忽略行末空格的評測方式。
學(xué)生打開“提交記錄”頁面,輸入用戶名,點擊“搜索”即可查詢自己以前所有的提交記錄,也可以輸入用戶名和題目編號查詢某一道題目的做題記錄。
做題記錄可以顯示學(xué)生每一次提交的題目編號、提交時間、分?jǐn)?shù)、用時、內(nèi)存、代碼等程序的相關(guān)信息。給學(xué)生的復(fù)習(xí)、自主學(xué)習(xí)帶來了極大的方便。同時教師可以通過查詢某個同學(xué)的做題記錄,了解學(xué)生的學(xué)習(xí)情況。
管理員可以在后臺添加比賽題目,設(shè)置比賽。設(shè)置完成后,學(xué)生在前臺頁面報名后即可參加比賽,比賽結(jié)束后管理員點擊”評測比賽”,系統(tǒng)會評測所有參加比賽選手的程序,評測結(jié)束后顯示分?jǐn)?shù)與排名,這項功能對于教師檢測學(xué)生的學(xué)習(xí)情況非常方便。同時也可作為教師課堂上布置任務(wù)使用,教師在后臺可以實時觀測到每個同學(xué)任務(wù)的完成情況,可以有針對性的輔導(dǎo)。
后臺管理現(xiàn)已完成添加編輯題目(題目中可以含有圖片)、上傳題目測試數(shù)據(jù)、刪除用戶、設(shè)置用戶權(quán)限等功能。為了保證評測系統(tǒng)的安全和方便管理,我們還設(shè)置了開關(guān)功能,對于注冊、評論等功能可在后臺進(jìn)行開啟和關(guān)閉。
從2019 年3月開始,我選取一個班級進(jìn)行python 程序設(shè)計教學(xué),教學(xué)過程中將“在線評測系統(tǒng)”作為教學(xué)的輔助工具,收到了良好的效果,相對以往,學(xué)生課堂狀態(tài)和學(xué)習(xí)效率有了一定的改善,主要體現(xiàn)在以下幾個方面。
之前有些學(xué)生對于單純的學(xué)習(xí)程序語言感覺枯燥乏味,沒有成就感。使用“在線評測系統(tǒng)”時學(xué)生每完成一道題目就會得到一百分,完成題目數(shù)量就增加一個,個人排名就可能上升,學(xué)生都很在意自己的排名,想要排名上升,就得多完成任務(wù),這樣班級內(nèi)就形成你追我趕的學(xué)習(xí)氛圍,大大增加了學(xué)生的學(xué)習(xí)欲望。
以往學(xué)生編寫完程序后,自行驗證程序的正確性。由于初學(xué)程序設(shè)計和個人思維習(xí)慣的不同,很多學(xué)生自以為正確的程序其實存在著邏輯錯誤,而課堂上老師精力有限,不可能照顧到所有學(xué)生。在線評測系統(tǒng)可以輔助學(xué)生檢查程序的嚴(yán)謹(jǐn)程度,每一道問題教師都設(shè)計了全面嚴(yán)謹(jǐn)?shù)臏y試數(shù)據(jù),基本可以檢測出程序的各種邏輯錯誤,學(xué)生評測后可及時發(fā)現(xiàn)錯誤,及時改正,以免下一個任務(wù)犯相同的錯誤,慢慢學(xué)生也越來越意識到編程過程中應(yīng)用注意到哪些問題,編程的正確性和邏輯思維能力得到一定的提高。
使用評測系統(tǒng)后學(xué)生可清晰的看到程序運行的時間和占用的內(nèi)存,不同算法運行的時間空間可能有著明顯的不同,這在以前學(xué)生是無法體會到的。課堂上學(xué)生看到程序的運行效率后,也嘗試著去優(yōu)化程序,重新設(shè)計算法,這個過程可以加深學(xué)生對算法的理解,也鍛煉了學(xué)生的計算思維。
使用在線評測系統(tǒng)后,學(xué)生對于遺忘的內(nèi)容查可查看做題記錄,課堂上問老師問題的學(xué)生減少了,課堂上老師查看學(xué)生的做題記錄很容易發(fā)現(xiàn)學(xué)生的問題,指導(dǎo)更有針對性。同時在線評測系統(tǒng)可以自動評測,教師批改作業(yè)也省時省力,更多的精力可以查看學(xué)生錯誤原因,教學(xué)設(shè)計更有針對性。
經(jīng)過一學(xué)期的使用,在本學(xué)期初對實驗班級進(jìn)行了問卷調(diào)查,結(jié)果如下:
(1)有94%的學(xué)生認(rèn)為使用“在線評測系統(tǒng)”能夠提升編程的興趣。
(2)有86%的學(xué)生認(rèn)為“在線評測系統(tǒng)”能及時反饋程序的正確性
(3)有72%的學(xué)生認(rèn)為“在線評測系統(tǒng)”可查看程序運行時間和空間,了解算法優(yōu)劣
(4)有94%的學(xué)生認(rèn)為“在線評測系統(tǒng)”可查看做題記錄,方便復(fù)習(xí)
(5)有34%的學(xué)生經(jīng)常關(guān)注“在線評測系統(tǒng)”的排行功能,有58%的學(xué)生偶爾關(guān)注。
(6)有74%的學(xué)生認(rèn)為使用“在線評測系統(tǒng)”進(jìn)行程序評測是否更容易發(fā)現(xiàn)程序的邏輯錯誤
(7)有92%的學(xué)生認(rèn)為使用“在線評測系統(tǒng)”進(jìn)行程序評測能否提高思維的嚴(yán)謹(jǐn)性教學(xué)實踐過程使用中“在線評測系統(tǒng)”受到了學(xué)生的認(rèn)可,對教學(xué)起到了積極的輔助作用,但筆者認(rèn)為,在學(xué)生編程熟練后,不易過度依賴評測系統(tǒng)來檢驗程序的漏洞,這對于培養(yǎng)學(xué)生的思維嚴(yán)謹(jǐn)性是不利的,應(yīng)更多地將其作為評判工具,恰當(dāng)合理的應(yīng)用。