

摘要:針對學生們在數據結構課程教學中實踐能力不強的問題,分析數據結構實踐教學的特點,依據學生的認知規律,提出“實踐到理論”“分層實踐教學”及靈活運用多種考核方式的教學策略。
關鍵詞:認知規律;數據結構;實踐教學;考核方式
數據結構是計算機專業最核心的專業基礎課之一,主要描述的是典型數學模型及其操作在計算機中的表示和實現,實踐性和理論都很強。數據結構的實踐能力對于學生升學、就業均有重大的影響。數據結構的教學目標包含2方面的內容:理論上使學生能對給定的實際問題,建立準確的問題模型,選擇合理的數據結構及其運算集,并設計有效的求解算法;實踐上使學生能夠運用所熟悉的編程語言,對設計好的解決問題的算法進行高效編程,并熟悉軟件設計的基本流程。
根據學生們的反映,理論教學基本上可以比較好地掌握,但一旦進行編程實踐,還廣泛地存在如下的問題:①有茫然不知所措的感覺,不知如何編寫程序,很難將書本理論轉化為可以運行的程序;②實驗題目沒有與實際問題相結合,致使學生對實驗缺乏興趣;③題目缺乏層次,對所有學生實行“一刀切”;④實驗題目老套,缺少變化;⑤實驗報告不規范,缺少對科技論文寫作的必要訓練。
這些問題的存在,主要是在以往數據結構教學實踐過程中,對學生的認知規律沒有很深刻的認識,教學過程、教學內容不太符合學生的認知規律。為了解決這個問題,我們針對數據結構教學實踐過程進行了分析,并按照學生認知規律,進行改革和探索,取得了比較好的教學效果。
1、在理論教學中把“理論到實踐”改為“實踐到理論”
在我們選用的嚴蔚敏老師所編寫數據結構教材中,比較注重理論的抽象性、通用性,很少具有完整的、具體的、能夠在計算機上運行的程序。學生剛剛學習了C語言、Java語言,很難理解為何需要“抽象數據類型”,為何用“偽代碼”,而不用某種具體語言;也很難理解為什么在定義“抽象數據類型的基本操作”時,不寫具體的實現代碼。
為了符合學生的認知規律,在理論教學中,我們采用“從程序實例到理論”的教學方法;先給同學分析功能完全一樣,分別用C語言、Java語言編寫的2個程序實例;然后,再分析其共同特點,把“相同功能的函數”抽象為“抽象數據類型中的基本操作”。再比如,講解為何數據類型用“ElemType類型”而不用int、float、double類型時,先舉出功能完全一樣,僅僅變量數據類型不一樣的3個程序實例;然后,再分析其共同特點,就很容易讓學生們理解為何要把“int、float、double”替換為“ElemType”了。
在第一次理論教學過程中,采用了“理論到實踐”的教學方法,我們發現教學效果不夠理想;為了取得更好的教學效果,我們分析了學生的認知規律,在后來的理論教學過程中,采用了更加符合學生認知規律的“實踐到理論”的教學方法后,發現學生的動手能力、“把偽代碼轉化為真實程序”的能力得到了很大的提升。
2、分層實踐教學
為了讓實驗教學方法更加符合學生的認知特點,滿足不同層次學生對實驗題目難度、新穎性、解決實際問題的不同要求,提升學生對實踐教學的興趣;我們針對不同學生的特點,制定了“分層實踐教學”的方法。將實踐內容分為4個層次,如圖1所示。
2.1 基礎性實驗
基礎性實驗是圍繞數據結構基礎知識內容的實驗項目。目的是讓學生掌握基本數據結構的特點和基本概念,同時掌握基本算法及應用。
基礎性實驗的題目一般難度很低,基本上屬于課本上所講算法的實現,幾乎與課堂教學完全一致,并且給學生分別提供用Java、c語言所寫的2個參考示例程序,讓學生在其基礎上進行適當的修改。這樣,當面對“從抽象理論到具體程序”時,就可以解決學生完全不知如何下手的問題。
基礎性實驗要求所有學生必須獨立完成。
2.2 設計性實驗
設計性實驗是延伸基礎實驗內容、增加不同難度,形成難度分級的實驗項目。學生自行設計數據結構和算法,增強學生對數據結構和算法的理解,提高其解決問題的能力和良好的程序設計能力。
設計性實驗的題目由老師提供解決問題的基本步驟和思路,不提供參考代碼,讓學生自己獨立完成所有代碼的編寫;并且提供多個難度不同的題目,讓學生們根據興趣自由選擇其中的一個,這樣就大大調動了學生的學習積極性。
設計性實驗要求每個學生都應選擇一個難度適合自己的題目萊獨立完成,現實中,可能會有極少數的學生(5%~10%)難以完成該級別的實驗。
2.3 綜合性實驗
綜合性實驗是針對數據結構中涉及的多個重點、難點內容設置難度分級的實驗項目。主要訓練學生綜合運用知識的能力、協作能力和創新能力。
綜合性實驗的題目一般是使用數據結構的知識,解決一個難度較大的現實問題;該問題應能夠充分吸引學生或者與現實生活密切相關。由于問題難度較大,我們不要求所有學生參與,他們可以根據興趣來決定是否參與,往往有50%左右的學生會選擇參與該實驗項目。
2.4 創新性實驗
創新性實驗的題目主要來源于老師的科研成果和在研項目內容,老師以前也可能沒有完成,10%~20%左右的優秀學生,在老師的指導下,依據數據結構知識,創造性地解決或部分解決一個當前科學問題。這些學生的能力、自信心、學習興趣將會在創新性實驗的過程中得到極大的提高。
2.5 分層實踐教學內容示例
表1所示為我們針對隊列的分層實踐教學的具體方案,其中,基礎性實驗、設計性實驗要求學生在課堂內完成,綜合性實驗、創新性實驗讓學生在課外實踐中完成。
3、實踐教學過程與考核方式
3.1 實踐教學過程
為了達到較好的教學效果,我們將實踐教學過程分為以下5個步驟。
①理論準備。實驗開始前,老師帶領學生復習相關的理論知識。
②下達實驗任務。老師將劃分為4個層次的實驗任務書發給學生。
③課內實驗。先讓學生按規定完成必做的基礎性實驗;然后讓學生們選擇一個設計性題目,在實驗課內完成,老師隨時指導學生、解答學生們的各類問題;最后,老師針對實驗完成情況進行講解點評。
④課外實踐。讓學生根據自己的實際情況,自由報名,選擇綜合性實驗、創新性實驗題目;要求在一定的期限內完成,期間,老師應多與學生們交流,以隨時解決學生們所碰到的問題。
⑤結果考核。根據學生們的完成情況,給出評價結果;分為過程考核、結果考核兩部分組成,側重對學生學習態度的評價。
3.2 考核方式
結合學生的心理要求,可以采用多樣化的考核方式,具體有以下4種。
①實驗報告。這種考核方式主要是針對每個學生必須完成的基礎性實驗。
②對比評測。這種考核方式主要是針對設計性實驗,引導學生們將自己的程序與其他同學們的進行比較,找出差異,經過分析后進行改進。
③分組答辯。主要是針對綜合性實驗而進行的,3~4個學生為一組,選做一個綜合性實驗題目,最后老師采用答辯的方式來督促學生進行實驗。
④科技小論文。這主要是針對創新性實驗而進行的,在老師的指導下,參與解決老師科研項目中的一個科學問題;并依據實驗過程和結果,寫出相關的科研小論文。
4、結語
通過教學實踐研究,我們探索了更加符合學生認知規律、認知特點的數據結構實踐教學方法:在理論教學過程中,采取“實踐到理論”的教學方法,消除從理論到實踐的鴻溝;建立了符合學生認知規律的分層實踐教學方法;并在實踐教學過程中采取更符合學生心理要求的多樣化結果考核方式。提高了學生的學習興趣,得到絕大多數學生們的積極評價,取得了較好的教學效果:由于分層實踐教學資源積累不足,這需要我們在以后的教學中不斷地加以完善,部分題目不受學生歡迎,這需要我們及時更新題目,使之更加符合學生的心理需求。