劉偉煒 黃勝
湖南涉外經濟學院 湖南 長沙 410205
在傳統的大學教學體系中,一直都以C/C++或者Java作為教學語言。誠然,它們依然是當今使用人數最多的語言,但隨著人工智能、大數據分析等領域的發展,Python成為這些領域應用的最佳選擇。
Python由吉多·范羅蘇姆(Guido van Rossum)于1989年底發明,目前已被應用于很多領域,被諸多高校選定為學生的程序設計入門語言。Python是一種解釋型的高級語言,具備交互式、可移植、面向對象的特點,相較于傳統語言更加簡潔、易讀、可擴展。Python相關課程的實踐性很強,但一直以來高校課堂的教學往往不自主地偏向理論,不利于培養學生的動手實踐能力,無法使學生充分理解和把握Python的知識點。
在傳統的課堂教學模式中,側重方在于老師。這種模式存在以下幾個問題:
不利于課堂的教學質量,老師單方面地進行知識輸出,使學生處于被動接受的一方,學生不僅容易產生學習疲勞而且沒有及時進行知識輸出,導致知識消化吸收不及時。
無法有效支持課后教學。學生在課后的自學實踐之中往往存在大量疑難問題,而每節課程周期過長,學生往往通過同學和網絡等渠道自己解決問題,但同學之間可能互相傳遞錯誤知識,網絡上對問題的答復偏差較大。
學生對課程方向和進度難以把握。目前學生普遍習慣于填鴨式教育而缺乏自主學習能力,無法自主摸索出正確的學習道路,容易鉆進死胡同。
在線判題平臺(Online Judge,縮寫OJ)主要功能使接收用戶提交的源代碼,對其進行編譯、運行、對比輸出結果。
提交的代碼一般會在受限的環境下運行,包括時限、內存限制等。每一次提交后的判題結果會及時反饋給用戶;平臺還會對用戶進行排名,以用戶提交答案通過的個數多少或題目執行時間的快慢為依據進行排名。
目前,部分高校開發出自己的在線評測平臺用于日常教學和競賽,例如北京大學的POJ、西班牙瓦拉杜利德大學的UVA等。
使用在線判題平臺輔助Python語言的教學具有諸多優點[1]:①激發學生的學習興趣,良性促進知識汲取。在教學之中,教與學缺一不可。對于學生而言,最好的學習方式是動手實踐,將在課堂中習得的知識點運用于解題上,能夠從一道道題目的通過之中獲得學習滿足感。②運用場景自由。學生只需借助網絡便可隨時通過終端設備接入平臺,對題目進行編譯提交。③即時反饋結果。學生將題目提交之后可以即時獲取運行結果,通過反饋學生能夠馬上對錯誤進行調整,進一步對相關知識點進行鞏固。老師無須參與批閱,極大減輕了老師的工作量。④豐富多元的題庫。題庫對知識點進行全覆蓋,難度遞進展開,貼合生活和企業場景,不同的學生都可以根據自身情況對題目進行選擇。
針對課程現存問題,為了使學生更好地理解和熟練掌握Python這門重實踐的語言。我們應該利用好在線判題平臺這一工具,使我們的課程教學模式更加貼切教學和實踐相平衡。對此,我們在教學手段和教學方法上了一系列的嘗試。
對學生和教師兩個主要角色進行需求分析后,概括出如下系統結構圖:
圖1 系統結構圖
從課程學習、學習行為統計、個人信息管理、題目瀏覽到評論留言,覆蓋學生學與練的各個方面。其中學習行為統計的設計意在給予學生及時的反饋,學生從統計數據可以更好把握自己的學習和復習方向,教師也可以通過全局和各個班級的數據統計來科學推動教學的進展。評論模塊的設計可幫助打通學生與老師之間的交流壁壘,利用平臺的在線特點突破答疑的地點限制。
教師通過學習資料上傳,學習任務發布功能,開展“精講多練”的教學方法。對于課程中學生容易理解,難度適中的內容,教師可以通過錄制節選課程視頻的方式上傳至平臺,一次錄制可提供給所有加入課程的班級使用,橫向抽取教學知識極大減輕了教師的教學負擔,壓縮了課程普通教學時間,將節省出來的時間用于引導學生進行應用實踐,把重心偏向算法、編程構思和程序實現上,強調程序的可讀性、規范性。學生通過對視頻簡易知識的自覺學習,有效激發學生的學習情趣,提升學生對該課程的學習信心[2]。
平時成績的評判通過從平臺題庫抽取題目,安排統一時間進行答題,將考核穿插在每一個新章節開始前,以此達到階段性檢驗學生的真實學習情況,同時有效幫助學生鞏固舊的章節知識。
依據在線判題平臺的討論、題解、評價等模塊實現了學生和老師的雙向互動,打破傳統教學中學生信息難以反饋至教師的局面。通過討論模塊,不僅學生可以相互討論,而且老師也可以參與其中及時獲得學生想法;通過題解模塊,學生可以將自己的解題思路上傳,學生之間可以相互交流,老師可以做出直到;通過評價模塊,學生可以對題目以及課程做出反饋。
題庫設計分為通用題庫和個性題庫,通用題庫從各大現有平臺搜取綜合質量較高的題目,通過統一模板由管理員錄入;個性題庫交由教師為同學創建,根據教學章節、知識點、難點等因素進行歸類錄入。學生通過個性題庫進行刷題練習迅速掌握對應學習內容,通過通用題庫可以了解目前實際應用的方向,對自身的學習進行延伸。平臺收集學生的題目通過總數、提交次數、提交未通過個數等量化標準對學生進行排名,全局進行平臺所有用戶排名,局部以班級內為單位進行排名,排名以題目通過總數作為第一考量標準,通過率作為第二考量標準。通過清晰的排名反饋,有效激發學生的獲得感,營造良好的學習氛圍。
通過對各別班級進行了實際應用,同時基于在線判題平臺的課程學習情況進行了問卷調查,從數據中可以得到學生對這種學習方式的高度認可。
圖2 應用效果調查
在以前的課程教學中,學生常常出于單方接受輸出的位置,經常在晦澀難懂的知識點中失去學習動力,在課后實際運用中一旦失去了參考答案就無從下手,即便題目解出后也存在著各種錯誤。通過在線判題平臺,將課前課后的學習有效聯動起來,學生的學習效果有了明顯的改善[3]。通過線上學習資料的上傳,為學生提供了查漏補缺的新環境;平臺題目于教學內容關聯良好,而且難度有所提升,鍛煉了學生自主思考和實踐的能力。在平臺中采用計分排名機制,涵蓋從各個班級到專業全體學生,無形中給學習一種激勵,營造出你追我趕的學習氛圍。
從老師單向傳遞的灌輸式教學向雙向反饋教學轉變。當學生的學習興趣被激發,便不會滿足于基礎教學內容,通過題庫向橫向縱向延伸的收納,滿足了學生對進階知識的需求,而且在興趣驅動下學生會進行自主的吸收,學生可以自己的學習體會和學習建議通過平臺進行輸出,不僅可以創造積極的學習氛圍,而且有利于課程知識的良性發展[4]。老師在一定程度上也可從在不同班級不斷重復的教學中解放出來,通過平臺對各個班級學生的學習情況進行了解,摸索出針對各個班級不同的教學模式,老師可以將教學工作多放在引導和傾聽上,為學生收集提供適用的學習資料同時,聽取學習對課程不足之處的意識,及時進行優化和改進。在課堂上不必再對基礎知識點一一講來,提取布置學習任務,在課堂上進行對應知識點的引導實踐。
在基于在線判題平臺的教學體系中,在線實踐和常規教學相輔相成、相互促進。學生在課堂學習的基礎上,通過在線判題平臺的訓練,充分鞏固了知識體系,激發學生運用知識去分析問題解決問題的興趣。每個學生擁有各自的賬號便可以利用網絡在任何時間地點進行在線練習,極大地延伸了學習時間和空間的靈活性。老師可以在課程的不同時間通過平臺測試學生的學習情況,從題庫中抽取題目或者額外上傳新題,要求學生在規定的時間內進行測試,最后上傳測試結果,老師不僅可以利用測試結果作為課程的階段性成績來減輕平時性考核的工作任務,而且可以作為參考同學生進行交流。
基于在線判題平臺的Python課程的改革,將理論知識的學習與實踐能力的提高很好地結合起來,注重學生實際動手能力的積累同時,利用線上平臺摸索出高效學習的模式,激發了學生學習的主動性,為課程的不斷優化和進步打下基礎。其設計理念是面向“計算+”交叉融合的新工科計算能力需求,以精心設計、充滿“噪音”的復雜真實案例串聯課程目標,以學為中心分解真實案例,從簡單起步、迭代滾動深入,在過程中植入計算所需知識、方法、可能問題等,逐步培養復雜工程問題的計算分析和計算研究能力,使得學生能夠滿足“計算+”理工類崗位的計算能力較高級要求,并能夠舉一反三,具備依托互聯網開放資源獨立解決理工類新需求的能力。