王 璨徐 東王森永
(1.大連科技學院 遼寧·大連 116052;2.沈陽農業大學 遼寧·沈陽 110000)
《數據結構》是普通高等院校計算機相關專業的專業基礎必修課,該課程具有理論性和實踐性,受眾為軟件工程、網絡工程、物聯網工程、計算機科學與技術、信息管理與信息系統、數據科學與大數據技術等專業本科或專科一、二年級的學生,旨在培養學生在具備一定的編程基礎的前提下,具備復雜問題的分析與解決能力。通過教學反饋情況來看,學生雖具有一定的編程能力,但自制力較差、缺乏戰勝困難的勇氣和決心。而《數據結構》課程中涉及大量的算法,需要學生具有較強的理解能力,同時動手操作能力也應有所提升。鑒于此,傳統的教學方法并不能解決上述問題,本文通過引入SAM模型,圍繞學生的興趣和能力培養展開深入探討。
SAM模型內涵。
SAM模型是一個實現課程開發的持續優化與改進的過程。學習方案的開發是多方參與、發揮協調優勢的團隊共同完成的。這個過程與AGILE模型很像。在實際的項目中重復步驟,使每一個階段的目標都接近既定的質量要求[1]。SAM包含三個階段:
(1)準備階段:即收集信息,集中思考,生成創意。
(2)迭代設計階段:確定內容并進行設計,生成模型大綱并持續優化迭代。
(3)迭代開發階段:實現課程內容。根據環境(培訓對象)的不同開發出多種版本,并進行測試、評估和完善[2]。
SAM模型和AGILE模型如圖1圖2所示:

圖1:SAM模型

圖 2:AGILE 模型
圍繞課程中的章節──棧,學生參與初級版本課程內容的評估,并根據自身的學習狀況提出修改意見;課程組根據學生的修改意見生成中級版本的課程內容,具體增加出棧序列的問題,提高學生運用所學知識的能力,再將中級版本的課程內容交給學生評估,學生可以借助互聯網,也可以對教師提問和留言,在討論的過程中整理好修改意見;如此迭代至下一個版本,增加卡特蘭數的推導,提高學生演繹推理的能力,再交由學生評估;再迭代生成下一個版本,增加卡特蘭數的實踐環節,提高學生的實操能力及解決問題的能力,至此完善最終版本的教學設計方案。
在實施過程中,由教師組織學生分組進行討論,不同版本的課程內容有助于實現分層次教學。
基于SAM的教學設計目標在于讓學生理解棧的特點及棧適用于解決什么類型的問題,對出棧序列背后的一系列問題進行演繹、推理和實踐,通過構建SAM模型,提高學生分析問題和解決問題的能力、團隊合作的素質,最終提高學生的綜合能力。
實施步驟如下所示:

圖3:實施步驟
按學生認知由低到高的次序,可以將課程內容劃分為知識層—簡單應用層—拓展應用層,仔細研讀課程內容,圍繞不同的層次設置不同層次的任務,調動學生參與的積極性,將學生進行分組,讓學生在小組中完成任務并達到該層任務對應的能力培養。
3.2.1 針對知識層能力的培養
圍繞知識層的能力培養,需要讓學生理清每章的主要內容和重點內容,可以將任務按章節進行劃分,如《數據結構》課程共8章,分別是緒論、線性表、棧和隊列、多維數組和廣義表、樹、圖、排序、查找,共劃分為8個任務,每個任務交由一組完成,讓學生繪制章節的思維導圖或魚骨圖等,理清章節的重難點內容,并與其他章節融會貫通。參與分組任務的同學按完成的程度,給予課堂表現60-75的分數。
3.2.2 針對簡單應用層能力的培養
目前,已經針對單鏈表的建立和二叉樹的建立開展了上機實驗,實驗屬于驗證性實驗,并沒有進行分組。為了調動學生參與的積極性,經過課程組深入地研討,將課程內容進行了梳理和細化,精心挑選了6個分組任務,具體包括:直接插入排序、起泡排序、直接選擇排序、快速排序、順序查找、二分查找,參與此任務的學生,需要編寫代碼、調試程序,并進行演示匯報。參與分組任務的同學按完成的程度,給予課堂表現76-90的分數。
3.2.3 針對拓展應用層能力的培養
拓展應用層要求學生具有分析解決復雜問題的能力,在實踐中一般設置課后思考題作為自主學習的延伸,針對這一層次,主要針對藍橋杯競賽的題目,設置一組分組任務,例如猴子選大王,參與分組任務的學生需要做到熟練掌握知識,并能做到舉一反三,涉及的能力較多,也需要編寫代碼、調試程序,并進行演示匯報。參與分組任務的同學按完成的程度,給予課堂表現90-100的分數。可以采用學習通進行分組。
本文從教學實踐出發,在深入了解了學生的學情后,由課程組進行深入探討,圍繞SAM模型,針對棧迭代開發出不同的版本,隨后根據學生認知由低到高的次序,將課程內容劃分為知識層—簡單應用層—拓展應用層,并設置了不同層次的分組任務,加強學生對重點內容的融會貫通,提高動手能力,最終提高分析問題解決問題的能力。