杜祥軍,李建波,李 敏,張永進
(1.青島大學 計算機科學技術(shù)學院,山東 青島 266071;2. 青島大學 教務(wù)處,山東 青島 266071)
工程教育、新工科建設(shè)為當前我國高等教育的改革與發(fā)展提供了指引。工程教育注重“成果導向”(Outcome-based Education, OBE),即“以學生為中心、以學生學習產(chǎn)出為導向”的理念[1]。為促進工程教育與新工科建設(shè),教育部發(fā)布了《普通高等學校本科專業(yè)類教學質(zhì)量國家標準》,該標準突出“以學生中心”“產(chǎn)出導向”“持續(xù)改進”三大原則。
MOOC(Massive Open Online Course,大規(guī)模在線開放課程)是一種基于互聯(lián)網(wǎng)、以開放訪問和大規(guī)模參與為手段、以學習者為中心、針對動態(tài)發(fā)展的學習內(nèi)容、通過在線交流提供全面及時的學習反饋的免費開放網(wǎng)絡(luò)課程[2]。其中,學習者自身是內(nèi)在動力,學習效果的評價是其關(guān)鍵問題。在線考試平臺是實現(xiàn)學習過程、學習成果管理的有效途徑,主要包含兩個方面:一是通過云平臺、大數(shù)據(jù)技術(shù)對教學過程中學習者的學習行為、學習過程、學習表現(xiàn)等進行詳細的記錄分析,基于即時產(chǎn)生各種類型的大量數(shù)據(jù)實現(xiàn)對教學過程的監(jiān)控和評價;二是建立統(tǒng)一的學科考試題庫,實現(xiàn)在線考試。
上述工程教育認證、新工科建設(shè)、MOOC分別從宏觀理念和實際實施兩個不同維度對以學習者為中心、成果導向的考核認證機制與教學過程評價提出了較高要求。教學評價是依據(jù)教學目標,按照科學的標準,運用有效的技術(shù)手段,對教學過程及結(jié)果進行價值判斷并為教學決策服務(wù)的活動,是對教學活動現(xiàn)實的或潛在的價值作出判斷的過程。教學評價一般包括對教學過程中教師、學生、教學內(nèi)容、教學方法手段、教學環(huán)境、教學管理諸因素的評價,但主要由兩個核心環(huán)節(jié)組成:其一是對教師教學工作過程(教學設(shè)計、組織、實施等)的評價,其二是對學生學習效果的評價(考試與測驗)。在工程教育理念中,目標、需求、過程、評價、改進是5個最關(guān)鍵的問題。然而,傳統(tǒng)的考核方式僅從教學階段和狀態(tài)出發(fā),通過階段性考試考查學習者在本階段的學習成果[3],雖然教學目標和需求可以明確,但卻難以實現(xiàn)對學習者學習過程的評價,難以支撐以學習成果驅(qū)動整個教學活動和成果評價的教學模式。
Online Judge(OJ)是一種使用計算機程序進行自動判題的技術(shù),通常基于B/S結(jié)構(gòu)實現(xiàn)。瀏覽器端向用戶提供問題描述、程序設(shè)計選項與環(huán)境、程序評測結(jié)果與統(tǒng)計信息等內(nèi)容,服務(wù)器端則對用戶提交的程序進行編譯、生成可執(zhí)行文件,并調(diào)用測試數(shù)據(jù)評測程序運行的正確性、消耗時間與內(nèi)存以及其他結(jié)果信息?;贠J技術(shù)研發(fā)的系統(tǒng)最初被應(yīng)用于ACM/ICPC國際大學生程序設(shè)計競賽和OI信息學奧林匹克競賽,因其能夠?qū)崿F(xiàn)對多種語言編寫的程序在線評測,且提供了友好的界面和豐富的統(tǒng)計信息,現(xiàn)廣泛應(yīng)用于學生編程能力的訓練、程序設(shè)計類課程的在線考核與測驗、程序設(shè)計類競賽的評測與排名等[4],形成了一些特色的教學模式[5]。
QDUOJ(Qingdao University Online Judge)是為支撐青島大學程序設(shè)計類課程教學實踐與競賽訓練而專門設(shè)計的OJ系統(tǒng),該系統(tǒng)參考了多個著名OJ平臺的功能,集成了信息學競賽的評測方式。
教學評價是推動教學研究的重要方面,是促進教學改革的重要抓手。OJ系統(tǒng)中設(shè)計的多項核心指標對于教學內(nèi)容、教學過程與教學效果的評價具有重要意義。
題目是課程、教學模塊、知識點的重要反映。傳統(tǒng)教學的組織,包括教師課堂授課與實驗教學等多個環(huán)節(jié),通常以知識點為單位進行劃分。在線開放課程的教學組織則更加強調(diào)知識的碎片化,建立在知識碎片化基礎(chǔ)上的微課是實現(xiàn)在線開放課程的基礎(chǔ)。另一方面,教學過程中知識點的體系化與系統(tǒng)化也是工程教育中知識圖譜或課程矩陣構(gòu)建的基礎(chǔ)。分析碎片化知識點間的相互關(guān)聯(lián),形成體系化的教學模塊,進而實現(xiàn)與教材一致的教學內(nèi)容結(jié)構(gòu),有利于學習者系統(tǒng)地了解并掌握教學內(nèi)容的組織和課程進度的安排,并能夠從整體上把握所學課程的知識與能力要求。
在QDUOJ中,除傳統(tǒng)的題目信息(包括標題、問題描述、輸入輸出要求與示例、時間空間復雜度限制、來源等)外,還設(shè)計了題目可支持的實現(xiàn)語言(Allowed Language)、題目所屬的知識點標記(Course/Blocks/Key Points)、題目難度(Dif fi culty)、評測方式(Judge Type)、參考代碼(Code Template)等指標。其中,系統(tǒng)通過集成多種語言的編譯器,實現(xiàn)了對C、C++、Java、Python 4種程序設(shè)計類課程常用語言的支持。通過分層次的標記實現(xiàn)與課程、教學模塊、知識點的銜接,教師可以使用該項指標以題目的方式實現(xiàn)對課程教學內(nèi)容的組織。進而,對不同知識點、教學模塊、課程,均可設(shè)置3種難度級別。通過題目標記與難度的結(jié)合,可以實現(xiàn)對教學內(nèi)容的有機覆蓋。此外,系統(tǒng)還設(shè)計了OI和ACM兩種評測方式,前者通過逐項測試數(shù)據(jù)并返回評測結(jié)果,為學習者漸進性地練習程序設(shè)計、熟悉知識點提供幫助,后者則通過整體性的測試數(shù)據(jù),為學習效果的評價提供支撐,而參考代碼指標則可以為初學者提供問題解決思路。
進而,依據(jù)對上述知識點、難度、語言、數(shù)量等指標的分析和調(diào)整,可以設(shè)計有針對性、以問題求解為驅(qū)動、注重實踐的計算機類課程教學內(nèi)容體系。通過增加對應(yīng)重要知識點的題目數(shù)量和難度,可以引導學習者注重學習的重點;通過模塊或課程完善知識點的覆蓋、銜接與難度設(shè)計,可以實現(xiàn)教學內(nèi)容的體系化與系統(tǒng)化;通過知識點、難度、語言的綜合設(shè)計,可以實現(xiàn)對知識圖譜與課程矩陣的支撐;通過對題目對應(yīng)知識點、難度、語言、數(shù)量等指標的分布統(tǒng)計,可以實現(xiàn)對教學內(nèi)容的量化評價。
提交是學習者選用特定語言編寫并上傳針對具體題目代碼的過程,該過程涉及用戶、題目兩個功能模塊,可從時間、知識點、難度、數(shù)量等多個角度有效反映學習者的學習過程[6]。其中,不同題目提交時間的分布可以評價學習者學習的主動性以及對不同知識點的興趣度,不同題目提交數(shù)量的分布可以評價學習者對于不同知識點的熟練度,提交對應(yīng)題目的難度分布、時間內(nèi)存消耗、代碼長度等可以評價學習者的編程水平與利用程序設(shè)計解決問題的能力。
評測是系統(tǒng)將用戶提交的代碼進行編譯生成可執(zhí)行文件,并將其置于沙箱中,然后基于測試數(shù)據(jù)以黑盒測試的方式對其測試并返回測試結(jié)果的過程[6]。該過程的實現(xiàn)是OJ系統(tǒng)的關(guān)鍵技術(shù)問題?;镜臏y試結(jié)果包括編譯錯誤(CE)、運行錯誤(RTE)、答案錯誤(WA)、系統(tǒng)錯誤(SE)、運行超時(TLE)、運行超內(nèi)存(MLE)、評測成功(AC)7種,而對這些結(jié)果進行統(tǒng)計并結(jié)合提交情況還可得到特定題目是否AC、是否1K、錯誤提交數(shù)、罰時等,還有所有題目總AC數(shù)、AC率、1K率(1次提交即評測成功)、總提交數(shù)、總耗時等?;趯@些評測結(jié)果的計算與統(tǒng)計分析,可以得到不同形式的排名,可以實現(xiàn)對學習者的成績考核,進而可以實現(xiàn)對教學效果的量化評價。此外,在QDUOJ系統(tǒng)中,還設(shè)計實現(xiàn)了OI評測,這種評測方式對學習者漸進地學習知識點具有重要作用,并可針對每個知識點給出測試數(shù)據(jù)的評測成績,對于量化評價教學效果具有更為直接的作用。
基于上述提交與評測結(jié)果,教師既可以實現(xiàn)對每個學習者學習全過程的縱向評價,掌握每個學習者過程中的主動性、興趣度、重難點與能力水平等,還可以按照課程進度針對知識點模塊(教學模塊或章節(jié))設(shè)置有針對性的練習或考核,通過題目數(shù)量、難度、時間等指標的設(shè)置,對學習者進行統(tǒng)一的訓練或考核,進而,可以橫向分析評價所有學習者的學習效果,為教學內(nèi)容、教學進度的調(diào)整提供輔助。
綜上所述,基于QDUOJ核心指標設(shè)計的上述評價方法具有面向教學過程、以學習者為中心、可量化、評測公正且響應(yīng)迅速、注重實踐與解決問題能力培養(yǎng)等典型特征,對于計算機類課程的教學組織、教學考核等具有良好的支撐作用。
研究與實踐表明,Online Judge系統(tǒng)的構(gòu)建與應(yīng)用對于程序設(shè)計類競賽與相關(guān)課程教學具有重要支撐作用。
一方面,課題組將QDUOJ應(yīng)用到了藍橋杯全國軟件和信息技術(shù)專業(yè)人才大賽、ACM程序設(shè)計競賽、中國高校計算機大賽團體程序設(shè)計競賽、中國大學生程序設(shè)計競賽等的日常訓練中,并基于該系統(tǒng)組織了多場旨在以賽促教、賽教結(jié)合的校級賽事,例如“易途杯”青島大學編程大賽等。在推進學科競賽水平逐步提高的同時,課題組持續(xù)完善該系統(tǒng)的指標體系,不斷升級系統(tǒng)版本,并在開源平臺Github上進行了發(fā)布。目前,該系統(tǒng)的前期版本已被多所院校采用(如SHU OJ,上海大學Online Judge),對這些院校的程序設(shè)計類競賽與教學起到了良好的支撐作用。
另一方面,以上述QDUOJ系統(tǒng)指標體系的構(gòu)建為基礎(chǔ),課題組將基于Online Judge的教學評價方法應(yīng)用到青島大學計算機類課程的教學中,對于促進課程體系建設(shè)、教學改革與研究均起到了良好的促進作用。例如,在高級程序設(shè)計語言教學中,課題組針對新生設(shè)計了多種評測方式的在線訓練與考核,實現(xiàn)了平時作業(yè)的自動評測與實驗教學的量化評價。在短時間高密度集中開設(shè)的計算機創(chuàng)新創(chuàng)業(yè)實踐的教學中,課題組為選課學生設(shè)計了多套訓練題目,要求根據(jù)每天所講內(nèi)容限時完成1套訓練題目。每套訓練題目既與上一套題目存在部分知識點的重疊,也包含對應(yīng)當天所講知識點的題目。訓練題目的難度整體上螺旋上升。授課教師每天上午講解新知識點,下午分析最近結(jié)束的訓練題目的評測結(jié)果,對每位學生的學習情況作出考核評價,進而安排后續(xù)課程的講解進度以及訓練題目的知識點與難度分布。最后,在課程結(jié)束時,統(tǒng)計分析每位選課學生歷次訓練的評測排名,給出加權(quán)成績,并以此作為課程最終成績。實踐表明,這種授課方式極大地調(diào)動了學生學習的積極性,深受學生的歡迎,選課學生成倍增長。
QDUOJ在程序設(shè)計類學科競賽與課程教學兩方面的應(yīng)用實踐表明,Online Judge系統(tǒng)能夠為程序設(shè)計類課程的教學組織與在線考核提供良好的支撐,以QDUOJ為基礎(chǔ)構(gòu)建的指標體系與教學評價方法可廣泛適用于眾多計算機類課程,形成了以學習者為中心、面向教學過程、評測公正且響應(yīng)迅速、注重實踐與解決問題能力培養(yǎng)、可量化的新型教學評價模式。