苗桂君 劉勇 許南山 張靜 韓靜文
摘要:通過分析程序設(shè)計類課程教學(xué)中存在的問題及各高校在線評測系統(tǒng)的應(yīng)用現(xiàn)狀和教學(xué)模式,提出了基于北京化工大學(xué)在線評測系統(tǒng)的程序設(shè)計類課程教學(xué)模式,并將此模式應(yīng)用于北京化工大學(xué)4屆計算機(jī)科學(xué)與技術(shù)專業(yè)的課程教學(xué)中,積累了大量的實踐活動原始數(shù)據(jù)??茖W(xué)合理的數(shù)據(jù)分析證明,該教學(xué)模式取得了.良好的教學(xué)效果。
關(guān)鍵詞:在線評測;程序設(shè)計;實踐教學(xué)
0.引言
程序設(shè)計類課程具有入門難、兩極分化嚴(yán)重、實踐性強等特點,多數(shù)高校依賴計算機(jī)實驗和綜合課程設(shè)計,進(jìn)行大量編程鞏固訓(xùn)練,培養(yǎng)學(xué)生分析問題和以程序設(shè)計思想解決實際問題的能力。然而,上述實踐教學(xué)方式的教學(xué)效果并不理想,主要問題概括為以下幾個方面:
(1)程序設(shè)計類課程一般為5個班以上的大班教學(xué),1名教師要同時指導(dǎo)200名左右的學(xué)生進(jìn)行上機(jī)實驗,教師工作壓力大,監(jiān)督能力有限,且無法及時了解每名學(xué)生的實驗完成情況,沒有時間和精力對學(xué)生提交的作業(yè)一一進(jìn)行上機(jī)驗證,只能通過抽檢的方式檢查,導(dǎo)致抄襲現(xiàn)象嚴(yán)重。
(2)上機(jī)實驗教學(xué)通常是根據(jù)課堂講課進(jìn)度安排,實驗課時一般為2學(xué)時或4學(xué)時,上機(jī)時間有限,只能以對課堂理論知識的驗證和鞏固理解為目的,不能進(jìn)行有效的編程設(shè)計能力的訓(xùn)練,導(dǎo)致學(xué)生實際程序設(shè)計和調(diào)試能力差。
(3)進(jìn)行上機(jī)實驗的案例一般通過教材或課件提供,案例陳舊,不方便更新,覆蓋知識點不全,且缺乏實用性和趣味性,因而很難調(diào)動學(xué)生學(xué)習(xí)的積極性和主動性。
(4)通過上機(jī)考勤、實驗作業(yè)、課程設(shè)計報告等手段無法全面掌握和客觀評價學(xué)生的學(xué)習(xí)情況,不利于學(xué)生動手操作能力和創(chuàng)新能力的培養(yǎng)。
所以,如何滿足新時期教育發(fā)展的需求,如何提高實踐教學(xué)的教學(xué)效果,是高校教師亟待解決的問題。隨著我國教育信息化研究的不斷深入和進(jìn)程的不斷加快,各大高校紛紛將現(xiàn)代教育技術(shù)引入到實踐課教學(xué)的改革中來。為此,筆者將北京化工大學(xué)在線評測系統(tǒng)應(yīng)用到計算機(jī)科學(xué)與技術(shù)專業(yè)的程序設(shè)計類實踐教學(xué)中,提出了符合學(xué)生認(rèn)知和教學(xué)規(guī)律的教學(xué)模式,在對所收集的大量實踐教學(xué)活動原始數(shù)據(jù)進(jìn)行科學(xué)合理統(tǒng)計和分析的基礎(chǔ)上得出,該教學(xué)模式能激發(fā)學(xué)生的學(xué)習(xí)興趣,并在一定程度上提高教學(xué)質(zhì)量。
1.在線評測系統(tǒng)應(yīng)用現(xiàn)狀
在線評測(online judge,OJ)系統(tǒng),起源于ACM國際大學(xué)生程序設(shè)計競賽(ACMInternational Collegiate Programming Contest,ACMICPC),經(jīng)過ACM競賽近30年的發(fā)展,各大高校紛紛開發(fā)了屬于自己的在線評測系統(tǒng)。其中,國外知名高校的在線評測系統(tǒng)有美國弗吉尼亞大學(xué)的UVA OJ系統(tǒng)、俄羅斯薩拉托夫國立大學(xué)的SGU OJ系統(tǒng)、俄羅斯烏拉爾國立大學(xué)的URAL OJ系統(tǒng),另外還有一些國外公司開發(fā)的知名網(wǎng)站,包括TopCoder公司的TopCoder網(wǎng)站、Directi公司的CodeChef網(wǎng)站、CodeForces公司的CodeForces網(wǎng)站等。國內(nèi)知名的在線評測系統(tǒng)中,最早開發(fā)在線評測系統(tǒng)的高校是浙江大學(xué),其在線評測系統(tǒng)為ZOJ。提交次數(shù)最高的OJ系統(tǒng)是北京大學(xué)的pojE21,提交次數(shù)僅次于POJ的是杭州電子科技大學(xué)的HDOJ。其中,浙江大學(xué)的ZOJ、北京交通大學(xué)的BOJ、華中科技大學(xué)的HustOJ作為開源在線評測系統(tǒng),具有很高的實用性。另外,哈爾濱工業(yè)大學(xué)、南開大學(xué)、吉林大學(xué)、福州大學(xué)等高校也先后開發(fā)了在線評測系統(tǒng)。這些評測系統(tǒng),不僅被廣泛應(yīng)用于競賽的集訓(xùn)和程序設(shè)計類課程的教學(xué)當(dāng)中,還對外開放注冊,為其他高校的程序愛好者們提供服務(wù)。
2.基于在線評測系統(tǒng)的教學(xué)模式
目前,在線評測系統(tǒng)廣泛應(yīng)用在各大高校程序設(shè)計類課程中,其現(xiàn)有教學(xué)模式可以通過以下3個方面進(jìn)行總結(jié):實驗教學(xué)、課程范圍、教學(xué)效果評價。
在實驗教學(xué)方面,各大高校將該系統(tǒng)直接應(yīng)用于程序設(shè)計類課程的上機(jī)實驗教學(xué)。任課教師根據(jù)程序設(shè)計類課程的實驗內(nèi)容和具體要求,合理設(shè)置實驗任務(wù),新增題目或者從題庫中選擇合適的題目供學(xué)生上機(jī)練習(xí)。學(xué)生在編寫、調(diào)試完程序后,將程序提交給評測系統(tǒng)進(jìn)行判斷。評測系統(tǒng)會在后臺進(jìn)行編譯,并結(jié)合測試輸入樣例得出運行結(jié)果,與測試輸出樣例進(jìn)行比對,給出評判結(jié)果。任課教師通過系統(tǒng)可以實時了解學(xué)生的做題情況并給予指導(dǎo)。該系統(tǒng)的使用,使得教師一人可以同時指導(dǎo)幾個班級的學(xué)生一起上機(jī),大大減輕教師的工作壓力,還能避免作業(yè)抄襲現(xiàn)象。學(xué)生課后,可以繼續(xù)登錄系統(tǒng),完成未完成的實驗,保證了教學(xué)的連續(xù)性,在一定程度上,提高了教學(xué)質(zhì)量。
在課程范圍方面,該系統(tǒng)的應(yīng)用主要集中在C/C++語言的教學(xué)上,對C/C++語言的教學(xué)質(zhì)量有很大提高。而對于其他計算機(jī)專業(yè)相關(guān)的課程,例如數(shù)據(jù)結(jié)構(gòu)、編譯原理、計算機(jī)組成原理、數(shù)據(jù)庫原理等很少涉及。
在教學(xué)效果評價方面,各大高校一般使用課程平均成績的對比數(shù)據(jù)或者調(diào)查報告的形式來評測其教學(xué)效果,沒有進(jìn)行更科學(xué)有力的數(shù)據(jù)分析,不能有效說明對學(xué)生編程能力的提高是否有實質(zhì)性的幫助。
3.本校實例
3.1北京化工大學(xué)在線評測系統(tǒng)
為了收集一手的實踐教學(xué)研究數(shù)據(jù),我校于201 1年基于改進(jìn)的開源系統(tǒng)HustOJ開發(fā)了北京化工大學(xué)在線評測系統(tǒng)(online judge system ofBUCT),主要用于參加ACM競賽的隊員集訓(xùn)、校內(nèi)周賽、跨校區(qū)組織的月賽以及我校程序設(shè)計類課程的實踐教學(xué)中。
北京化工大學(xué)在線測評系統(tǒng)使用php語言開發(fā),后臺數(shù)據(jù)庫使用MySQL,采用B/S架構(gòu),主要系統(tǒng)模塊包括系統(tǒng)維護(hù)、題庫管理與訓(xùn)練、實時狀態(tài)與排名、競賽及作業(yè)管理、名校聯(lián)賽、北化程序員論壇、數(shù)據(jù)統(tǒng)計等,評測系統(tǒng)的主界面如圖1所示。該系統(tǒng)支持C/C++、c#、Pascal、Java、Python、VB等常用編程語言。在使用過程中,筆者非常注重題庫的管理,經(jīng)過不斷豐富和完善,系統(tǒng)題庫現(xiàn)有題目1600多道,題目類型涵蓋了數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計與分析、C/C++語言程序設(shè)計、Java語言程序設(shè)計、程序設(shè)計實訓(xùn)、ACM/ICPC程序設(shè)計方法與實踐等幾門課程的主要知識點。并為滿足不同水平學(xué)生的練習(xí)需求,將題庫題目按難度系數(shù)劃分為5個等級,在一定程度上激發(fā)了學(xué)生對程序設(shè)計類課程的學(xué)習(xí)興趣。
其中,數(shù)據(jù)統(tǒng)計模塊使用數(shù)據(jù)可視化技術(shù),從數(shù)據(jù)庫中獲取有意義的數(shù)據(jù),通過highcharts、thinkphp等技術(shù)將數(shù)據(jù)分析結(jié)果進(jìn)行圖形化展示,從而可以更直觀的了解學(xué)生在線評測系統(tǒng)的使用情況。
3.2OJ系統(tǒng)在我校的應(yīng)用
經(jīng)過近4年的教學(xué)實踐,我校已形成一整套基于在線評測系統(tǒng)的程序設(shè)計類課程的教學(xué)方案,具體包括實踐教學(xué)、教學(xué)效能、考核評價機(jī)制、激勵機(jī)制4個方面。
3.2.1實時評測、反饋調(diào)控的互動實踐教學(xué)模式
系統(tǒng)管理員在開學(xué)初將每屆的學(xué)生信息導(dǎo)人到評測系統(tǒng),根據(jù)學(xué)號生成相應(yīng)的用戶賬號。任課教師可以通過評測系統(tǒng)的狀態(tài)顯示功能,查看學(xué)生的做題情況,實時跟蹤學(xué)生的做題進(jìn)度,對學(xué)生做題過程中遇到的共性問題給予針對性的講解和及時指導(dǎo),還可對排名靠后的學(xué)生進(jìn)行重點輔導(dǎo)。為適應(yīng)不同層次學(xué)生的學(xué)習(xí)需求,教師可以根據(jù)學(xué)生的知識掌握情況,及時調(diào)整實驗任務(wù)的難度和數(shù)量,進(jìn)行題目的分級分類,從而達(dá)到有效反饋、合理調(diào)控、提高課堂教學(xué)效果的目的。
3.2.2簡化作業(yè)批改,提高教學(xué)效能
教師把課后作業(yè)題目掛到在線評測系統(tǒng)上,設(shè)置好起止時間,學(xué)生通過在線評測系統(tǒng)按時間要求進(jìn)行作業(yè)提交,系統(tǒng)會統(tǒng)計出每道題目的提交次數(shù)、提交通過的題目數(shù)量及所使用的編程語言,對本次作業(yè)的完成情況進(jìn)行排名,并可導(dǎo)出到Excel文件進(jìn)行備案。教師可以方便地獲取到所有學(xué)生每道題目的做題情況,記錄總結(jié)學(xué)生遇到的典型問題,在課堂教學(xué)中進(jìn)行針對性講解。在線評測系統(tǒng)的使用,簡化作業(yè)批改,使教師可以注重教育教學(xué)及自身素質(zhì)的提高,從而提高教學(xué)效能。學(xué)生提交作業(yè)后,系統(tǒng)會快速給出評判結(jié)果,及時得知作業(yè)完成情況,即可進(jìn)行后續(xù)修改與再次提交,與傳統(tǒng)收發(fā)作業(yè)的模式相比,這種方式科學(xué)運用了生物心理學(xué)的規(guī)律,既縮短了反饋周期,又能激發(fā)學(xué)生的學(xué)習(xí)潛能和學(xué)習(xí)熱隋。
3.2.3公平客觀的考核評價機(jī)制
加大實踐考核力度,使用在線評測系統(tǒng)進(jìn)行實驗課考核,操作實施方便,評判結(jié)果公正客觀。學(xué)生通過使用在線評測系統(tǒng),可實現(xiàn)對每次考核內(nèi)容的系統(tǒng)化管理,發(fā)現(xiàn)當(dāng)前課程學(xué)習(xí)的薄弱部分,主動彌補。每次考核都會給出系統(tǒng)排名,可使學(xué)生意識到學(xué)習(xí)差距,從而能對自身提出更高要求,調(diào)動學(xué)生學(xué)習(xí)積極性。
3.2.4創(chuàng)建科學(xué)合理的學(xué)習(xí)激勵機(jī)制
評測系統(tǒng)會根據(jù)提交通過題目數(shù)量、提交通過比率給出總排名,從而鞭策落后的學(xué)生努力追趕,激勵名列前茅的學(xué)生努力保持。另外,在每門課的教學(xué)中,設(shè)立“正確題目最多獎”“正確率最高獎”“通過高難度題目最多獎”;以宿舍為單位,統(tǒng)計每個宿舍完成題目數(shù)量進(jìn)行排名;將ACM競賽機(jī)制引入實踐課教學(xué)中,每學(xué)期開展花樣程序設(shè)計類競賽,如課程月賽、周賽、以慶祝某個節(jié)假日為由的節(jié)日賽等。通過以上不同形式的激勵,激發(fā)學(xué)生的學(xué)習(xí)動力,引導(dǎo)學(xué)生培養(yǎng)良好的學(xué)習(xí)習(xí)慣,形成積極向上的學(xué)習(xí)氛圍,從而促進(jìn)教學(xué)質(zhì)量的提高。
4.教學(xué)效果分析
在2011-2014共4屆學(xué)生的程序設(shè)計類實踐教學(xué)中,“數(shù)據(jù)結(jié)構(gòu)”“編譯原理”“計算機(jī)科學(xué)導(dǎo)論”“操作系統(tǒng)原理”等課程的實踐課教學(xué)先后被納入在線評測系統(tǒng)中。下面將對2015年5月份之前的實踐教學(xué)數(shù)據(jù)進(jìn)行詳細(xì)對比分析。
4.1各年級做題提交情況對比
各年級做題提交情況對比如表1所示,其中2013級的提交次數(shù)最多,正確率最高,對評測系統(tǒng)的使用效果最好,2011級和2012級由于教學(xué)模式未完全轉(zhuǎn)變,對評測系統(tǒng)處于初步嘗試階段,2014級由于使用時間較短,故提交次數(shù)偏低。
4.2一年中不同月份做題提交情況分析
圖2列出了2013年和2014年2年中不同月份提交總次數(shù)變化規(guī)律,由圖2可看出,2013年該曲線變化情況為:1-4月、8-12月,隨著課程教學(xué)的不斷深入,提交總次數(shù)呈逐漸上升趨勢,但是5、6月份由于學(xué)生準(zhǔn)備期末考試,提交總次數(shù)下滑,8月份由于是暑假,學(xué)生做題積極性不高。總結(jié)2013年做題提交情況,2014年學(xué)校調(diào)整教學(xué)和考核方案,加大實踐課教學(xué)力度,并將在線評測系統(tǒng)應(yīng)用于小學(xué)期實踐教學(xué)中,所以5、6月和10月的做題提交總次數(shù)達(dá)到峰值。
4.3各班級男女生做題提交情況對比
圖3為計科2013級6個班級男女生的做題情況匯總。其中,每個班的總學(xué)生數(shù)和男女生比例相近,但卻呈現(xiàn)出不同的提交情況分布。據(jù)調(diào)查,2班的班主任曾引導(dǎo)2班學(xué)生利用課余時間在系統(tǒng)上做題,所以2班提交總次數(shù)最多,達(dá)8823次,整體編程水平也較強。由圖3可見,6個班級中,男生提交總次數(shù)為28028次,女生提交總次數(shù)為10782次,由于計科班級中,男女生比例大約為3:1,整體來說,男女生提交次數(shù)之比大約為2.55:1,女生平均提交次數(shù)略高于男生,可見,通過使用在線評測系統(tǒng),女生的動手實踐能力也得到提高。
4.4各宿舍做題人的提交情況對比
圖4將計科2013級學(xué)生以宿舍為單位,列出了28個宿舍的做題人均提交情況。由圖4可以看出,人的提交次數(shù)超過400次的有5個宿舍,其中人的提交次數(shù)最多的達(dá)720次,經(jīng)過調(diào)查統(tǒng)計得知,這些宿舍有學(xué)生參加ACM/ICPC或者“藍(lán)橋杯”軟件大賽,因為個別學(xué)生對編程的愛好而引發(fā)整個宿舍學(xué)生的學(xué)習(xí)熱情。所以,建議學(xué)校在大一學(xué)年結(jié)束時,可根據(jù)所有學(xué)生做題提交情況,合理調(diào)配宿舍成員,以一帶多、相互促進(jìn)、共同提高,豐富學(xué)生日常學(xué)習(xí)生活,激發(fā)學(xué)生團(tuán)隊意識,從而達(dá)到提高整個寢室學(xué)習(xí)狀況的效果。
4.5課程總成績、績點與提交次數(shù)關(guān)系分析
圖5列出了計科2012級數(shù)據(jù)結(jié)構(gòu)和編譯原理2門課程的期末總成績、績點與提交次數(shù)之間的關(guān)系。由圖5可看出,提交次數(shù)與課程總成績、績點曲線變化基本一致,大致成正比關(guān)系,學(xué)生做題的提交次數(shù)越多,課程成績越高,績點越高,反之亦然。該圖進(jìn)一步驗證了在線評測系統(tǒng)的應(yīng)用能有效提高程序設(shè)計類課程的教學(xué)質(zhì)量和教學(xué)效果。
4.6提交通過的題目數(shù)量與各科成績相關(guān)性對比
公式中:COV為協(xié)方差;σx、σy為標(biāo)準(zhǔn)差;E為數(shù)學(xué)期望;變量x、y分別為所有學(xué)生提交通過的題目數(shù)量與各科考試成績或平均學(xué)分統(tǒng)點。
由圖6可見,ACM/ICPC程序設(shè)計方法與實踐、編譯原理、Linux/Unix編程基礎(chǔ)、計算機(jī)科學(xué)導(dǎo)論、數(shù)據(jù)結(jié)構(gòu)等專業(yè)核心課程,期末成績與提交通過的題目數(shù)量的相關(guān)系數(shù)較大,故兩者相關(guān)性較大,而數(shù)據(jù)倉庫與數(shù)據(jù)挖掘、數(shù)據(jù)庫原理、計算機(jī)組成原理、操作系統(tǒng)原理等課程的相關(guān)系數(shù)太小,表示兩者相關(guān)性小。數(shù)據(jù)倉庫與數(shù)據(jù)挖掘課程是大一第二學(xué)期開設(shè)的,學(xué)生在上課的時候普遍沒有編程基礎(chǔ),該課成績與在線評測系統(tǒng)提交通過的題目數(shù)量相關(guān)性不大。數(shù)據(jù)庫原理、計算機(jī)組成原理等課程由于題庫中的相關(guān)習(xí)題較少,學(xué)生做題量小,故相關(guān)性較小。所以后續(xù)需要繼續(xù)豐富相關(guān)課程在線評測系統(tǒng)的題庫,根據(jù)課程內(nèi)容設(shè)置相應(yīng)的題目,發(fā)揮在線評測系統(tǒng)在這些課程中的作用,實現(xiàn)評測系統(tǒng)在上述課程中的全面應(yīng)用。
通過此相關(guān)系數(shù)還可看出,學(xué)生提交通過的題目數(shù)量越多,編程能力越強,課程成績越好,故在教學(xué)中需大力引導(dǎo)學(xué)生注重編程基礎(chǔ),提高動手實踐和編程操作能力。
5.結(jié)論
經(jīng)過4屆學(xué)生的教學(xué)實踐證明,文中提出的基于我校在線評測系統(tǒng)的程序設(shè)計類課程的教學(xué)模式,取得了良好的教學(xué)效果。但是教師的宏觀把控和引導(dǎo)監(jiān)督作用不可忽視,雖然在線評測系統(tǒng)的應(yīng)用將學(xué)生的學(xué)習(xí)由被動接受轉(zhuǎn)向自主學(xué)習(xí),但不能過分依賴系統(tǒng),如果缺乏教師適時地引導(dǎo)監(jiān)督,容易導(dǎo)致學(xué)生缺乏創(chuàng)新、過度自我管理或者學(xué)習(xí)隔靴搔癢、流于形式等問題。在此基礎(chǔ)上,如何充分發(fā)揮在線評測系統(tǒng)的教學(xué)應(yīng)用價值還需要進(jìn)一步研究。希望本文的研究成果能為各高校程序設(shè)計類課程的教師提供幫助和參考。