線上評判在資料結構實踐教學中的應用論文
線上評判在資料結構實踐教學中的應用論文
1背景
資料結構是計算機及相關學科的核心課程,教學環節包括理論教學與實踐教學。實踐教學不僅是幫助學生理解基本的資料結構及實現方法,培養學生演算法設計和實現能力的主要教學環節,更是培養學生實踐探索興趣、科學研究素養、工程創新能力、團隊協作精神的重要手段。在教育部實施的“高等學校教學質量與教學改革工程中,提出要“高度重視實踐環節,提高學生實踐能力”,並透過重點建設一批國家級實驗教學示範中心,大力推進實驗內容和實驗教學模式的改革和創新。隨著國家對高等教育資金投入的不斷增加,高校實驗室的裝置和環境得到了極大的改善。然而,良好的實驗裝置和環境與實驗教學質量並未成正比,資料結構課程的實踐教學就是其中的一個薄弱環節,學生動手能力差,教師考核難,其原因在於實驗教學內容、實驗教學手段、實驗考核方法不能適應大眾化教育。存在的問題主要有:學生的程式設計能力較弱,影響了資料結構實現能力的訓練;實驗學時有限,師資相對不足,學生不能得到及時有效的指導,難以在有限的學時內完成實驗任務;考核方式落後,達不到評價與激勵的作用等。將線上評判應用於資料結構課程的實踐教學,有利於改善實踐教學環境,提高實踐教學質量。
2基於線上評判的資料結構實踐教學設計
線上評判(online judge)基於Web工作模式,允許使用者線上提交程式碼,自動進行編譯、執行,給出評判結果,將其用於程式設計類課程的實踐教學,可以不受時間和空間的限制,隨時學習與實踐,並得到實踐結果,既方便學習者實踐,也提高過程的監控力度、減輕教師的工作負擔。針對資料結構課程實踐教學中存在的實驗時間不足、考核結果不客觀等問題,我們將線上評判應用於資料結構實踐課程,借鑑ACM(association for computing machinery)競賽模式,對實踐教學的內容、方式方法、考核模式等進行改革,堅持“以學生為本”的教學理念,分層次設計實踐教學內容;開放實驗的時間和空間,變目標考核為過程考核,加強師生之間、學生之間的交流;不定期組織程式設計競賽,以個性化培養為基礎,以創新精神、實踐能力培養為目標,充分調動學生參與實踐的積極性,賽學結合,因材施教,提高資料結構課程的實踐教學效果。
2.1研發實驗教學軟體“資料結構實驗平臺”
國內已有成熟的線上評判軟體,如北京大學的“PKU Judge Online”、浙江大學的"ZOJ",這些軟體建立了豐富的題庫資源,學生可以自由註冊、自主選擇題目進行練習和訓練,對提高學生的演算法設計與實現能力有著巨大的作用。但是這些軟體更適用於競賽,如果直接拿來用於資料結構的實驗教學,題庫的題目難度過大,而且學生要透過所有的測試資料並且在規定的時空範圍內,才能得到正確的評判。這種非成功即失敗的.評判方式不適合初學資料結構課程的學生。對於初學者,程式碼設計考慮不周全是常態,上述評判方式會使學生不知所措,而且過多考慮演算法的效率、邊界等問題,也不利於學生把注意力放在核心演算法的實現上,不符合學生的認知規律,甚至會使學生失去學習與實踐的信心。
基於線上評判開發資料結構實驗平臺,功能應包括題庫維護、學生管理、資料結構實驗、資料結構考試、程式設計競賽、抄襲檢測、成績分析、論壇、排行榜等。該實驗平臺既能用於資料結構的實驗教學、考試,也能用於程式設計競賽,其核心功能是對學生提交的程式碼線上評判,提供多組測試資料,根據透過測試資料的組數,評判學生的實驗或考試成績,使學習與訓練循序漸進、逐漸提高。由於線上評判,學生能立即知道自己的實驗結果,有問題可以在論壇留言,教師和學生都可以解答,部分解決了教師不足、指導不到位的問題。其中,排行榜按學生獲得正確結果的題目數排序,給學生以良性刺激,使學生學有幹勁,趕有目標,既有壓力,也有動力,積極參與實驗與競賽。
2.2開放實驗教學平臺
“資料結構實驗平臺”不僅應用於平時集中的實驗教學,也24小時對學生開放,只要有瀏覽器,能夠登入校園網,均可以學習、訓練、答疑、討論、測試,擴充套件了實驗的時間和空間。透過檢視平臺上學生的實驗記錄,可以看出學生的參與率達到了98%。平臺調動了學生的學習興趣和自主學習意識,為學生營造了一個全天候的資料結構與程式設計實踐環境,使學生能夠隨時上機實驗並及時獲得實驗結果,隨時提出問題並得到解答。由於實驗平臺開放,學生有足夠的訓練時間,能透過循序漸進的實驗體驗到進步與成功,增強自信心,逐步提高程式設計能力、計算思維能力、實踐能力與創新能力,解決實驗時間不足的問題。
學生透過“資料結構實驗平臺”進行實驗,其學習行為與實驗過程及結果都保留在平臺上,有助於教師分析學生的個體學習策略和協作學習策略,總結學生的基本學習和實踐活動。在此基礎上,能規範教師的基本教學活動,改變傳統的實踐教學管理模式。以學生為中心、以線上評判系統為工具,可以為學生提供集中和開放相結合的實踐教學環境;在實驗室集中輔導,能面對面解決學生實驗中的問題;開放環境不限時間、地點,學生隨時可以透過"資料結構實驗平臺"選擇實驗專案完成實驗,並利用線上評判系統對實驗結果進行測試,同時利用平臺的交流工具得到幫助和指導,解決實驗指導力度不夠的問題。
2.3按類、分層次設計實驗內容
學習者的認知能力是有差異的,教育工作者必須承認並尊重智力差異,才能採取有效的措施,使受教育者都能得到最大的提高,教育效率達到最大化。在資料結構課程的實驗教學中,應建立有層次、有梯度的實驗與考核專案庫。有層次指將其分為驗證型題目、設計型題目,如線性表的實驗,分為兩類題,一類是線性表的順序儲存結構與實現及鏈式儲存結構與實現,屬於驗證型題目,一類是集合的交、並集運算,即應用線性表解決實際問題,屬於設計型題目。每一個教學層次應準備多道參考選題。有梯度指同一層次的題目有不同的考核指標。“資料結構實驗平臺”改變ACM競賽平臺非對即錯的評判方法,將測試資料分為多組,包括理想資料、邊界資料、特殊資料等,根據學生提交的程式碼透過測試資料組數,評定學生的考試成績,只有透過全部測試資料才能得到滿分。題目的分層與評判的梯度性符合學生的認知規律,使學生能依據自己的知識水平和實踐能力,有計劃、循序漸進地在實踐中得到提高,保證了資料結構實踐教學的質量。
2.4組織程式設計競賽
競賽是課外延伸訓練,貫穿教學始終,目的是使學有餘力的學生與校內、校外學生同臺競技,既增加了學習的趣味性,也培養了學生的創新精神,鍛鍊了學生的挑戰能力。由師生共同研發與維護的線上評判系統(Judge Online),從各高校的ACM題庫中選取適合本校學生的題目,也自主設計一些題目供學生練習,並給予學生一定的指導。學生可以自主地選擇並完成若干道題目。透過開放的線上評判系統,學生可以自主練習,也可以參加院內組織的競賽,還可以透過競賽選拔“基礎紮實、具有潛力”的優秀學生參加國內組織的ACM競賽,既提高學生的程式設計能力、演算法設計能力、英語閱讀能力,也加強校際間的合作與交流,使“課程與競賽”形成良性的互動迴圈機制。
2.5全程實驗考核
線上評判資料結構的實驗結果,一方面實現了資料結構實驗與程式設計題的自動批閱,解決了資料結構實驗考核中演算法設計題閱卷強度大、主觀性強的問題,另一方面在資料結構課程的實驗教學中,可以線上評判程式的正確性,解決了學生人數多,教師不能檢查所有學生的程式程式碼而影響實驗教學進度的問題。由於程式自動評判的效率很高,使得過程考核成為可能,透過實驗平臺提供的抄襲檢測功能,能夠在一定程度上解決抄襲的問題。通常按知識點將實驗分為6個單元,分別是線性表、棧與佇列、樹與二叉樹、圖、查詢、排序,實驗與理論課程同步進行。每一單元都設定開始時間與結束時間,學生必須在結束時間之前完成實驗。考核分為4個階段,即線性表、樹與二叉樹、圖、查詢與排序,實驗考核在相應的實驗結束之後進行,4個階段的考核成績合計作為實驗課考核成績,最終併入課程的考核總成績。由於採取全過程實踐教學考核模式,學生必須注重平時的實踐訓練,聚沙成塔,才能順利透過考核。全過程考核能夠比較真實地考核學生的實踐能力,有利於培養學生的自我約束能力和自我管理能力,解決了實驗考核結果不客觀的問題。
3結語
經過多年的教學實踐,線上評判應用於資料結構課程的實踐教學,教學效果有顯著的提高,也得到了大多數學生的認可。“資料結構實驗平臺”為學生營造了一個全天候的實踐環境,使學生能夠隨時學習與實踐,壓力適度、階梯遞進、自主互動,逐步提高了演算法設計與實現能力。近年來,學校有30%以上的學生獲得“挑戰杯”、ACM、數學建模等省級以上競賽獎勵;35%的學生參加大學生創新創業訓練計劃專案;學生第一作者發表論文多篇。今後我們要依據"最近發展區"理論,關注學生的個體差異,以學生為本,修改和完善實驗專案庫和考核專案庫,使之層次分明、梯度合理,為提高資料結構及程式設計課程的實踐教學質量不斷探索與實踐。