趙錦元 熊兵 唐志航
摘要:針對數據結構課程抽象難懂的特點,總結傳統教學方式教師處于絕對主導地位的弊端,提出將任務驅動教學法應用于數據結構教學過程中,以“任務為主線,教師為主導,學生為主體”的教學方式,將教學分為任務設置、任務實施、任務評價3個階段,并對3個階段的主要活動和實施要點分別闡述。
關鍵詞:任務驅動;教學法;數據結構
引 言
數據結構課程是計算機專業(yè)以及相關專業(yè)的一門號業(yè)基礎課和核心課程,它在計算機相關專業(yè)的課程體系中處于承上啟下、聯系前后的中心地位 。大量實踐表明,學好該門課程,對后續(xù)課程的學習和研究都有深遠的影響。但由于數據結構課程包含的算法知識抽象、繁多,難以直觀表達,這給參與“教”與“學”的師生雙方都帶來一定的難度 。教師采用傳統的講授式方式,將知識灌入學生腦海,容易忽視學生自己的理解和思考過程,學生的想象能力和創(chuàng)造能力很難得到提升 。與此同時,學生一味被動地跟著教師的教學思路走,缺乏互動性,學生跟不上調,反應慢半拍,教師感覺難“教”;而數據結構課程本身抽象繁雜的特征,學生感覺難“學”。為了彌補傳統教學方式的不足,本課題引入“任務驅動”教學法,將其應用到數據結構課程的教學中,以任務驅動的方式來調動學生學習的主動性和能動性,同時以學生的反饋信息激勵教師不斷地改進教學方式,將“教”與“學”統一起來,做到教學相長,以此達到良好的教學效果。
1 傳統的數據結構教學方法存在的弊端
在傳統的數據結構教學過程中,教學模式主要是以教師講授為中心,對教學信息進行加工處理后,通過語言、教學工具呈現給學生,學生則通過感官被動接受教師傳達的教學信息 。因此,教師處于絕對的主導地位。
傳統的數據結構教學組織過程 如圖1所示。
教師首先闡述數據的某種邏輯結構(線性結構、樹形結構、圖形結構),接著分析其存儲結構。對于線性結構和樹形結構,其存儲結構分別以順序存儲結構和鏈式存儲結構加以闡述,對于圖形結構,其存儲方式分為鄰接矩陣和鄰接表兩種存儲方式 。接著講述這兩種存儲方式的基本操作算法,最后舉實例加以說明。
在這種以教師講授為絕對主導的教學模式中,首先讓學生接觸到的是抽象的理論模型,因此學生理解比較困難 。接著介紹數據的存儲結構以及基本的操作算法,由于脫離了實際的應用,學生被動地接受灌輸的理論模型的操作算法,往往一頭霧水,難以真正理解。在最后的應用舉例中,由于學生對前面的知識沒有真正消化,因此閱讀復雜的算法更覺得吃力難懂。在整個教學過程中,學生一直處于被動接受的地位,學習積極性、主動性都比較低,因此比較難跟上教師的節(jié)奏,而沒有真正地主動思考和探索,對知識也是一知半解,難以應用到解決實際的問題當中。因此,這種教學方式的教學效果不佳。
2 任務驅動教學法具體應用過程
任務驅動教學法是一種以“任務為主線、教師為主導、學生為主體”的教學方式,主要體現在以下3點 :①教學內容被巧妙地設置在具體的任務當中,學生帶著真實的任務去學習;②學生擁有學習的主動權,在教師啟發(fā)式的教學方式下自主思考、分析、解決實際問題;③教師不斷地引導、激勵學生,幫助學生完成教學內容。
將任務驅動教學法應用于數據結構的教學過程當中,該教學模式分為任務設置、任務實施和任務評價3個階段 ,如圖2所示。
“任務設置階段”分為“任務分析”和“任務設計”兩個方面,首先分析課程結構和教學大綱,羅列出各章節(jié)的教學主題,根據教學主題提出符合整個課程知識體系的教學計劃,并設計出任務驅動的方案。在此過程當中,特別注意以下幾點:①任務設計的難度要適中。太容易的任務沒有挑戰(zhàn)性,使學生喪失興趣和動力;太難的任務讓學生容易產生挫敗感,以致半途而廢。②設計的任務要循序漸進,先易后難,盡量有內在聯系,并且難度是層層遞進的關系。這樣學生一步一步深入學習,直至掌握難度較強的知識點。③設計的任務存在一定的缺陷。實踐證明,有缺陷的任務,有助于提高學生的興趣,學生在修正缺陷后,更有成就感。同時,缺陷設計能夠培養(yǎng)學生發(fā)現問題和解決問題的能力,達到良好的教學效果,
“任務實施階段”的活動包括課堂內任務實施和課堂外任務實施。課堂內,教師按照任務設置階段設計的任務驅動方案進行施教。該階段以學生的操作為主,教師要留給學生充裕的操作時間和空間,讓他們在實踐中去體會、感受、消化和吸收知識。在完成任務的過程中,由于學生有足夠的時間思考、探索,因此會不斷涌現出新的問題,提出新的任務,這時候教師要適當地引導學生,在正確的范圍內自由發(fā)揮,教師在適當的時候加以點撥提示,并在最后做總結回顧。課堂外,由教師分配任務后,學生采取分組的方式完成。學生之間在進行相互交流和學習的過程中,很可能產生新的難解問題,反饋給教師后,在教師的引導下,產生新的任務,組內成員繼續(xù)討論完成任務。因此,課堂外的任務實施過程是一個循環(huán)反饋的過程。教師要多鼓勵學生查閱相關資料和請教其他同學,多鼓勵成績優(yōu)秀又學有余力的學生幫助其他同學共同進步。這樣,既培養(yǎng)了學生與人協作、和睦相處、樂于助人的品質,又能很好地提高學生解決實際問題的能力和創(chuàng)造力。
“任務評價階段”的主要活動是對“學”和“教”共同的考核、評價。教師根據每個學生的課堂內表現以及課堂外各組任務完成情況,結合小組各成員的貢獻大小,對每個學生給予合理評分。教師根據教學效果以及學生的反饋意見,對自己的教學方法進行反思、改進。
“任務驅動”教學模式體現了以“任務為主線,教師為主導,學生為主體”的教學過程。任務、教師、學生三者的互動,體現了“任務驅動”教學模式的基本特征。應用“任務驅動”法教學,教師的主導作用和學生的主體作用相得益彰、密不可分。教師提出任務,并為任務的展開創(chuàng)設合理的情境,在環(huán)環(huán)相扣的教學過程中,以“引而不發(fā)”的方式推動學生發(fā)揮主體作用,直至完成任務。在任務完成過程中,學生有足夠的思考和自由發(fā)揮的空間,可以集思廣益、開拓思維,義會提出與任務有關的新問題,促使教師發(fā)揮主導作用,點撥學生合理完成任務。在學生和教師共同推動下,任務本身可能有更深層次的拓展,也可能會出現一些不可預知的變化,甚至產生新的任務,從而促使學生深入、全面地掌握知識。
3 教學實例分析
數據結構這門課程重點圍繞線性結構、樹形結構和圖形結構這3種邏輯結構層層深入講解,對于每種邏輯結構,又根據不同的存儲結構分別闡述。我們以線性結構中的鏈式存儲結構為例,應用任務驅動法,闡述教學組織過程。
首先教師講解鏈式存儲的基本結構以及特點,并將鏈式結構圖畫出來,標注每個結點的起始地址。讓學生思考前一個結點的指針域部分和后一個結點是什么關系,并寫出結點指針域部分的值。在學生實驗階段,讓學生自己用按步驟調試方法實時查看每建立一個新結點,并插入到鏈表中,該結點與前后結點的關系(特別要學生注意查看指針域部分值的變化),以此驗證課堂上的理論知識,讓學生自己動手,理解更透徹。
接下來講解鏈式存儲結構的基本操作。以插入操作為例,教師先畫出一個單鏈表和一個待插入的新結點(指針域為NULL),并在單鏈表巾標注要插入的位置,讓學生自己先嘗試著畫出指針的箭頭如何指向,然后再引導學生寫出該操作的關鍵語句,教師在此過程中適當加以引導、點撥。最后教師作總結,并強調學生出錯的地方和不易理解的知識點。
在線性表的鏈式結構講解完畢后,布置學生在課外完成綜合性的題目,該題目要求用線性表鏈式結構去完成(例如生死者游戲,用循環(huán)單鏈表實現)。根據以往的教學經驗,學生通過自主思考、查閱參考資料,以及與同學探討切磋,絕大部分的學習小組能夠完成任務。在自主學習和交流學習并行的過程中,學生的學習興趣大大提高,積極主動地去思考問題,探索問題的解。通過綜合性的實戰(zhàn)練習和學生自主學習的方式,學生對課本知識的理解更透徹,教學效果明顯提高。
4 結語
任務驅動教學法應用于數據結構教學過程當中,將抽象難懂的知識化為具體的任務,在教師的引導下,學生自由地發(fā)揮自己的主觀能動性,思考探索問題的解。在此過程中,遇到難以完成的任務,同學之間共同探討,相互協作,在教師的引導下共同完成任務。教學實踐表明,這種教學方式有利于培養(yǎng)學生自主學習的能力,獨立分析問題、解決問題的能力,創(chuàng)新能力以及溝通協作的能力。
任務驅動教學法應用于數據結構教學中時,要在實際教學中多思考多總結經驗,更好地提高教學質量。例如教師如何做到“引而不發(fā)”,引導學生到什么程度,在什么時候給予學生適當的點撥,課堂的氣氛如何調動起來,如何把握一個“度”,既讓學生大膽地發(fā)散性地去思考,又要引導學生不偏離教學主題。諸如此類問題,都需要教師在教學實踐中去感受、總結。