徐燕萍
(鹽城工學(xué)院 信息工程學(xué)院,江蘇 鹽城 224051)
程序設(shè)計(jì)類課程是電子信息大類相關(guān)專業(yè)的核心課程,由于程序設(shè)計(jì)類課程具有基礎(chǔ)知識(shí)枯燥、難以入門、實(shí)踐性強(qiáng)的特點(diǎn),實(shí)驗(yàn)教學(xué)環(huán)節(jié)對(duì)鞏固基礎(chǔ)知識(shí)、培養(yǎng)學(xué)生動(dòng)手能力至關(guān)重要。但一直以來,實(shí)驗(yàn)教學(xué)效果并不理想,主要原因在于:①語法規(guī)則復(fù)雜、枯燥,概念抽象,對(duì)于沒有建立編程思維的學(xué)生而言難度較大,導(dǎo)致學(xué)生興趣不高;②師生缺少有效交流,學(xué)習(xí)氛圍不濃厚;③學(xué)生需要花費(fèi)大量時(shí)間書寫紙質(zhì)報(bào)告,容易產(chǎn)生抵觸情緒;④紙質(zhì)報(bào)告批改工作量大,也難以驗(yàn)證程序的正確性,學(xué)習(xí)反饋不足;⑤報(bào)告抄襲現(xiàn)象比較嚴(yán)重,難以判斷學(xué)生是否真正掌握相關(guān)知識(shí)。因此,改革與探索程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)模式是一項(xiàng)十分迫切的工作。
自新冠疫情爆發(fā)以來,教育部提出“停課不停學(xué)、停課不停教”的教學(xué)要求,傳統(tǒng)的實(shí)驗(yàn)教學(xué)模式:準(zhǔn)備、實(shí)驗(yàn)、報(bào)告、批閱,已不再適用。針對(duì)疫情期間程序設(shè)計(jì)類課程實(shí)驗(yàn)線下無法開展以及學(xué)校實(shí)際情況,提出基于在線判題的線上教學(xué)模式。該模式采用自主研發(fā)的鹽城工學(xué)院實(shí)驗(yàn)項(xiàng)目源碼評(píng)測(cè)系統(tǒng)(以下簡(jiǎn)稱YOJ)輔助教學(xué),并且在疫情常態(tài)化后,已應(yīng)用于日常實(shí)驗(yàn)教學(xué),實(shí)現(xiàn)了程序設(shè)計(jì)類課程實(shí)驗(yàn)線上線下相混合的新型教學(xué)模式。
OJ(Online Judge)最初應(yīng)用于ACM 國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽中,目前已廣泛應(yīng)用于各大高校的程序設(shè)計(jì)訓(xùn)練等方面。國(guó)內(nèi)外知名的OJ 系統(tǒng)有很多,比如:浙大的ZOJ、北大的POJ、杭州電子科技大學(xué)的HDOJ 等。雖然這些OJ題庫(kù)很多,但僅用于程序設(shè)計(jì)競(jìng)賽,并且缺少分類指引,難度系數(shù)大,并不適用于鹽城工學(xué)院程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)。
針對(duì)這些不適用的情況,結(jié)合鹽城工學(xué)院學(xué)生層次及能力現(xiàn)狀,自主研發(fā)了界面友好、功能完善且能輔助實(shí)驗(yàn)教學(xué)的在線實(shí)驗(yàn)平臺(tái)。
系統(tǒng)采用B∕S 架構(gòu),采用前后端分離技術(shù);后臺(tái)使用JDK 1.8,前端使用Vue.js 2.0;使用自主研發(fā)的CUI 作為系統(tǒng)的UI 框架,數(shù)據(jù)庫(kù)采用MySQL;在線判題使用的是成熟穩(wěn)定的開源HustOJ 內(nèi)核。學(xué)生在使用系統(tǒng)時(shí),只需在機(jī)器上安裝瀏覽器即可。目前,YOJ 支持C、C++、C#、Java、Python 5 種編程語言評(píng)測(cè)。YOJ 界面如圖1 所示。
Fig.1 Interface of YOJ圖1 YOJ 界面
與教學(xué)實(shí)際過程緊密結(jié)合,YOJ 系統(tǒng)提供了五大功能模塊:系統(tǒng)管理模塊、在線判題評(píng)分模塊、實(shí)驗(yàn)報(bào)告生成導(dǎo)出模塊、錯(cuò)誤采集查詢模塊、排名統(tǒng)計(jì)模塊。其中,在線判題和實(shí)驗(yàn)報(bào)告生成導(dǎo)出是特色模塊。系統(tǒng)分為Judge 服務(wù)器(判題內(nèi)核)、Web 服務(wù)器和MySql 數(shù)據(jù)庫(kù)服務(wù)器3 部分。學(xué)生在瀏覽器代碼編輯器中輸入源代碼,然后提交到數(shù)據(jù)庫(kù)服務(wù)器,Judge 服務(wù)器監(jiān)測(cè)數(shù)據(jù)庫(kù)服務(wù)器中待評(píng)測(cè)代碼并進(jìn)行評(píng)測(cè),評(píng)測(cè)結(jié)果既會(huì)保存在數(shù)據(jù)庫(kù)中也會(huì)實(shí)時(shí)反饋給學(xué)生,學(xué)生根據(jù)反饋的評(píng)測(cè)結(jié)果及時(shí)修正,在這種不斷試錯(cuò)、不斷修正結(jié)果的過程中,提高學(xué)生分析問題、解決問題的能力。學(xué)生完成實(shí)驗(yàn)項(xiàng)目后,可在線查看和生成導(dǎo)出實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)報(bào)告包括實(shí)驗(yàn)源代碼、運(yùn)行結(jié)果、運(yùn)行時(shí)間及內(nèi)存情況,可以PDF 文件格式導(dǎo)出,方便學(xué)生打印。
線上課程雖然資源多、不受時(shí)空限制,但由于學(xué)習(xí)過程管理不嚴(yán)、學(xué)生學(xué)習(xí)參與度不高、師生交流互動(dòng)較少等原因,導(dǎo)致學(xué)習(xí)效果不佳。為了提升實(shí)驗(yàn)教學(xué)效果,本文提出基于YOJ 的線上線下混合教學(xué)模式,既提高學(xué)生學(xué)習(xí)參與度,激發(fā)學(xué)生的主動(dòng)性和創(chuàng)造性,又發(fā)揮教師引導(dǎo)學(xué)生、監(jiān)控教學(xué)過程的主導(dǎo)作用?;赮OJ 平臺(tái)的線上線下實(shí)驗(yàn)混合教學(xué)設(shè)計(jì)如圖2 所示。
每次實(shí)驗(yàn)課前,教師根據(jù)理論課進(jìn)度安排實(shí)驗(yàn)內(nèi)容,錄制實(shí)驗(yàn)教學(xué)視頻;然后布置實(shí)驗(yàn)任務(wù),實(shí)驗(yàn)開始時(shí)間一般是上課時(shí)間。每個(gè)實(shí)驗(yàn)項(xiàng)目由若干個(gè)具體的編程題目構(gòu)成,教師可以對(duì)選擇的題目分配分?jǐn)?shù)比例,以便計(jì)算最后得分。學(xué)生可以將實(shí)驗(yàn)視頻觀看過程中遇到的問題通過系統(tǒng)反饋給教師,教師收集整理學(xué)生反饋的問題以便在實(shí)驗(yàn)課開始時(shí)集中講解。
Fig.2 Design of mixed teaching mode of experimental course圖2 實(shí)驗(yàn)課混合教學(xué)活動(dòng)設(shè)計(jì)
上課時(shí),教師講解本次實(shí)驗(yàn)的重點(diǎn)、難點(diǎn)及課前線上活動(dòng)階段學(xué)生反饋的問題;然后學(xué)生登錄YOJ 系統(tǒng),完成實(shí)驗(yàn)題目。每提交一道題目,YOJ 會(huì)在線編譯,并對(duì)照給定的測(cè)試用例,與預(yù)設(shè)的輸出進(jìn)行比對(duì),以驗(yàn)證程序是否正確,最后會(huì)提示學(xué)生源代碼執(zhí)行用時(shí)及內(nèi)存使用情況,學(xué)生可以根據(jù)評(píng)測(cè)結(jié)果,對(duì)代碼作進(jìn)一步優(yōu)化,直到滿意為止。教師可以在教室中對(duì)有問題的學(xué)生進(jìn)行個(gè)性化指導(dǎo),還可以通過平臺(tái)的統(tǒng)計(jì)分析功能,查看學(xué)生實(shí)驗(yàn)項(xiàng)目完成情況,對(duì)出現(xiàn)的集中性錯(cuò)誤、共性問題集中指導(dǎo)。學(xué)生提交完所有實(shí)驗(yàn)題目后,系統(tǒng)會(huì)自動(dòng)生成實(shí)驗(yàn)報(bào)告,學(xué)生可以在線查看,也可以導(dǎo)出PDF 文件,PDF 文件以班級(jí)—學(xué)號(hào)—姓名—實(shí)驗(yàn)項(xiàng)目.pdf 命名。
實(shí)驗(yàn)課結(jié)束后,教師可以查看錯(cuò)誤統(tǒng)計(jì)信息,分析每次實(shí)驗(yàn)中各類錯(cuò)誤的出現(xiàn)頻率,以便在今后教學(xué)中重點(diǎn)介紹。系統(tǒng)會(huì)根據(jù)學(xué)生實(shí)驗(yàn)完成時(shí)間、運(yùn)行效率、提交次數(shù)、總評(píng)成績(jī)進(jìn)行排名,學(xué)生可以查看排名,了解自己在班級(jí)的學(xué)習(xí)狀況,這樣極大地激發(fā)了學(xué)生的學(xué)習(xí)熱情。
課前、課中、課后三段式混合教學(xué)模式,充分利用現(xiàn)代化教學(xué)手段,課前發(fā)布基于知識(shí)點(diǎn)的微視頻,精心設(shè)計(jì)教學(xué)內(nèi)容;課中通過YOJ 系統(tǒng)合理組織教學(xué)活動(dòng),及時(shí)判題了解學(xué)生知識(shí)點(diǎn)掌握情況;課后分析數(shù)據(jù)庫(kù)評(píng)測(cè)結(jié)果,及時(shí)評(píng)價(jià)教學(xué)效果。基于OJ 的混合教學(xué)模式將教學(xué)內(nèi)容設(shè)計(jì)、教學(xué)活動(dòng)組織、教學(xué)效果評(píng)價(jià)作為一個(gè)有機(jī)整體綜合考慮,明顯提升了實(shí)驗(yàn)教學(xué)效果。
自2020 年5 月,YOJ 系統(tǒng)正式上線以來,系統(tǒng)題庫(kù)數(shù)量不斷增加,目前已經(jīng)累計(jì)800 多道,3 學(xué)期共有1 500 多人在C 語言程序設(shè)計(jì)、算法與數(shù)據(jù)結(jié)構(gòu)、Java 程序設(shè)計(jì)、Python 程序設(shè)計(jì)等課程中陸續(xù)使用該系統(tǒng)作為實(shí)驗(yàn)課輔助教學(xué)平臺(tái),取得了良好效果。
傳統(tǒng)的實(shí)驗(yàn)教學(xué)方式下,由于教師監(jiān)督能力有限,無法及時(shí)檢查、驗(yàn)證學(xué)生的實(shí)驗(yàn)代碼,直接導(dǎo)致學(xué)生實(shí)際程序設(shè)計(jì)能力較差,甚至出現(xiàn)少數(shù)學(xué)生混水摸魚的現(xiàn)象。使用混合教學(xué)模式后,為保證實(shí)驗(yàn)任務(wù)在實(shí)驗(yàn)課內(nèi)完成,要求每位學(xué)生在實(shí)驗(yàn)課內(nèi)在線提交實(shí)驗(yàn)源代碼,并且每位學(xué)生的源代碼都能得到驗(yàn)證,系統(tǒng)還會(huì)統(tǒng)計(jì)出學(xué)生在班級(jí)的排名情況。學(xué)期結(jié)束時(shí),用QQ 群的投票功能進(jìn)行問卷調(diào)查,任教班級(jí)共68 名學(xué)生參與了投票,統(tǒng)計(jì)結(jié)果如表1所示。從統(tǒng)計(jì)結(jié)果看,使用混合教學(xué)后學(xué)生實(shí)驗(yàn)的積極性明顯提高,學(xué)生參與度由原來的79.41%提高到97.06%。
Table 1 Participation questionnaire of experimental course表1 實(shí)驗(yàn)課參與度調(diào)查 (%)
2020 年秋季學(xué)期,學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程、網(wǎng)絡(luò)工程、物聯(lián)網(wǎng)工程、人工智能5個(gè)專業(yè)共15個(gè)班級(jí)的大一新生開設(shè)C 語言程序設(shè)計(jì)專業(yè)基礎(chǔ)課程,選定其中5個(gè)作為試點(diǎn)班。對(duì)C 語言程序設(shè)計(jì)課程的12個(gè)實(shí)驗(yàn)項(xiàng)目,通過對(duì)3個(gè)多月內(nèi)數(shù)據(jù)庫(kù)服務(wù)器中存儲(chǔ)的評(píng)測(cè)結(jié)果進(jìn)行分析后發(fā)現(xiàn),學(xué)生的錯(cuò)誤類型集中在語法錯(cuò)誤上,但隨著系統(tǒng)的使用,學(xué)生最終提交的代碼語法錯(cuò)誤越來越少,如圖3所示。代碼運(yùn)行成功的比率也在逐步提高,如圖4 所示。
因?qū)W院2020 級(jí)各班級(jí)學(xué)生入學(xué)分?jǐn)?shù)相差較小,選定5個(gè)試點(diǎn)班后,另外10個(gè)班作為參照班級(jí)。試點(diǎn)班級(jí)和參照班級(jí)理論教學(xué)內(nèi)容、要求基本相同,只是實(shí)驗(yàn)教學(xué)方式不一樣。從最終考試情況來看,試點(diǎn)班在期末考試中取得了較好的成績(jī)。在使用同一份試卷的情況下,將試點(diǎn)班級(jí)和參照班級(jí)卷面成績(jī)進(jìn)行對(duì)比,試點(diǎn)班級(jí)卷面平均分為75.69,比參照班級(jí)高出7.21 分,如圖5 所示。試點(diǎn)結(jié)果可在一定程度上說明采用混合式教學(xué)對(duì)學(xué)生的學(xué)習(xí),尤其是編程能力培養(yǎng)起到了較好的促進(jìn)作用。
Fig.3 Trend of syntax error number圖3 語法錯(cuò)誤數(shù)量趨勢(shì)
Fig.4 Trend of submission success rate圖4 提交成功率趨勢(shì)
實(shí)驗(yàn)課使用混合式教學(xué)的班級(jí),學(xué)生動(dòng)手能力、工程應(yīng)用能力、創(chuàng)新素養(yǎng)明顯高于其他學(xué)生。在2021 年度學(xué)院申報(bào)的12 組大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項(xiàng)目中,有8 組學(xué)生所在班的實(shí)驗(yàn)采用的是混合式教學(xué)。此外,采用混合式教學(xué)的班級(jí)學(xué)生參與教師科研項(xiàng)目的人數(shù)也比其他班多。最可喜的是,在2021 年的“藍(lán)橋杯軟件設(shè)計(jì)大賽”中,學(xué)生獲獎(jiǎng)人數(shù)也明顯高于往年,對(duì)比獲獎(jiǎng)學(xué)生名次及人數(shù),明顯發(fā)現(xiàn)采用混合式教學(xué)對(duì)學(xué)生動(dòng)手能力提升幫助非常大?!八{(lán)橋杯”獲獎(jiǎng)名次及人數(shù)與實(shí)驗(yàn)采用混合式教學(xué)的關(guān)系如圖6 所示。
Fig.5 Performance comparison between pilot class and reference class圖5 試點(diǎn)班級(jí)和參照班級(jí)成績(jī)對(duì)比
Fig.6 The relationship of the grade and number of winners with mixed teaching圖6“藍(lán)橋杯”獲獎(jiǎng)名次和人數(shù)與混合式教學(xué)的關(guān)系
學(xué)校和教師在探索實(shí)驗(yàn)教學(xué)新模式時(shí)的巨大付出換取了良好的教學(xué)效果。在課程實(shí)驗(yàn)混合教學(xué)模式設(shè)計(jì)過程中,精心設(shè)計(jì)5 種學(xué)習(xí)效果提升策略:①熟悉實(shí)驗(yàn)課程安排,助力實(shí)驗(yàn)準(zhǔn)備;②組織學(xué)生交流,激發(fā)學(xué)習(xí)興趣;③提供實(shí)驗(yàn)指導(dǎo),消除學(xué)習(xí)障礙;④通過排名,樹立學(xué)習(xí)榜樣,引發(fā)外部驅(qū)動(dòng)力;⑤鼓勵(lì)自我反思,并將它們貫穿到混合式教學(xué)活動(dòng)中。
在疫情常態(tài)化防控情況下,經(jīng)過3 輪教學(xué)實(shí)踐證明,混合教學(xué)模式不但沒有影響相關(guān)課程教學(xué),反而提高了學(xué)生學(xué)習(xí)程序設(shè)計(jì)語言的興趣,提高了學(xué)生編程水平、自主學(xué)習(xí)能力、動(dòng)手能力,增強(qiáng)了師生間的互動(dòng),并且將教師從繁重的實(shí)驗(yàn)報(bào)告批改中解放出來,從而可以將更多的時(shí)間和精力投入教學(xué)研究和學(xué)生輔導(dǎo)工作中,教學(xué)效果得到明顯提高。