湖北民族學院信息工程學院 向 靜
算法與數據結構是計算機專業的一門核心基礎課,也是一門理論和實踐緊密結合的課程。其中涉及大量抽象數據類型及算法應用,課程教學既要為學生打下堅實的理論基礎,又要注重培養學生的實踐能力,從而提高學生的抽象思維和創新能力。而該課程的實驗課是學生驗證、掌握和應用數據結構理論知識的重要途徑。通過實驗解決數據結構中的一些典型問題,既能幫助學生更好地理解、消化和掌握課堂教學內容,又能在解決實際問題時,使學生學會如何把算法和數據結構更好地結合,靈活的運用,培養學生分析問題和解決問題的能力。結合作者多年的數據結構教學經驗及我校實驗教學現狀,我們就算法與數據結構實驗課的內容設置和教學方法進行了研究和分析,希望為探索算法與數據結構實驗教學改革提供思路。
和重視度不夠。實驗內容中驗證性實驗偏多,綜合設計性和探索創新性實驗偏少,影響學生探討問題的積極性和創新能力的提高,學生雖然完成實驗,但是實踐工作量嚴重不足。另外實踐教學體系不完善,實驗教學缺乏過程監督和管理,老師的指導僅限于在實驗室的課內時間,時間和空間上的局限使得學生在實踐過程中不能及時解決遇到的問題,導致問題越積越多,從而失去學習信心。
(4)實驗考核方式單一
我們對數據結構實驗教學的考核主要是通過實驗報告,雖然上機實驗有一定的過程控制,但由于實驗學時有限,教師精力有限,同學之間、師生之間缺乏交流,教師很難真正了解學生對知識與技能的實際掌握情況,單憑實驗報告并不能客觀真實地反映學生的實際實驗情況。因此,實驗考核手段單一不合理,不能全面體現學生的學習情況。
由于算法與數據結構課程內容抽象,邏輯性強,學生學習的興趣和主動性不夠,教學效果不理想,在實驗教學中普遍存在以下問題:
(1)理論教學與實驗教學脫節
算法與數據結構課程涉及的知識面廣、理論抽象、程序復雜。在整個教學過程中,教師往往注重講授理論知識,而忽視了學生的學習興趣與實際應用的結合。同時,數據結構課程中的各個知識點之間的聯系性較弱。所以面對繁雜的知識點,學生難以快速地將實際問題和相應知識點聯系起來,構建算法的框架,編寫可執行的程序,導致在實驗過程中毫無頭緒,從而造成畏難情緒。時間越長,學生的挫敗感越重,有的學生逐漸對數據結構課程失去興趣,這樣對學生專業素質、應用及創新能力的提高都有影響。
(2)學生語言基礎和算法設計基礎薄弱
我校數據結構實驗選用C 語言作為實驗平臺,學生在學習C語言時,很多語法問題理解的不透徹,如:動態分配函數、指針調用、函數參數傳遞等。數據結構理論課程教學中采用類C語言作為數據結構和算法的描述語言,很多問題只有算法思路而無具體程序代碼。因此,學生在編程實現的過程中常出現很多編譯調試錯誤,而且很多無法自行解決,從而較大的影響了自主編程的積極性。學生把重心放在語法錯誤的調試上,而偏離了對算法核心思想的理解。
(3)實驗內容陳舊,實驗指導形式化
實驗教學的內容一般都沿用了好幾屆。很多學生上機時,沒有按要求提前作預習和準備,而是直接進入編譯環境編寫程序。學生對問題思考的不深入,對算法設計缺乏耐心,整個實驗過程投入度
針對以上數據結構實驗教學模式中存在的問題,提出了實驗教學的幾點想法和建議,以此為契機推動數據結構實驗教學的改革:
(1)實驗教學內容層次化
實驗教學內容應該根據數據結構課程的內容層次和學生的層次設計,可以把實驗內容分為三個層次,驗證性實驗、拓展性實驗和綜合設計實訓項目,每個層次針對不同能力的學生。驗證性實驗給出了算法與數據結構中各種具體數據結構的基本操作的實現,可以很好地幫助學生理解教材中的算法,褪去算法的抽象性,順利地從理論過渡到實踐。拓展性實驗是針對課程內容中的某個知識點進行具體應用,以解決簡單的實際問題,面向學有余力的學生。綜合設計實訓項目,服務于學生進行階段性的實踐活動。其中精選的實驗內容具有典型性,且每個問題強調應用教材中相應的若干知識點解決問題,具有一定的設計量和難度,通過綜合實訓培養學生進行復雜程序設計的能力和分析解決問題的能力。綜合實訓項目可以采用小組的形式完成,這樣也有利于培養學生的團隊協作精神。
(2)實驗教學方法多樣化
實驗教學要想取得令人滿意的教學效果,必須綜合運用多種教學手段。實驗內容應提前布置給學生,并以文檔的形式對相關內容進行說明,這樣在實驗課上學生就有充足的時間調試程序并向老師請教答疑。驗證性實驗,教師應在實驗前對所涉及的相關知識點及操作流程進行講解,讓學生做到有的放矢,不至于盲目展開實驗。拓展性實驗,教師可以采用啟發式教學,對關鍵技術方案進行指點,以幫助學生快速構建算法框架。拓展性實驗的主要對象為動手能力較強的學生,通過啟發式教學,能夠更大程度上激發該類學生的學習興趣和鉆研精神。對于綜合實訓項目,教師采用項目管理的模式教學,按照軟件工程的流程,帶領學生進行需求分析、確定實施步驟和計劃并確定小組成員的分工。多種教學方式的綜合運用,將對不同基礎的學生因材施教,取得意想不到的效果。
(3)實驗管理模式和考評體系合理化
由于數據結構實驗內容多,實驗課時少,很多實驗任務需要學生利用課余時間完成。可以通過合理整合利用機房資源,適當開放機房讓學生在課余時間完成實驗內容。還可以構建數據結構實驗課程教學平臺,將相關實驗案例、實驗指導、源程序代碼以及習題和答案等教學資源發布在平臺上,師生就能通過實驗課程教學平臺進行互動,并進行輔導答疑和在線討論。實驗考核方式要嚴謹而靈活,實驗評價體系要公正合理,要能真實客觀地反映學生的能力和水平。對于驗證性實驗結果,學生要能做出簡單分析。拓展性實驗,學生要有設計思路,算法框架,程序代碼和正確運行結果。綜合實訓項目可以采取小組現場演示答辯的考核方式。
文章針對數據結構實驗教學中存在的相關問題,從實驗教學內容,實驗教學方法,實驗管理模式和實驗考核評價體系等方面提出了相應的改革措施。經過在我校實踐,已取得了一定的教學效果。實驗教學最大的改進在于實驗課程從課堂到課外的延伸,能使大部分學生真正體會到自己動手編程的樂趣,使學生學有所獲,學有所成。真正能夠起到算法與數據結構這門課的承上啟下的作用,為學生后續專業課的深入學習打下良好的基礎。當然,在實驗教學中還有很多問題值得探討,在以后的實驗教學過程中我們還將繼續進行相應的優化和改進。
[1]唐佐俠,孫春志.數據結構實驗教學改革與探索[J].商丘師范學院學報,2017,33(3):103-104.
[2]劉曉靜等.以創新人才培養為目標的數據結構實驗教學改革[J].實驗技術與管理,2014,31(11):184-187.
[3]陳紅梅等.數據結構實驗課程教學方法探索[J].當代教育理論與實踐,2015,7(4):66-68.