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