耿彧 趙仲孟
[摘要]當今是一個信息高度共享的時代,高校的課程教學需更有效地借助于快捷方便的數字信息化平臺,培養大學生計算思維能力,適應現代教學手段和課程資源共享模式,使學生能夠更好地分配學習時間,取得更好的教學效果。本文以數據結構與算法課程為教學改革探討的實施對象,結合課程自身特點,將以問題為導向的教學法與翻轉式課堂思想結合起來,闡述如何建設自主學習、課堂教學和實驗教學3者相結合的綜合課程教學模式,更好地培養學生分析問題和解決問題的能力。
[關鍵詞]計算思維;教學情景;數據結構
doi:10.3969/j.issn.1673-0194.2017.18.154
[中圖分類號]G642.0 [文獻標識碼]A [文章編號]1673-0194(2017)18-0245-02
1研究背景
數據結構與算法是一門介于數學、計算機軟硬件之間的計算機專業核心課程,目前在各高校的課程設置中,不但成為計算機學科的專業基礎課,還是軟件工程、通信工程、電子技術等信息類專業的必修基礎課,也是計算機系歷屆研究生入學必考的專業基礎課,甚至于成為聘用單位的筆試課目。因此,學校通過對本課程進行科學合理的課程建設,為學生后續課程學習打下了良好的基礎,對培養學生的創新思維及訓練編程動手能力極其關鍵。
瑞士著名計算機科學家N.Wirth提出著名公式“程序=算法+數據結構”。如何設計出一個結構好、效率高的程序,設計者必須研究數據的特性及數據間的相互關系和其對應的存儲表示,即數據結構,并利用這些特性和關系設計出相應的算法和程序。從抽象數據類型和面向對象的觀點來討論數據結構已成為一種新的趨勢,越來越受到各個學校的重視,很多學科已經開設或正在醞釀開設數據結構與算法課程。此外,如三維圖形、海量數據處理、機器學習和語音識別等研究所需要處理的計算量極大,均需要依靠卓越的算法來解決。因此,隨著現代科學技術發展,學校迫切需要加強學生在數據結構與算法設計方面的理論培訓和實踐操作,提高學生的綜合應用能力和專業素質。
目前,數據結構與算法課程的教學面臨著理論性較強、內容抽象、算法枯燥以及與實際應用結合不夠密切的問題。但是,實際教學中所采用的傳統課堂教學方法,以教師講授為主,學生被動接受知識的教學方式,無法有效調動學生的求知欲與積極性,無法達到理想的教學效果。為了適應現代教學手段和課程資源共享模式,面對課程教學遇到的新挑戰,學校應積極探索新的具有特色的教學模式,更好地為各學科培養新時代環境下的高素質創新人才。
2教學模式的探索與改革
2.1結合PBL教學法,將教學內容問題化
PBL教學法是以問題為學習起點、以學生為主體、以教師為導向的啟發式教育,強調把學習置于復雜的、有意義的問題情境中,達到師生之間交流與互動的效果。因此,生動的教學情境創設顯得非常重要,教師依據教學內容及教學目的創設情境導入課程。同時,教師設置經典問題及富有挑戰性的題目作為課程的先導問題和課后探索研究的內容,調動學生的求知欲,培養學生善于捕捉、整合、判斷各種知識的能力,以及不斷思索與創新的能力。
數據結構與算法的內容主要涉及基本數據結構,如線性表、棧、隊列;復雜數據結構,如樹、二叉樹和圖;數據結構的應用,如查找和排序;常見算法,如貪心算法、分治算法、動態規劃算法和回溯算法等。教師可以將一些經典問題(如表1所示)抽象為某種特定的數據結構,然后用合適的算法來實現,達到數據結構與算法的融會貫通。
為了適應計算機思維培養的需求,教師要進一步引導學生深化問題,發揮獨特的創新能力,參照美國大學生競賽的部分題目,設置一些挑戰性題目。如手機普及與社會能耗問題,涉及到手機革命引起的能源問題,研究手機與固定電話之間使用量的優化問題以及手機使用和美國電能資源之間關系。再如,環島道路交通流的優化問題,該問題的目標是使用一個模型來決定如何更好地控制環島內的交通流,并考慮車輛進入環島內的效率與安全因素。教師要按照“問題描述+問題分析+抽象數學模型+算法設計+編寫程序”幾個環節循序漸進地導入,通過實際的建模問題,培養學生靈活運用數據結構與算法設計的思想進行思考、歸納、分析和創新,開拓學生的思維想象空間。
2.2借鑒MOOC平臺,將翻轉課堂與傳統教學結合
MOOC(慕課)是大型開放式網絡課程的在線課堂,因其通過網絡為廣大學生提供更高質、高效、便利的教育資源和學習機會而倍受國內外高等教育界的關注。2013年,我國的“東西部高校課程共享聯盟”引入MOOC的機制推動高校從傳統教學方式向現代化教學方式的轉變。為了逐步適應目前新型在線教學模式的發展趨勢,學校應該以培養學生自主學習的能力、實現個性化的彈性學習、緩解學校上課資源壓力等因素為出發點,并結合強大的網絡資源,借鑒國內知名高校建設的MOOC平臺,探索將翻轉課堂與傳統課堂相結合的教學模式應用于數據結構與算法設計課程,尋求課程的模塊化設計,使學習變得更加靈活。
教師通過采用翻轉式課堂教學模式,采用課外線上學習和課內線下集中兩種方式,將知識點劃分為3個難度級別:①難度高的采用課前看視頻自修,課內講授重點難點;②難度中的采用課內先講解,課后看視頻加強;③難度易的采用只安排課外看視頻,課內不再講解。由此,教師的一部分授課任務轉變為設計知識點、設計準備、討論課、查看數據和答疑輔導。同時,教師把每章的內容細化為若干個知識點,列出學習任務清單,根據每種數據結構的特點制定相應的問題,按照“問題描述+問題分析+抽象數學模型+算法設計+編寫程序”循序漸進地導人。根據學生個人對知識點的理解與掌握程度設置學習時長。此外,學校要搭建同學之間、師生之間共同研討的平臺,教師也可從學生的討論中受到啟發,達到教學相長。
2.3實驗環節要合理設計
數據結構與算法實驗是一種驗證型實驗,將所學的理論知識與上機實踐相結合,通過利用某種高級語言環境對算法進行驗證。教師要按照理論知識一實訓課一專題實驗的環節依次進行。實訓課在設計的時候要重基礎、重驗證,要求每個學生必須掌握基礎理論知識及獨立實現主要算法的驗證。專題實驗在設計的時候要重綜合、重設計,以小組形式進行、以任務書的形式下達給每組學生。實驗完成后以書面報告和小組講解兩種形式驗收,側重培養學生查閱資料的能力、創新能力、實踐動手能力與合作精神。
3結語
以講授為主的傳統課堂教學模式將逐漸被以學生自主學習為主的新型教學模式所取代。教師要以問題為導向設置與現實生活密切相關的算法問題,調動學生學習的積極性,讓學生能夠感受到學有所用、學能所踐,最終達到理論與實踐的完美結合。